КД2 - в каком месте программно добавить строку и заполнить ее в табличной части загружаемого объекта?
В событиях "ПриЗагрузке" и "ПослеЗагрузки" ПКО добавляю
,
но строка не появляется в загруженном объекте. Похоже, добавление происходит, но позже табличная часть очищается.
Конвертации свойств для табличной части в правилах нету - т.е. изменена ТЧ может быть только программно.
СтрокаТЧ = Объект.Товары.Добавить()
но строка не появляется в загруженном объекте. Похоже, добавление происходит, но позже табличная часть очищается.
Конвертации свойств для табличной части в правилах нету - т.е. изменена ТЧ может быть только программно.
Найденные решения
Есть еще вариант. На мой взгляд наиболее оптимальный. Это использование ПКГС документа. Этот обработчик специально существует
для програмной подмены таб части объекта-приемника.
Обработчики "Правила конвертации группы свойств"
Перед обработкой
Условия возникновения события
Событие выполняется перед обработкой группы свойств, например, перед выгрузкой табличной части. Возможен отказ от выгрузки. Можно определить произвольную коллекцию, являющуюся источником данных.
Параметры:
Отказ - Булево - Если Истина, то группа свойств не обрабатывается
Источник – выгружаемый объект.
Приемник - xml-узел формируемого объекта приемника
ВходящиеДанные – произвольные вспомогательные данные, переданные правилу конвертации из других правил, например, из правила выгрузки данных или правила конвертации свойств.
ИсходящиеДанные – произвольные вспомогательные данные, передаваемые правилам конвертации свойств.
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
НеЗамещать - Булево. По умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы загрузка подчиненных объектов (например, табличной части) выполняться не будет.
НеОчищать - Булево. Если в теле обработчика данному параметру установить значение Истина, то существующие подчиненные объекты (например, строки табличной части) удаляться не будут. Параметр используется только при загрузке на платформе 1С:Предприятие 8.
Обратите внимание на описание "КоллекцияОбъектов".
Рабочий пример: (фрагмент)
// берем таб часть дока-источника (или создаем тз сами)
ТабЧастьДока = Источник.Товары.Выгрузить();
ПараметрыЧисла = Новый КвалификаторыЧисла(10, 3);
ТабЧастьДока.Колонки.Добавить("ЦенаВРознице",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
ТабЧастьДока.Колонки.Добавить("ПроцентРозничнойНаценки",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
//обрабатываем...
Для Каждого текСтрока из ТабЧастьДока Цикл
КонецЦикла;
//Присваиваем
КоллекцияОбъектов = ТабЧастьДока;
Естествено структура "КоллекцияОбъектов" должна соответствовать приемнику
для програмной подмены таб части объекта-приемника.
Обработчики "Правила конвертации группы свойств"
Перед обработкой
Условия возникновения события
Событие выполняется перед обработкой группы свойств, например, перед выгрузкой табличной части. Возможен отказ от выгрузки. Можно определить произвольную коллекцию, являющуюся источником данных.
Параметры:
Отказ - Булево - Если Истина, то группа свойств не обрабатывается
Источник – выгружаемый объект.
Приемник - xml-узел формируемого объекта приемника
ВходящиеДанные – произвольные вспомогательные данные, переданные правилу конвертации из других правил, например, из правила выгрузки данных или правила конвертации свойств.
ИсходящиеДанные – произвольные вспомогательные данные, передаваемые правилам конвертации свойств.
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
НеЗамещать - Булево. По умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы загрузка подчиненных объектов (например, табличной части) выполняться не будет.
НеОчищать - Булево. Если в теле обработчика данному параметру установить значение Истина, то существующие подчиненные объекты (например, строки табличной части) удаляться не будут. Параметр используется только при загрузке на платформе 1С:Предприятие 8.
Обратите внимание на описание "КоллекцияОбъектов".
Рабочий пример: (фрагмент)
// берем таб часть дока-источника (или создаем тз сами)
ТабЧастьДока = Источник.Товары.Выгрузить();
ПараметрыЧисла = Новый КвалификаторыЧисла(10, 3);
ТабЧастьДока.Колонки.Добавить("ЦенаВРознице",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
ТабЧастьДока.Колонки.Добавить("ПроцентРозничнойНаценки",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
//обрабатываем...
Для Каждого текСтрока из ТабЧастьДока Цикл
КонецЦикла;
//Присваиваем
КоллекцияОбъектов = ТабЧастьДока;
Естествено структура "КоллекцияОбъектов" должна соответствовать приемнику
Прикрепленные файлы:

Работает прекрасно все при добавлении строк в событии "ПриЗагрузке" у ПКО документа.
Проблема была в другом - нельзя выполнять чтение узлов файла, как это показано в примере в информации по обработчикам - из за этого последующая обработка файла xml прекращается обработкой загрузки и все последующие объекты не записываются в ИБ.
Проблема была в другом - нельзя выполнять чтение узлов файла, как это показано в примере в информации по обработчикам - из за этого последующая обработка файла xml прекращается обработкой загрузки и все последующие объекты не записываются в ИБ.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Работает прекрасно все при добавлении строк в событии "ПриЗагрузке" у ПКО документа.
Проблема была в другом - нельзя выполнять чтение узлов файла, как это показано в примере в информации по обработчикам - из за этого последующая обработка файла xml прекращается обработкой загрузки и все последующие объекты не записываются в ИБ.
Проблема была в другом - нельзя выполнять чтение узлов файла, как это показано в примере в информации по обработчикам - из за этого последующая обработка файла xml прекращается обработкой загрузки и все последующие объекты не записываются в ИБ.
Есть еще вариант. На мой взгляд наиболее оптимальный. Это использование ПКГС документа. Этот обработчик специально существует
для програмной подмены таб части объекта-приемника.
Обработчики "Правила конвертации группы свойств"
Перед обработкой
Условия возникновения события
Событие выполняется перед обработкой группы свойств, например, перед выгрузкой табличной части. Возможен отказ от выгрузки. Можно определить произвольную коллекцию, являющуюся источником данных.
Параметры:
Отказ - Булево - Если Истина, то группа свойств не обрабатывается
Источник – выгружаемый объект.
Приемник - xml-узел формируемого объекта приемника
ВходящиеДанные – произвольные вспомогательные данные, переданные правилу конвертации из других правил, например, из правила выгрузки данных или правила конвертации свойств.
ИсходящиеДанные – произвольные вспомогательные данные, передаваемые правилам конвертации свойств.
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
НеЗамещать - Булево. По умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы загрузка подчиненных объектов (например, табличной части) выполняться не будет.
НеОчищать - Булево. Если в теле обработчика данному параметру установить значение Истина, то существующие подчиненные объекты (например, строки табличной части) удаляться не будут. Параметр используется только при загрузке на платформе 1С:Предприятие 8.
Обратите внимание на описание "КоллекцияОбъектов".
Рабочий пример: (фрагмент)
// берем таб часть дока-источника (или создаем тз сами)
ТабЧастьДока = Источник.Товары.Выгрузить();
ПараметрыЧисла = Новый КвалификаторыЧисла(10, 3);
ТабЧастьДока.Колонки.Добавить("ЦенаВРознице",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
ТабЧастьДока.Колонки.Добавить("ПроцентРозничнойНаценки",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
//обрабатываем...
Для Каждого текСтрока из ТабЧастьДока Цикл
КонецЦикла;
//Присваиваем
КоллекцияОбъектов = ТабЧастьДока;
Естествено структура "КоллекцияОбъектов" должна соответствовать приемнику
для програмной подмены таб части объекта-приемника.
Обработчики "Правила конвертации группы свойств"
Перед обработкой
Условия возникновения события
Событие выполняется перед обработкой группы свойств, например, перед выгрузкой табличной части. Возможен отказ от выгрузки. Можно определить произвольную коллекцию, являющуюся источником данных.
Параметры:
Отказ - Булево - Если Истина, то группа свойств не обрабатывается
Источник – выгружаемый объект.
Приемник - xml-узел формируемого объекта приемника
ВходящиеДанные – произвольные вспомогательные данные, переданные правилу конвертации из других правил, например, из правила выгрузки данных или правила конвертации свойств.
ИсходящиеДанные – произвольные вспомогательные данные, передаваемые правилам конвертации свойств.
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
НеЗамещать - Булево. По умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы загрузка подчиненных объектов (например, табличной части) выполняться не будет.
НеОчищать - Булево. Если в теле обработчика данному параметру установить значение Истина, то существующие подчиненные объекты (например, строки табличной части) удаляться не будут. Параметр используется только при загрузке на платформе 1С:Предприятие 8.
Обратите внимание на описание "КоллекцияОбъектов".
Рабочий пример: (фрагмент)
// берем таб часть дока-источника (или создаем тз сами)
ТабЧастьДока = Источник.Товары.Выгрузить();
ПараметрыЧисла = Новый КвалификаторыЧисла(10, 3);
ТабЧастьДока.Колонки.Добавить("ЦенаВРознице",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
ТабЧастьДока.Колонки.Добавить("ПроцентРозничнойНаценки",Новый ОписаниеТипов ("Число", ПараметрыЧисла) );
//обрабатываем...
Для Каждого текСтрока из ТабЧастьДока Цикл
КонецЦикла;
//Присваиваем
КоллекцияОбъектов = ТабЧастьДока;
Естествено структура "КоллекцияОбъектов" должна соответствовать приемнику
Прикрепленные файлы:

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот