Имя: Пароль:
1C
1С v8
КД Табличную часть источника в документы приемника
, , , , , ,
0 Aswed
 
29.03.15
12:03
В Источнике есть документ с табличной частью. Необходимо при переносе в приемник по каждой строке табличной части документа источника создавать документ.

Подскажите куда копать и если у кого есть примерчик просьба поделиться, т.к. ни разу такого ещё не делал и с какой стороны браться пока не соображу.
1 zak555
 
29.03.15
12:07
в ПГКС будет отрабатывать для каждой строки
формируешь список передаваемый реквизитов и явно указывает в какое ПКО (жокумента-получателя) передать это всё дело
2 Aswed
 
29.03.15
12:15
(1) ПКО как я понимаю будет без источника и получением из входящих данных?
3 Aswed
 
29.03.15
12:15
И как явно указать в какое? ВыгрузитьПоПравилу()?
4 zak555
 
29.03.15
12:19
(2) (3) ага
5 zak555
 
29.03.15
12:19
кд по рукой нет, проверить не могу
но пошёл бы по этому пути
6 Aswed
 
29.03.15
12:26
Так буду пробовать.

Если у кого будут ещё какие то варианты с радостью выслушаю)
7 welwel
 
29.03.15
12:29
А в самом приёмнике ссылки на эти документы где нужны?
8 Aswed
 
29.03.15
12:32
(7) А кстати да. Как потом при обновлении (перегрузке документов) мне искать эти вновь созданные документы?
9 welwel
 
29.03.15
12:35
Если в приемнике нужны ссылки, то лучше конвертировать ссылки, указав пко, а не выгрузитьпоправилу
10 ShoGUN
 
29.03.15
12:36
(9) Выгрузить по правилу конвертит ссылки, если в ПКО не указано другого(галками в ПКО это контролируется).
11 welwel
 
29.03.15
12:39
(10) ссылки на документы из тч
12 Aswed
 
29.03.15
12:44
Какие ссылки то на тч? Как мне их потом сопоставить то?
13 welwel
 
29.03.15
12:49
В (0) нет ответа на (7)
14 Aswed
 
29.03.15
12:53
(13) В каком смысле ссылки на эти документы?
15 welwel
 
29.03.15
12:59
Есть ли в объекте-приёмнике реквизиты, которые должны быть заполнены ссылками на эти документы из (0)
16 zak555
 
29.03.15
13:00
Aswed

давно бы показал на скриншотах реквизиты источника и приёмников
17 ShoGUN
 
29.03.15
13:01
(11) И чего? Указываешь в "Выгрузить по правилу" имя ПКО, по которому нормально конвертятся ссылки, и всё.
18 Aswed
 
29.03.15
13:02
(15) Нету.
(16) Щас сделаю:)
19 welwel
 
29.03.15
13:06
(17) подразумевается указание пко в пкс, а не явное выгрузитьпоправилу из (3)
20 welwel
 
29.03.15
13:08
(18) если нету, то выгрузитьпоправилу хоть откуда: из послевыгрузки, либо (1), либо из своего пвд
21 welwel
 
29.03.15
13:10
(20) *отдельного пвд
22 welwel
 
29.03.15
13:11
(21) с произвольным алгоритмом
23 Aswed
 
29.03.15
13:11
ТЧ источника

http://s019.radikal.ru/i603/1503/ec/7ab474c11e9c.jpg

Приемник

http://s020.radikal.ru/i719/1503/20/bbd1d145bf60.jpg

ТЧ приемника расшифровка платежа

http://s011.radikal.ru/i315/1503/b8/8305ddbf413b.jpg
24 Aswed
 
29.03.15
13:13
(22) Ну да я к этому уже пришел)
ПВД сделать и для каждой строки создавать свою структуру.

Вопрос возник как мне потом эти документы обновлять при очередном обмене, что бы их замещало, а не создавало постоянно новые.
25 welwel
 
29.03.15
13:14
(24) поля поиска укажи галками
26 Aswed
 
29.03.15
13:16
(25) :) Это если бы поля были уникальными)
Переношу банковскую выписку. А там, как понимаешь, одному и тому же контрагенту много раз могут проходить платежи.
27 Aswed
 
29.03.15
13:17
А что если при перегрузе определенным образом заполнять поле комментарий документа приемника и затем по нему искать?
28 welwel
 
29.03.15
13:19
Генери номер документа, например, исходный номер плюс номер строки тч
29 welwel
 
29.03.15
13:20
(27) по неиндекируемой строке искать долго
30 Aswed
 
29.03.15
13:20
(28) Точно, такой способ лучше получится.
Щас буду пробовать тогда.
31 Aswed
 
29.03.15
13:33
А при произвольном алгоритме выборку документов можно делать только через запрос?
Нельзя обработать типовой источник данных?
32 welwel
 
29.03.15
14:31
(31) вроде нет. Да и зачем? Запросом проще же
33 Aswed
 
29.03.15
14:47
Решил всё таки делать через ПГКС
Поставил источником ТЧ документа
Перед обработкой прописал

ИсходящиеДанные = Новый Структура;

РасшифровкаПлатежа = Новый ТаблицаЗначений;

ИсходящиеДанные.Вставить("НовыйДокумент", Истина);
ИсходящиеДанные.Вставить("Дата", Источник.Дата);
ИсходящиеДанные.Вставить("Номер", Источник.Номер);
ИсходящиеДанные.Вставить("Организация", Источник.Организация);
ИсходящиеДанные.Вставить("СуммаДокумента", ОбъектКоллекции.СуммаПриход);
ИсходящиеДанные.Вставить("Комментарий", "Тест");
                            
ИсходящиеДанные.Вставить("РасшифровкаПлатежа", РасшифровкаПлатежа);

ВыгрузитьПоПравилу(ИсходящиеДанные,,,,"ПоступлениеНаРасчетныйСчет");

Ругается сволочь

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1694)}: Ошибка в обработчике события ПередОбработкойВыгрузки группы свойств
    ПКО                    =  Выписка  (Документ: Банковская выписка)
    ПКГС                   =  1  (Состав -->)
    Объект                 =  Банковская выписка АВ00000001 от 12.01.2015 15:50:15  (Банковская выписка)
    Обработчик             =  ПередОбработкойВыгрузкиГруппыСвойств
    ОписаниеОшибки         =  Значение не является значением объектного типа (СуммаПриход)
    ПозицияМодуля          =  (9)
    КодСообщения           =  48
34 welwel
 
29.03.15
14:47
(31) можно оставить Стандартная выборка
и использовать:
Обработчики "Правила выгрузки данных"
Перед выгрузкой объекта
Условия возникновения события
Событие выполняется при получении очередного объекта из выборки, до передачи этого объекта правилу конвертации.
35 welwel
 
29.03.15
14:53
(33) пкгс передобработкой логично было бы для переопределения коллекции объектов (дальше, чтоб обрабатывались стандартным путем), например, если собирать из вх.данных ТЧ на стороне приемника
36 Aswed
 
29.03.15
14:53
37 Aswed
 
29.03.15
14:55
(35) Что логично было бы?
38 welwel
 
29.03.15
14:56
(36) раз уж приемник не указан, то и пкгс зачем городить лучше (24)
либо (34), если не хочется писать запрос
39 welwel
 
29.03.15
14:57
если в случае (34)
отказ = истина
и перебор строк ТЧ источника
заполнение структуры и выгрузитьпоправилу
40 Aswed
 
29.03.15
15:01
(38) Выгрузка предполагается регулярной и в качестве источника, я после первоначальной выгрузки, буду указывать план обмена.
Не охота потом переписывать ПВД.
41 Aswed
 
29.03.15
15:03
А хотя если (34) я правильно понял, то там буду обрабатывать каждый документ по очереди. Тогда сгодиться должно. Щас попробую.
42 Aswed
 
29.03.15
15:12
Уже голова блин кипит

перенес в ПВД

ИсходящиеДанные = Новый Структура;

РасшифровкаПлатежа = Новый ТаблицаЗначений;

ИсходящиеДанные.Вставить("НовыйДокумент", Истина);
ИсходящиеДанные.Вставить("Дата", Объект.Дата);
ИсходящиеДанные.Вставить("Номер", Объект.Номер);
ИсходящиеДанные.Вставить("Организация", Объект.Организация);
    
ИсходящиеДанные.Вставить("Комментарий", "Тест");
                            
ИсходящиеДанные.Вставить("РасшифровкаПлатежа", РасшифровкаПлатежа);

ВыгрузитьПоПравилу(ИсходящиеДанные,,,,"ПоступлениеНаРасчетныйСчет");


Теперь ругается вообще на дату млять

Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
    ПВД                    =  Выписка
    Обработчик             =  ПередОбработкойВыгрузкиДанных
    ОписаниеОшибки         =  Значение не является значением объектного типа (Дата)
    ПозицияМодуля          =  (6)
    КодСообщения           =  31
43 welwel
 
29.03.15
15:17
отладчик что говорит?
имхо вообще проще из "отладочной" обработки обработчики событий писать, а потом отлаженный текст переносить уже в КД
44 welwel
 
29.03.15
15:17
(42) а нужно Перед выгрузкой объекта
45 Aswed
 
29.03.15
15:18
Блин надо было просто перенести ни перед обработкой а перед выгрузкой.
46 Aswed
 
29.03.15
15:19
(43) к своему стыду никогда не пользовался)))
Как не возникало необходимости.
Но видать для этого обмена придётся глянуть что это за зверь)))
47 Aswed
 
29.03.15
15:20
+ 46 где она вообще находится?
48 welwel
 
29.03.15
15:20
(43) удобно тем, что код пишется в конфигураторе (со всеми плюсами), а не в КД
49 welwel
 
29.03.15
15:24
если Универсальный обмен данными в формате XML
то галка Режим отладки, и там все написано как

а для планов обмена не приходилось пользоваться отладкой, не знаю
50 Aswed
 
29.03.15
15:25
(49) Ок, спасибо.
Через ПВД в самом деле удобнее получается.
51 Aswed
 
29.03.15
15:45
Вот когда сделаешь кажется пипец что же тут сложного то было)))))

Всем спасибо кто откликнулся.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший