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


А как это написано в конфигурациях для курильщика - нам неведомо...
4 usd1001
 
13.09.19
09:59
(2) Я понимаю. Я сделал свою обработку на сервере и вернулся на клиент. К сожалению, в УНФ нет модулей "ОбработкаТабличныхЧастей". Есть только это событие ПриИзменении, в процедуре которого Over 100500 строк кода.
5 Василий Алибабаевич
 
13.09.19
10:01
(4) "процедуре которого Over 100500 строк кода."
А кому сейчас легко? )))
6 usd1001
 
13.09.19
10:02
(5) Отсутствие дублирования кода базовый принцип, который нарушать никак не хочется
7 hhhh
 
13.09.19
10:12
(6) ну тут придется через не хочу
8 usd1001
 
13.09.19
10:15
(7) Эх, была не была.