|
Конвертация 2.0 УТ-БП | ☑ | ||
---|---|---|---|---|
0
doctor_dvd
03.05.17
✎
11:05
|
Подскажите как описать следующий алгоритм. Выгружаю документ из ут в бп, а дальше нужно в табличную часть этого выгруженного документа добавить запись в табличную часть, У источника нет такой табличной части.
|
|||
1
Aleksey
03.05.17
✎
11:06
|
формируй эту ТЧ на этапе выгрузки
|
|||
2
doctor_dvd
03.05.17
✎
11:09
|
(1) Так как ее сформировать если документ приемник это просто XML ?
|
|||
3
Aleksey
03.05.17
✎
11:15
|
Аналогично как и всё остальное
|
|||
4
Aleksey
03.05.17
✎
11:16
|
Обработчики "Правила конвертации группы свойств"
Перед обработкой Условия возникновения события Событие выполняется перед обработкой группы свойств, например, перед выгрузкой табличной части. Возможен отказ от выгрузки. Можно определить произвольную коллекцию, являющуюся источником данных. Параметры: Отказ - Булево - Если Истина, то группа свойств не обрабатывается Источник – выгружаемый объект. Приемник - xml-узел формируемого объекта приемника ВходящиеДанные – произвольные вспомогательные данные, переданные правилу конвертации из других правил, например, из правила выгрузки данных или правила конвертации свойств. ИсходящиеДанные – произвольные вспомогательные данные, передаваемые правилам конвертации свойств. КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет. НеЗамещать - Булево. По умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы загрузка подчиненных объектов (например, табличной части) выполняться не будет. НеОчищать - Булево. Если в теле обработчика данному параметру установить значение Истина, то существующие подчиненные объекты (например, строки табличной части) удаляться не будут. Параметр используется только при загрузке на платформе 1С:Предприятие 8. Параметр игнорируется в обмене на технологии Библиотеки стандартных подсистем. УзелКоллекцииСвойств - xml-узел коллекции свойств |
|||
5
Aleksey
03.05.17
✎
11:19
|
Например на ТЧ приемника (на папку) прописываем обработчик "перед обработкой"
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Номенклатура"); КоллекцияОбъектов.НоваяКолонка("Количество"); КоллекцияОбъектов.НоваяКолонка("Сумма"); КоллекцияОбъектов.НоваяКолонка("Цена"); Источник.ВыбратьСтроки(); Пока Источник.ПолучитьСтроку() = 1 цикл КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Номенклатура = Источник.Номенклатура; КоллекцияОбъектов.Количество = Источник.Количество; КоллекцияОбъектов.Сумма = Источник.Сумма; КоллекцияОбъектов.Цена = Источник.Сумма/Источник.Количество; КонецЦикла; Если КоллекцияОбъектов.КоличествоСтрок() = 0 тогда Отказ = 1; Иначе Отказ = 0; КонецЕсли; |
|||
6
doctor_dvd
03.05.17
✎
11:22
|
(4) т.е я создаю ПКС для тч приемника а в качестве источника говорю что бы получить значение из входящих данных? так?
|
|||
7
doctor_dvd
03.05.17
✎
11:23
|
(5) КоллекцияОбъектов это Входящее значение или он же источник?
|
|||
8
Aleksey
03.05.17
✎
11:28
|
(6) Источник пусто. Он автоматом поля по имени сопоставит
(7) См (4). Это предопределенная переменная. Если её заполнить то он будет считать её как ТЧ источника |
|||
9
doctor_dvd
03.05.17
✎
11:30
|
(8) Спасибо
|
|||
10
doctor_dvd
03.05.17
✎
11:33
|
(8) То есть КоллекцияОбъектов автоматически сопаставится по одноименным реквизитам с тч в приемнике верно?
|
|||
11
Aleksey
03.05.17
✎
11:44
|
да
Если есть желание можно прописать у каждого реквизита перед выгрузкой Значение = "Комментарий: " + ОбъектКоллекции.Комментарий; P.S. ОбъектКоллекции - ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д. |
|||
12
Aleksey
03.05.17
✎
11:46
|
Или к примеру для Суммы указать
Значение = ОбъектКоллекции.Количество*ОбъектКоллекции.Цена А для реквизита ставка НДС Значение = Перечисление.СтавкиНДС.НДС18; |
|||
13
doctor_dvd
03.05.17
✎
12:57
|
(12) В ПКГС я создал КоллекцияОбъектов, так как мне ее запихать в приемник, чет не получается(
|
|||
14
h-sp
03.05.17
✎
13:14
|
(13) зачем ее в приемник запихивать?
|
|||
15
doctor_dvd
03.05.17
✎
13:18
|
(14) В xml выгружается пустая строка
КоллекцияОбъектов = Новый ТаблицаЗначений; КоллекцияОбъектов.Колонки.Добавить("ДокументОснование"); КоллекцияОбъектов.Колонки.Добавить("НомерИсходногоДокумента"); КоллекцияОбъектов.Колонки.Добавить("ДатаИсходногоДокумента"); КоллекцияОбъектов.Колонки.Добавить("УчитыватьИсправлениеИсходногоДокумента"); КоллекцияОбъектов.Колонки.Добавить("НомерИсправленияИсходногоДокумента"); КоллекцияОбъектов.Колонки.Добавить("ДатаИсправленияИсходногоДокумента"); КоллекцияОбъектов.Колонки.Добавить("СуммаУвеличение"); КоллекцияОбъектов.Колонки.Добавить("СуммаУменьшение"); КоллекцияОбъектов.Колонки.Добавить("СуммаНДСУвеличение"); КоллекцияОбъектов.Колонки.Добавить("СуммаНДСУменьшение"); //КоллекцияОбъектов.Колонки.Добавить("УчитыватьИсправлениеИсходногоДокумента"); Стр = КоллекцияОбъектов.Добавить(); Стр.ДокументОснование = Источник.ДокументОснование.Ссылка; Стр.НомерИсходногоДокумента = Источник.Номер; Стр.ДатаИсходногоДокумента = Источник.Дата; Если КоллекцияОбъектов.Количество() = 0 тогда Отказ = 1; Иначе Отказ = 0; КонецЕсли; по итогу таблица формируется но значения пустые |
|||
16
Aleksey
03.05.17
✎
13:26
|
(13) ты же приемник и так указал, зачем еще что-то пихать?
|
|||
17
doctor_dvd
03.05.17
✎
13:27
|
(16) Ну да я это понял, ну почему то в хмл строка тч пустая, он хотя бы выгрузить то должен. в коллекцию данные записываются
|
|||
18
Aleksey
03.05.17
✎
13:27
|
Если КоллекцияОбъектов.Количество() = 0 тогда
Отказ = 1; Иначе Отказ = 0; КонецЕсли; Это можешь не писать. Это я для свой задачи прописывал чтобы с пустой табличной частью не выгружать |
|||
19
Aleksey
03.05.17
✎
13:29
|
(17) скриншот конверташки там где видны поля приемника у таблицы
|
|||
20
doctor_dvd
03.05.17
✎
13:30
|
(19) а я поля не добавлял, просто запись самой таблицы без строк
|
|||
21
doctor_dvd
03.05.17
✎
13:31
|
(19) я накосячил)?
|
|||
22
Йохохо
03.05.17
✎
13:35
|
(21) зато работает, выгружает все что ей сказано
|
|||
23
doctor_dvd
03.05.17
✎
13:36
|
(19) Ок, спасибо огромное, все заработало)))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |