Как избежать ошибки при компиляции #723096


#0 by eeeio
Проблема: пишу обработку для двух различных конфигураций. Обработка использует некоторые функции первой конфигурации, которых нет во второй (и наоборот). Коллеги, подскажите, как избежать ошибок использования несуществующих объектов при открытии обработки? Вариант с Выполнить("<тут код не проверяется компилятором и не вызывает ошибки>") мне не нравится, может есть более изящный способ?
#1 by AlexTim03
Написать 2 обработки
#2 by YFedor
код, специфичный для конфигураций писать в специально созданных формах. При открытии обработки будет проверяться модуль и модуль основной формы
#3 by eeeio
Плодить формы и обработки не хочется - большие они слишком. Наверно, через "Выполнить" буду все же делать. Спасибо за ответы.
#4 by Жан Пердежон
какие объекты? Для менеджеров справочников, регистров и т.д. можно  импользовать РегистрыСведений[ИмяРегистра] для общих модулей в типовых есть функция ОбщийМодуль(Имя), которая работает через Вычислить
#5 by HEKPOH
, вариант с "Выполнить" и позволяет избежать кучи кода :)
#6 by palpetrovich
Тупо перенести "некоторые функции обеих конфигураций" в обработку. Если дело конечно только в функциях, если метаданные отличаются - то сложнее
#7 by mehfk
Проверяй имя конфигурации. Даже в типовых так делают
#8 by DS
И?
#9 by mehfk
А далее создаешь две вспомогательные формы с одинаковыми экспортными функциями со специфичным кодом
#10 by Fram
А че Попытка Исключение отменили уже?
#11 by tridog
И давно Попытка Исключение стало влиять на компиляцию модуля?
#12 by Рэйв
Давно попытка исключает ошибочное создание объекта или обращение к полю, которого нет в конфе. RTFM
#13 by H A D G E H O G s
Все правильно tridog сказал. Попытка не отключает проверку при компиляции.
#14 by Рэйв
на компиляции ему и конфа накидает.
#15 by XLife
*facepalm*
#16 by Рэйв
Мне вот интересно:-) аочему это ты  *facepalm*, а не Ёжики? :-)
#17 by User_Agronom
1С - компилируемый язык? Я всегда считал, что тут интерпрета?тор... А по сути да: Попытка Исключение при попытке обратится к несуществующему полю не даст упасть 1С-ке. Но по логике - костыль жесточайший. Лучше так не делать))
#18 by tridog
Компилируемый. В байт-код, правда, не в машинный. В описана проблема не с обращением "через точку" к несуществующему объекту, а обращение к несуществующему объекту глобального контекста. Например, к общему модулю, отсутствующему в конфигурации.
#19 by ArchLord
с тем же успехом можно ДжавуПитон назвать компилируемым языком :)))
#20 by DrZombi
анализируй Метаданные, не ленись проставлять условия проверки. Познай силу Структуры :)
#21 by DrZombi
А порой, в 1С, это экономит кучу времени, еще ли писать через проверки по Метаданным :)
#22 by Sasha_Rapira
лучшее решение сделать две обработки под каждую конфу, по человечески. худшее сидеть и насиловать мозг, подгоняя под разные конфы P.S. Универсальность <> качество
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С