|
Вопрос по конвертации | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
07.05.13
✎
08:54
|
Добрый день. Подскажите, пжл, как можно решить следующую задачу. Есть документ-источник с табличной частью и документ-приемник. В зависимости от того, сколько строк в табличной части документа-источника должно создаваться соответствующее количество документов-приемника. Т.е. если в табличной части документа-источника 2 строки, то в результате конвертации должно будет создаться 2 документа-приемника.
|
|||
1
Wobland
07.05.13
✎
08:56
|
перебираешь строки ТЧ и выгружаешь по правилу
|
|||
2
ДенисЧ
07.05.13
✎
08:56
|
ВыгрузитьПоПравилу() - великая штука...
|
|||
3
zippygrill
07.05.13
✎
09:02
|
с выгрузитьПоПравилу() вроде можно.
|
|||
4
Aleksey1989
07.05.13
✎
09:05
|
Спасибо всем за ответы, буду искать описание процедуры "ВыгрузитьПоПравилу".
|
|||
5
Wobland
07.05.13
✎
09:07
|
(4) найдёшь, расскажи. то, что я видел в документации, не соответствует тому, что у меня сейчас реально работает
|
|||
6
Aleksey1989
07.05.13
✎
09:15
|
(5) Я нашел идентичную ситуацию на http://www.streetrsorel.ru/1c/210995.htm, в справке к конфигурации "Конвертация данных" не могу ничего найти по этой процедуре.
|
|||
7
Defender aka LINN
07.05.13
✎
09:17
|
Можно через произвольную выборку сделать
|
|||
8
х86
07.05.13
✎
10:10
|
(6)пипец, еще один клон? походу только ленивый не копирует мисту
|
|||
9
Aleksey1989
07.05.13
✎
13:19
|
Что-то не получается у меня. Как я делаю:
1. Создал новое ПКО ПКО_доработка, в котором не указывал источника, а указал только приемника. 2. Добавил ПКС для номера и даты, у всех выставил галочку "Получить из входящих данных". 3. В правилах выгрузки данных создал правило выгрузки данных "ПКО_доработка", в событии "Перед выгрузкой" которого добавил следующий код: Для Каждого Строка Из Объект.РасшифровкаПлатежа Цикл ВходящиеДанные = Новый Структура; ВходящиеДанные.Вставить("Номер",Объект.Номер); ВходящиеДанные.Вставить("Дата",Объект.Дата); ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПКО_доработка"); КонецЦикла; При попытки выгрузить данные из конфигурации-источника вылетает следующая ошибка: Ошибка получения свойства объекта из входящих данных ПКО = ПКО_доработка (:) ПКС = 1 (--> Номер) Объект = Приходный кассовый ордер 20120109001 от 09.01.2012 12:00:00 (Приходный кассовый ордер) СвойствоПриемника = Номер (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270) КодСообщения = 68 Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1682)}: Ошибка получения свойства объекта из входящих данных ПКО = ПКО_доработка (:) ПКС = 1 (--> Номер) Объект = Приходный кассовый ордер 20120109001 от 09.01.2012 12:00:00 (Приходный кассовый ордер) СвойствоПриемника = Номер (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270) КодСообщения = 68 |
|||
10
Aprobator
07.05.13
✎
13:24
|
навскидку - ВходящиеДанные точно 3, а не 4 параметр?
|
|||
11
Wobland
07.05.13
✎
13:25
|
(10) сбегал проверил уже. третий
|
|||
12
Wobland
07.05.13
✎
13:25
|
а вот что выгружается - непонятно
|
|||
13
mkanaev
07.05.13
✎
13:29
|
(0) как вариант можно оьезличить приемник и делать из входящих данных на стороне приемника
|
|||
14
Aprobator
07.05.13
✎
16:20
|
(9) в ПВД указал, что выборка произвольная?
|
|||
15
Aleksey1989
07.05.13
✎
17:26
|
(14) Нет, стандартную оставил. Попробую с произвольной.
|
|||
16
AlexTim03
07.05.13
✎
17:33
|
(9)
Насколько помню с курсов, ты в ПКО заполняешь именно Исходящие данные, в ПКС, если надо обратиться, обращаешься к ВходящимДанным. Это они и будут. Проверь этот вариант |
|||
17
Aleksey1989
08.05.13
✎
09:36
|
В документации написано:
"Установка флажка "Получить значение из входящих данных" означает то, что конвертируемое значение будет получено не из объекта-источника, а из параметра ВходящиеДанные (данный параметр следует инициализировать в обработчиках событий правила конвертации объектов). " Как инициализировать этот параметр? |
|||
18
Wobland
08.05.13
✎
09:49
|
Оплаты=СоздатьОбъект("ТаблицаЗначений");
Оплаты.НоваяКолонка("СуммаОплаты"); ВходящиеДанные=СоздатьОбъект("СписокЗначений"); ВходящиеДанные.ДобавитьЗначение(Оплаты, "Оплата"); ВыгрузитьПоПравилу(док, , ВходящиеДанные, , "ОтчетОРозничныхПродажах"); |
|||
19
Wobland
08.05.13
✎
09:50
|
+(18) в приёмнике есть ТЧ Оплата, ТЗ Оплаты совпадает по структуре с ТЧ
|
|||
20
Aleksey1989
08.05.13
✎
09:51
|
(18) Этот код будет прописан в правилах выгрузки данных, я правильно понимаю?
|
|||
21
Wobland
08.05.13
✎
09:51
|
(20) у меня это в ПВД
|
|||
22
Бледно Золотистый
08.05.13
✎
09:57
|
(20) на mykod.info есть методичка по конвертации, там вроде был пример похожий на твой.
|
|||
23
Aleksey1989
08.05.13
✎
10:15
|
(21) А в документации сказано, что эта структура должна быть инициализированна в ПКО, а не в ПВД:
"(данный параметр следует инициализировать в обработчиках событий правила конвертации объектов)" (22) Спасибо за ссылку! |
|||
24
Wobland
08.05.13
✎
10:38
|
(23) наверное, я её плохо читал. поэтому у меня всё работает в ПВД ;)
|
|||
25
kortun
08.05.13
✎
10:50
|
(16) ты не прав, в ПКС нужно также обращаться к ИсходящимДанным
|
|||
26
Aleksey1989
08.05.13
✎
11:33
|
(24) Если следовать этой логике, то у меня должно быть вообще все супер-хорошо, т.к. я ее вообще не читал :)
|
|||
27
Aprobator
08.05.13
✎
12:11
|
(24) +100500 походу я тоже ее плохо читал. Но пофиг где инициализируются ВходящиеДанные. Это можно делать в ПКО, а можно в том месте, откуда вызывается правило. Это может быть как ПВД, так и ПКС которое ссылается на данное правило. Только там оно инициализируется как ИсходящиеДанные.
|
|||
28
Aprobator
08.05.13
✎
12:11
|
+(27) в смысле в ПКС как ИсходящиеДанные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |