Имя: Пароль:
1C
1С v8
КД не заполняется табличная часть
,
0 Aswed
 
30.03.15
09:57
Создал ПВД в котором самостоятельно формирую состав будущих документов.

В нём прописал следующий код

Для Каждого СтрокаТЧ Из Объект.Состав Цикл    
    ИсходящиеДанные = Новый Структура;
    
    ИсходящиеДанные.Вставить("НовыйДокумент",             Истина);
    ИсходящиеДанные.Вставить("Дата",                     Объект.Дата);
    ИсходящиеДанные.Вставить("Организация",             Объект.Организация);
    ИсходящиеДанные.Вставить("Контрагент",                 СтрокаТЧ.Контрагент);
    ИсходящиеДанные.Вставить("СчетОрганизации",         Объект.БанковскийСчет);
    ИсходящиеДанные.Вставить("НазначениеПлатежа",         СтрокаТЧ.НазначениеПлатежа);
    ИсходящиеДанные.Вставить("НомерВходящегоДокумента",    СтрокаТЧ.ПлатежкаНомер);
    ИсходящиеДанные.Вставить("ДатаВходящегоДокумента",    СтрокаТЧ.ПлатежкаДата);
    ИсходящиеДанные.Вставить("СчетБанк",                СтрокаТЧ.КоррСчет);
    
    НомерДокумента = Прав(Объект.Номер, 6) + Прав("0" + СтрокаТЧ.НомерСтроки, 2);
    ИсходящиеДанные.Вставить("Номер",             "ААВ" + НомерДокумента);
    ИсходящиеДанные.Вставить("Комментарий",     "По документу " + Объект + " строка табличной части №" + СтрокаТЧ.НомерСтроки);
        
    //заполнение расшифровки платежа
    РасшифровкаПлатежа = Новый ТаблицаЗначений;
    РасшифровкаПлатежа.Колонки.Добавить("ДоговорКонтрагента");
    РасшифровкаПлатежа.Колонки.Добавить("СуммаПлатежа");
    НоваяСтрокаРасшифровки = РасшифровкаПлатежа.Добавить();
    НоваяСтрокаРасшифровки.ДоговорКонтрагента     = СтрокаТЧ.ДоговорВзаиморасчетов;
    
    Если СтрокаТЧ.СуммаПриход > 0 Тогда
        НоваяСтрокаРасшифровки.СуммаПлатежа    = СтрокаТЧ.СуммаПриход;
    Иначе
        НоваяСтрокаРасшифровки.СуммаПлатежа    = СтрокаТЧ.СуммаРасход;
    КонецЕсли;
            
    ИсходящиеДанные.Вставить("РасшифровкаПлатежа", РасшифровкаПлатежа);
                
    Если СтрокаТЧ.СуммаПриход > 0 Тогда
        ИсходящиеДанные.Вставить("СуммаДокумента", СтрокаТЧ.СуммаПриход);
        //ИсходящиеДанные.Вставить("ВидОперации",                ВыгрузитьПоПравилу(СтрокаТЧ.СтатьяДДС.Код,,,,"ВидыОперацийПКОПоКоду"));
        ВыгрузитьПоПравилу(ИсходящиеДанные,,,,"ПоступлениеНаРасчетныйСчет");
    Иначе
        ИсходящиеДанные.Вставить("СуммаДокумента", СтрокаТЧ.СуммаРасход);
        //ИсходящиеДанные.Вставить("ВидОперации",                ВыгрузитьПоПравилу(СтрокаТЧ.СтатьяДДС.Код,,,,"ВидыОперацийРКОПоКоду"));
        ВыгрузитьПоПравилу(ИсходящиеДанные,,,,"СписаниеСРасчетногоСчета");
    КонецЕсли;
    
КонецЦикла;

ТЧ приемника
http://s020.radikal.ru/i701/1503/8e/4ba6dcce0adb.jpg

Всё отлично проходит, документы создаются реквизиты заполняются. Но как стал пытаться заполнять ТЧ выскакивает ошибка при выгрузке

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8000)}: Поле объекта не обнаружено (РасшифровкаПлатежа)

Подскажите что не так сделал и где не дописал?
1 Aswed
 
30.03.15
10:02
2 Naumov
 
30.03.15
10:05
у ПКГС "РасшифровкаПлатежа" поставь галку получать из Входящих данных
3 Aswed
 
30.03.15
10:08
(2) Пробовал.
Тогда ругается

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1717)}: Ошибка в обработчике события ПередВыгрузкойОбъекта
    ПВД                    =  Выписка
    Объект                 =  Банковская выписка АВ00000001 от 12.01.2015 15:50:15  (Банковская выписка)
    Обработчик             =  ПередВыгрузкойОбъектаВыборки
    ОписаниеОшибки         =  Ошибка получения коллекции подчиненных объектов из входящих данных
    ПКО                    =  СписаниеСРасчетногоСчета  (:)
    ПКГС                   =  13  (--> РасшифровкаПлатежа)
    Объект                 =  Структура  (Структура)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7967)
    КодСообщения           =  66
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1694)
    КодСообщения           =  33
4 Naumov
 
30.03.15
10:14
(3) А что там за обработчик у ПКГС в событии ПередВыгрузкойОбъектаВыборки?
5 Stim
 
30.03.15
10:15
я делал так:

ПКГС:  пуст - мояТЧ
передобработкой(): Выполнить(Алгоритмы.МойАлгоритм);

в алгоритме:

КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("РеквизитЧТприемника1");
КоллекцияОбъектов.Колонки.Добавить("РеквизитЧТприемника2");
..
НоваяСтрока = КоллекцияОбъектов.Добавить();
НоваяСтрока.РеквизитЧТприемника1 = "";
..

в пкгс у источника пустое значение, без всяких галочек.
6 Stim
 
30.03.15
10:15
+ в пкгс все реквизиты тч
7 Aswed
 
30.03.15
10:16
(4) ПГКС пуст, в том то и дело.
А обработчик "ПередВыгрузкойОбъектаВыборки" это код в (0)
8 Aswed
 
30.03.15
10:16
(6) Так, щас это попробую добавить.
9 Aswed
 
30.03.15
10:20
(5) У меня нет источника.
Только приемник, данные для него формирую в ПВД.
10 Aswed
 
30.03.15
10:21
Без "ПолучатьИзВходящихДанных" ругается сволочь что не обнаружено поле "РасшифровкаПлатежа"
11 Naumov
 
30.03.15
10:43
(3) Такого ругательства при отсутствии обработкиков быть не должно.
я б отладчик воткнул и посмотрел что и из чего он пытается получать по индексу.
12 Naumov
 
30.03.15
10:46
(1) для списания покажи
13 Aswed
 
30.03.15
10:49
14 Aswed
 
30.03.15
10:50
Я думаю может вся беда из-за того что я использую стандартную выборку в ПВД и формирую структуру в обработчике "ПередВыгрузкой"
15 Naumov
 
30.03.15
10:52
а для ПВД указано, что это произвольный алгоритм ?
16 Naumov
 
30.03.15
10:53
(14) В твоем случае надо произвольный ставить и ВыгрузитьПоПравилу использовать
17 Aswed
 
30.03.15
10:55
(16) Нет, стоит стандартная выборка. Щас буду переделывать на произвольный. Видимо отсюда все рога растут.

Я в эту выгрузку планирую брать данные из планов обмена. В произвольном получается надо будет переписывать запрос на план обмена, чего я и хотел избежать(
18 Naumov
 
30.03.15
10:59
(17) Обмены на БСП не задействуют ПВД при выгрузках.
19 Aswed
 
30.03.15
11:02
(18) а как тогда быть?
20 Aswed
 
30.03.15
11:05
+ 19 писать робота который будет стартовать обмен через обработку универсальный обмен данными?
21 smitru
 
30.03.15
11:07
(18) Не обманывай. обмены БСП используют иной механизм регистрации, а ПВД у них именно ПВДшные
22 smitru
 
30.03.15
11:08
(14) Это нужно делать не "Перед выгрузкой", а "После Загрузки" - на стороне Приемника
23 Aswed
 
30.03.15
11:13
(22) Не понял. Что делать?:)
24 Naumov
 
30.03.15
11:18
(21) не знаю, не знаю. При обмене из БП в БП (на базе БП-УТ) ПВД не отрабатывались. Пришлось отрабатывать по-другому.
25 smitru
 
30.03.15
11:20
(24) "ПВД не отрабатывались"
Если не взведена "регистрация обмена", то ПВД не отрабатывает. А механизм регистрации в БСП обмене - свой (хотя ПРО этот обмен - понимает)
26 smitru
 
30.03.15
11:21
(23)
Что не понял? Что такое ПКО или где у ПКО есть события?
27 Naumov
 
30.03.15
11:26
(26) А что нужно понять? что сделать на стороне приемника, если вся информация осталась на стороне источника?
Написал не в попад, так признай.
28 Aswed
 
30.03.15
11:50
(27) +1:)
29 Aswed
 
30.03.15
12:00
Последний вопрос и эта выгрузка готова.

Как ВыгрузитьПоПравилу для отдельного элемента когда я формирую такую структуру как описано в (0)?

Т.е. у меня есть правило конвертации для отдельного реквизита документа. Когда обычная настройка там все просто.
При таком же формировании пишу

ИсходящиеДанные.Вставить("ВидОперации",                ВыгрузитьПоПравилу(СтрокаТЧ.СтатьяДДС.Код,,,,"ВидыОперацийПКОПоКоду"));

Ругается что не правильно. А как сделать правильно?