Имя: Пароль:
1C
1С v8
Конвертация данных. Из множества документов один
0 john_ddd
 
18.03.12
14:49
Подскажите, бьюсь второй день.
Две конфигурации нужно из первой за период выгрузить все Реализации, а во вторую загрузить как один документ.
Что я делал: 1. Создал ПВД Произвольный алгоритм. Там запрос и все вставляю в Структуру.
2. Создал ПКО поставил галочку получать из входящих данных
Только вот чето не получается...может в ПКО нужно еще чего писать в событиях?
1 Aleksey
 
18.03.12
14:50
ВыгрузитьПоПравилу пробовал?
2 john_ddd
 
18.03.12
14:52
да в ПВД написал вот чего...не знаю чего писать в ПКО
Запрос = Новый запрос();
Запрос.текст = "ВЫБРАТЬ
|    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
|    РасходнаяНакладнаяСписокНоменклатуры.Количество,
|    РасходнаяНакладнаяСписокНоменклатуры.Цена,
|    РасходнаяНакладнаяСписокНоменклатуры.Сумма
|ИЗ
|    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры";

Выборка = запрос.Выполнить().Выбрать();

ТоварыНаСкладах = Новый ТаблицаЗначений();
ТоварыНаСкладах.Колонки.Добавить("Номенклатура");
ТоварыНаСкладах.Колонки.Добавить("Количество");
ТоварыНаСкладах.Колонки.Добавить("Цена");
ТоварыНаСкладах.Колонки.Добавить("Сумма");

ДатаВыгрузки = ТекущаяДата();

Пока Выборка.Следующий() Цикл
   
   СтрокаТоваров = ТоварыНаСкладах.Добавить();
   СтрокаТоваров.Номенклатура = Выборка.Номенклатура;
   СтрокаТоваров.Количество = Выборка.Количество;
   СтрокаТоваров.Цена = Выборка.Цена;
   СтрокаТоваров.Сумма = Выборка.Сумма;
   
КонецЦикла;

ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Номер", "001");
ИсходящиеДанные.Вставить("Дата", ДатаВыгрузки);
ИсходящиеДанные.Вставить("СписокНоменклатуры", ТоварыНаСкладах);

ВыгрузитьПоПравилу(, , ИсходящиеДанные,, "РасходнаяНакладная");
3 nicxxx
 
18.03.12
14:53
4 john_ddd
 
18.03.12
14:59
nicxxx там про 7.7.....не понятно
5 nicxxx
 
18.03.12
15:06
сложно для 8.1 код доработать?
6 john_ddd
 
18.03.12
15:12
В этом примере вообще нет ВыгрузитьПоПравилу
В ПКО при загрузке что нужно писать?
7 patapum
 
18.03.12
15:14
8 patapum
 
18.03.12
15:14
в 26 сообщении то, что тебе должно помочь
9 acsent
 
18.03.12
15:19
ВходящиеДанные  нужно использовать
10 john_ddd
 
18.03.12
17:00
В ПВД Перед обработкой написал, как в 26 сообщении:

Запрос = Новый запрос();
Запрос.текст = "ВЫБРАТЬ
|    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
|    РасходнаяНакладнаяСписокНоменклатуры.Количество,
|    РасходнаяНакладнаяСписокНоменклатуры.Цена,
|    РасходнаяНакладнаяСписокНоменклатуры.Сумма
|ИЗ
|    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры";

Выборка = запрос.Выполнить().Выбрать();

ТаблицаДанные = Новый ТаблицаЗначений;
ТаблицаДанные.Колонки.Добавить("Номер", Новый ОписаниеТипов("Строка"));
ТаблицаДанные.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
ТаблицаДанные.Колонки.Добавить("ПометкаУдаления", Новый ОписаниеТипов("Булево"));
ТаблицаДанные.Колонки.Добавить("СуммаПоДокументу", Новый ОписаниеТипов("Число"));
ТаблицаДанные.Колонки.Добавить("СписокНоменклатуры", Новый ОписаниеТипов("ТаблицаЗначений"));

СписокНоменклатуры = Новый ТаблицаЗначений();
СписокНоменклатуры.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
СписокНоменклатуры.Колонки.Добавить("Количество");
СписокНоменклатуры.Колонки.Добавить("Цена");
СписокНоменклатуры.Колонки.Добавить("Сумма");

Пока Выборка.Следующий() Цикл
   
   СтрокаТоваров = СписокНоменклатуры.Добавить();
   СтрокаТоваров.Номенклатура = Выборка.Номенклатура;
   СтрокаТоваров.Количество = Выборка.Количество;
   СтрокаТоваров.Цена = Выборка.Цена;
   СтрокаТоваров.Сумма = Выборка.Сумма;
   
КонецЦикла;

НоваяСтрокаДанные = ТаблицаДанные.Добавить();
НоваяСтрокаДанные.Номер = "001";
НоваяСтрокаДанные.Дата = ТекущаяДата();
НоваяСтрокаДанные.ПометкаУдаления = Ложь;
НоваяСтрокаДанные.СуммаПоДокументу = 123;
НоваяСтрокаДанные.СписокНоменклатуры = СписокНоменклатуры;

ВыборкаДанных = ТаблицаДанные;

Выдает ошибку при выгрузке:
Ошибка получения свойства объекта из входящих данных
   ПКО                    =  РасходнаяНакладная  (Документ: Расходная накладная)
   ПКС                    =  2  ( --> Номер)
   Объект                 =  СтрокаТаблицыЗначений  (Строка таблицы значений)
   СвойствоПриемника      =  Номер  (Строка)
   ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8211)
   КодСообщения           =  68

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1618)}: Ошибка получения свойства объекта из входящих данных
   ПКО                    =  РасходнаяНакладная  (Документ: Расходная накладная)
   ПКС                    =  2  ( --> Номер)
   Объект                 =  СтрокаТаблицыЗначений  (Строка таблицы значений)
   СвойствоПриемника      =  Номер  (Строка)
   ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8211)
   КодСообщения           =  68
чего неправильно написал? а в ПКО Перед загрузкой надо чего писать?
11 patapum
 
18.03.12
18:00
у тебя таб часть дока называется СписокНоменклатуры? Имена должны соответствовать именам реквизитов и таб частей
больше нигде ничего писать не надо
12 patapum
 
18.03.12
18:07
извини, ерунду я написал
у тебя фигня в том, что в ПКСах стоит Получить из вх. данных похоже
13 john_ddd
 
18.03.12
18:12
patapum спасибо)) так и есть снял галочки все получилось)