Имя: Пароль:
1C
 
Конвертация данных из 7.7 в 8.1 создает всего один документ
0 Zhora_Vlg
 
24.06.09
13:22
Выгружаю остатки номенклатуры из самописной 7.7 в УПП, через документ поступление товаров и услуг.
В ПВД с произвольным алгоритмом выборки перед выгрузкой пишу

ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Дата");
ВыборкаДанных.НоваяКолонка("СкладОрдер");
ВыборкаДанных.НоваяКолонка("Товары");

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Подразделения,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Параметры.Родитель, 1);
Ит.ВыполнитьЗапрос(, ДатаОкончания, "41.1",,, 1,, "СК");
Ит.ВыбратьСубконто(ВидыСубконто.Подразделения);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Подразделения) = 1 Цикл
   
   ВыборкаДанных.НоваяСтрока();
   ВыборкаДанных.Дата = ДатаОкончания;
   ВыборкаДанных.СкладОрдер = Ит.Субконто(ВидыСубконто.Подразделения);
   ВыборкаДанных.Товары = СоздатьОбъект("ТаблицаЗначений");
   ТабТовары = ВыборкаДанных.Товары;
   ТабТовары.НоваяКолонка("Количество");
   ТабТовары.НоваяКолонка("Номенклатура");
   ТабТовары.НоваяКолонка("Сумма");
   
   Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
   Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
       
       ТабТовары.НоваяСтрока();
       ТабТовары.Номенклатура = Ит.Субконто(ВидыСубконто.Номенклатура);
       ТабТовары.Количество = Ит.СКД("К");
       ТабТовары.Сумма = Ит.СКД("С");
       
   КонецЦикла;
КонецЦикла;

В результате получается всего один документ, с первым подразделением(складом).
В отладчике смотрел ВыборкаДанных содержит данные обо всех складах.
При установке в ПКО галки "Не запоминать выгруженные" работает нормально.
Кто знает почему так?
1 Wehrmacht
 
24.06.09
13:27
Навскидку, надо задать уникальный ключ для каждой выборки (не помню, как параметр называется точно, в хелпе должен быть прописан). Если стоит галка "Не запоминать выгруженные", то он выгружает объект, несмотря на то, что по данному ключу выгрузка уже происходила.
2 mista2009
 
24.06.09
13:29
Когда "Запоминаем выгруженные", т.е. галки нет, системе надо каким то образом для запоминания идентифицировать объект: по коду, по ГУИДу и т.д. В твоём случае код у всех объектов одинаковый.
3 Zhora_Vlg
 
24.06.09
14:18
По коду обработки

КлючВыгружаемыхДанных = ЗначениеВСтрокуВнутр(Источник);

где "Источник" это строка таблицы значений "ВыборкаДанных".

Как сделать чтобы "КлючВыгружаемыхДанных", для каждой строки был разный?
4 Zhora_Vlg
 
24.06.09
14:24
В отладчике мой ключ такой:

КлючВыгружаемыхДанных = "{"VT","1",{"0",{{"","0","0","0","","2"},
{"Дата","Дата","1","0","0",{"U","0","0","0","0","0"},"","0",
{
{"D","0","0","0","0","0","        "},
{"D","0","0","0","0","0","        "},
{"D","0","0","0","0","0","        "},
{"D","0","0","0","0","0","        "}"
5 Defender aka LINN
 
24.06.09
14:25
(3) Источник - это не строка а ТЗ.
Поставь галку и не парься.
6 Zhora_Vlg
 
24.06.09
14:27
(5)У меня огромный объем данных, остатки по 8 складам примерно по 50000 позиций.
Без галки система не загнется?
7 GenV
 
24.06.09
14:31
(6) Можно выгружать частями, если будут проблемы. Если не получиться, то можно попробывать формировать КлючВыгружаемыхДанных как строку в ПередВыгрузкой в ПКО документа. Типа
КлючВыгружаемыхДанных = Строка(Источник.СкладОрдер)+Источник.Дата
или т.п. Тогда должен идентифицироваться правильно, т.к. для каждого документа будет уникальным.
8 mista2009
 
24.06.09
14:34
Попробуй код генерить

.....
Сч=1;
Ит.ВыбратьСубконто(ВидыСубконто.Подразделения);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Подразделения) = 1 Цикл
   
   ВыборкаДанных.НоваяСтрока();
   ВыборкаДанных.Дата = ДатаОкончания;
   ВыборкаДанных.СкладОрдер = Ит.Субконто(ВидыСубконто.Подразделения);
   ВыборкаДанных.Товары = СоздатьОбъект("ТаблицаЗначений");
   ТабТовары = ВыборкаДанных.Товары;
   ТабТовары.НоваяКолонка("Количество");
   ТабТовары.НоваяКолонка("Номенклатура");
   ТабТовары.НоваяКолонка("Сумма");
   
   Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
   Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
       
       ТабТовары.НоваяСтрока();
       ТабТовары.Номенклатура = Ит.Субконто(ВидыСубконто.Номенклатура);
       ТабТовары.Количество = Ит.СКД("К");
       ТабТовары.Сумма = Ит.СКД("С");
       ТабТовары.Код=Сч;
       Сч=Сч+1;
   КонецЦикла;
КонецЦикла;


.....
9 Zhora_Vlg
 
24.06.09
14:37
(8)Не пойму какой в этом смысл.
10 Zhora_Vlg
 
24.06.09
14:47
(7) Все верно. КлючВыгружаемыхДанных можно формировать в ПКО перед выгрузкой.
И с галкой тоже все нормально. Я сначала подумал что он и Номенклатуру запоминать не будет, потом догнал что это совсем другое ПКО.
Всем спасибо.
11 Zhora_Vlg
 
24.06.09
14:50
(7) Все верно. КлючВыгружаемыхДанных можно формировать в ПКО перед выгрузкой.

(5)И с галкой тоже все нормально. Я сначала подумал что он и Номенклатуру запоминать не будет, потом догнал что это совсем другое ПКО.

Всем спасибо.
Основная теорема систематики: Новые системы плодят новые проблемы.