Имя: Пароль:
1C
1С v8
Конвертация объектов: Как разбить одну строку на несколько
0 SMakcik
 
29.10.12
14:13
Всем привет!

В конвертации я только начал разбираться. Почитал, посмотрел примеры.

Выгружаю строки документа и разбиваю строки одну в несколько

Алгоритм таков

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

Для Каждого СтрокаТаблицыТоваров ИЗ Источник.Товары Цикл
   
   Если СтрокаТаблицыТоваров.Номенклатура.ВестиУчетПоРазмерам Тогда
       Для к = 1 ПО глОбщееКоличествоРазмеров Цикл
           Если СтрокаТаблицыТоваров["КоличествоРазмер" + Строка(к)] > 0 Тогда
               НоваяСтрока = КоллекцияОбъектов.Добавить();
               НоваяСтрока.Номенклатура = СтрокаТаблицыТоваров.Номенклатура;
               НоваяСтрока.Характеристика = СтрокаТаблицыТоваров["Размер" + Строка(к)];
               НоваяСтрока.Количество = СтрокаТаблицыТоваров["КоличествоРазмер" + Строка(к)];
               НоваяСтрока.КоличествоУпаковок = СтрокаТаблицыТоваров["КоличествоРазмер" + Строка(к)];
           КонецЕсли;
       КонецЦикла;    
   Иначе
       НоваяСтрока = КоллекцияОбъектов.Добавить();
       НоваяСтрока.Номенклатура = СтрокаТаблицыТоваров.Номенклатура;
       НоваяСтрока.Характеристика = СтрокаТаблицыТоваров.ХарактеристикаНоменклатуры;
       НоваяСтрока.Количество = СтрокаТаблицыТоваров.Количество;
       НоваяСтрока.КоличествоУпаковок = СтрокаТаблицыТоваров.Количество;
   КонецЕсли;    
   
КонецЦикла    

При загрузке и выгрузке через универсальный обмен вроде все проходит нормально.

А вот при плане обмена с розницой табличная часть не загружается. кто-нить может пояснить данное явление. В какую сторону рыть.
1 SMakcik
 
29.10.12
15:22
апп
2 SMakcik
 
29.10.12
15:26
И зачем он выгружает КлючПоискаВИБИсточнике и как от него избавиться?
3 SMakcik
 
29.10.12
17:28
и еще разочек ап
4 SMakcik
 
29.10.12
17:46
Народ, ну что никто не знает в чем дело?
5 texnik
 
29.10.12
21:15
В ПКО (твой документ) в обработчике ПередВыгрузкой
пишешь свой код
Затем пишешь
ВходящиеДанные = Новый Структура("Товары");
ВходящиеДанные.Товары = КоллекцияОбъектов ;
В ПКС на группе Товары ставишь получать из входящих все подчиненные ПКС товарам отключаешь

Таким образом ты уже не этапе выгрузки передаешь набранную таблицу и разбитую на столько строк как тебе надо в Приемник, а приемник все принимает как родное.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший