Всем привет!
Столкнулся с незапланированным поведением системы - в модуле менеджера документа перехватил функцию, после чего в предприятии приложение падает с ошибкой: "Переменная не определена (ПроведениеСерверУТ)" - это общий модуль.
Есть у кого какие догадки ?
(1) возможно из за того, что вставку делаете без удаления строк,или же из за закомменченых строк, так как количество строк из за этого увеличивается, а процедура/функция заменяемого модуля и процедура/функция модуля заменителя должны совпадать по количеству строк.
#Удаление
нужная строка со старым значением
#КонецУдаления
#Вставка
Нужная строка с новым значением
#КонецВставки
(2) Удалил комменты - не помогло. По поводу добавления удаления строк - а если мне ничего не нужно удалять? К тому же ранее уже пользовался этой диррективой (ИзменениеИКонтроль) без удаления - в модуле формы все работает, без проблем.
(13) насчет грубости вы не правы, это не грубость. Соглашусь, мой совет бредово выглядит, вставка работает и без удаления , тоже согласен, но у меня аналогичная ситуация была, и мне помогло именно добавление пустой строки, удаление ее и вставка нужной. И ошибка пропала.
(4) Так это типовой метод. В модуле менеджера вызывается серверный модуль - это разве проблема? Ругается только когда добавляю в расширение указанную функцию. Ругается, даже без дописок в расширении.
Друзья, всем спасибо за помощь! Помогла ссылка на форум https://forum.mista.ru/topic.php?id=827420. В расширении модуля менеджера необходимо было прописать "#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда"
Столкнулся с аналогичной проблемой: при подмене функции из модуля целиком обёрнутого в
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#КонецЕсли
замещающий модуль так же надо оборачивать в аналогичную конструкцию.
А чтобы в результате при применении расширения он не валился с ошибкой
Ожидается определение процедуры/функции
надо после #КонецЕсли объявить какую-нибудь функцию-пустышку чтобы модуль не был пустой для тонкого клиента
Т.е. в замещающем модуле должно быть так:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
// тут замещенные функции &Вместо и всё такое
#КонецЕсли
Процедура Пустышка()
КонецПроцедуры
На 1С:Предприятие 8.3 (8.3.20.1789)
помогло такое:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
//Ваш рабочий код
#Иначе
// Просто в иначе добавляем пустышку для удаления и платформа запускается в толстом клиенте УФ.
Процедура Удалить_Пустышка()
КонецПроцедуры
#КонецЕсли
Показать
Правда пришлось во всех модулях менеджера это добавлять. Благо их не много было таких!
Для тех кто думает, что дело в табуляции, то я включил в настройках конфигуратора видимость и показал в пустышке табуляцию. Как видно чисто косяк платформы, но у вас может и в табуляции, если настройку не включили.