![]() |
|
Мульти платформенная обработка | ☑ | ||
---|---|---|---|---|
0
MiracMC
02.07.19
✎
23:46
|
Доброго времени суток.
Суть задачи - запускать одну и ту же обработку в разных версиях системы (УПТ, УПП, бухгалтерия....). Понятно что код для разных версий будет свой... Грабли слови в момент отладки бухгалтерии (УТП и УПП такой проблемы не давало). Часть кода, который работает в УПП и УТП совершенно не совместим с Бух... причем даже не дает сохранить обработку. Ну да и фиг на него. Заключаю этот кусок в условие Если ИмяКонфигурации <> "БухгалтерияДляУкраины12" Тогда Но и это не помогает. даже сохранить не могу... говорит мол нет переменной описанной в куске кода что я исключаю... Если закоментить - естественно все получается... Но мне то надо работать на всех версией одной обработкой.. Как то можно это побороть? |
|||
1
Garykom
гуру
02.07.19
✎
23:50
|
(0) Объявления переменных наружу выносишь из "Если" и по умолчанию инициализируешь.
|
|||
2
Garykom
гуру
02.07.19
✎
23:52
|
Возьми готовый пример типовой внешней обработки под разные конфиги и изучи внимательно.
|
|||
3
palsergeich
03.07.19
✎
00:12
|
(0) Блин хочешь мультиконфигурационно - ориентируйся на метаданные.
Если конфа на БСП смотри регистр сведений Версии подсистем, потому что ИмяКонфигурации может быть изменено нерадивыми разрабами. |
|||
4
MiracMC
03.07.19
✎
00:14
|
(1) дело в том что речь не совсем о прямой переменной... если б я ее объявлял...
там так СчетаУчета = УправлениеЗатратами.ПолучитьСчетаУчетаСтатьиЗатрат..... такое есть в УПП и УТП.. а вот в Бухгалтерии оно называется СчетаУчета = БухгалтерскийУчетРасчетовСКонтрагентами.ПолучитьСчетаРасчетовСКонтрагентом.... соответственно ругаеться оно так: Змінна не визначена (УправлениеЗатратами) СчетаУчета = <<?>>УправлениеЗатратами.ПолучитьСчетаУчетаСтатьиЗатрат я был уверен что саму работу обработки я смогу регулировать условиями по отношению к наименованию конфигурации... но блин сам конфигуратор ругается.. вот в чем беда... (2) если б все было так просто (3) метаданные - возможно ли это в моем случае? |
|||
5
hhhh
03.07.19
✎
00:16
|
(4) там есть функция ОбщийМодуль, можешь задать имя модуля. Ориентируйся на нее.
|
|||
6
palsergeich
03.07.19
✎
00:19
|
(4) Очень просто. Смотри как
ОбщегоНазначения.ОбщийМодуль |
|||
7
palsergeich
03.07.19
✎
00:24
|
Соответствие = Новый Соответстие;
Соответствие.Вставить("УПП", УправлениеЗатратами); Соответствие.Вставить("бухня", УчетЗатрат); ИмяМоегоМетода = ПолучитьИмяМоегоМетода(); Результат = ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОбщегоНазначения.ОбщийМодуль(Соответствие.Получить("ИмяКонфигурации")), ИмяМоегоМетода) Как то так |
|||
8
Garykom
гуру
03.07.19
✎
00:28
|
В крайнем случае через Выполнить() и Вычислить()
|
|||
9
palsergeich
03.07.19
✎
00:30
|
(8) Пусть к БСП привыкает, Выполнить и Вычислить - нонгранта в более менее серьезных местах.
Требуют писать или выполнитьметодконфигурации или ВыполнитьВБезопасномРежиме, но самому эти фуннкции не вызывать, только из БСП обертки |
|||
10
palsergeich
03.07.19
✎
00:31
|
Это кстати на сколько я помню и в стандартах разработки описано
|
|||
11
palsergeich
03.07.19
✎
00:31
|
Ну по крайней мере АПК на это агрится
|
|||
12
Garykom
гуру
03.07.19
✎
00:32
|
(9) Так один фиг внутри БСП оно и есть, только с проверками на безопасность типа.
|
|||
13
palsergeich
03.07.19
✎
00:34
|
(12) Ты мой текст внимательно прочитал или чисто поспорить?)
|
|||
14
Garykom
гуру
03.07.19
✎
01:25
|
(13) Согласен что надо использовать БСП если она есть.
Но хорошо бы и понимать как оно работает а не быть простым копи-пастером, чтобы суметь сделать когда нет БСП в конфе или оно другой системы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |