Есть конфигурация УНФ. В нее с помощью обработки загружаются заказы. И все бы хорошо, но товарные строки там заполняются автоматом с помощью события "при изменении". Событие это на клиенте, а обработка заполняет документ на сервере. Выход вроде есть - брать после заполнения форму документа и перебором строк программно вызывать событие. Но две проблемы 1) В событии обрабатываемая строка берется как текущая. А любая попытка поменять в форме текущую строку вызывает исключение "ошибка изменения значения" 2) Как получить нужную строку типа ДанныеФормыЭлементыКоллекции. Через Форма.Элементы.Таблица[] - не работает.
(0) "товарные строки там заполняются автоматом с помощью события "при изменении"."
Вот полное непонимание кто на ком стоял.
Строки изменяются при помощи КОДА, который выполняется в обработчике события ПриИзменении.
Тебе осталось взять этот код и прописать в своей обработке. При необходимости адаптировав его для выполнения на сервере.
+ (1) Вот это вот : "Форма.Элементы.Таблица[]" на сервере не существует. На сервере есть возможность обращаться непосредственно к данным. А не через коллекцию элементов. Что значительно упрощает код.
// Выполнить общие действия для всех документов при изменении номенклатуры.
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
...
КОнецПРоцедуры
А как это написано в конфигурациях для курильщика - нам неведомо...
(2) Я понимаю. Я сделал свою обработку на сервере и вернулся на клиент. К сожалению, в УНФ нет модулей "ОбработкаТабличныхЧастей". Есть только это событие ПриИзменении, в процедуре которого Over 100500 строк кода.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший