Имя: Пароль:
1C
1С v8
Свернуть табличную часть в конвертации данных
,
0 rt2000
 
21.09.15
10:17
Продолжаю самостоятельное изучение конвертации данных. Поставил себе задачу и немного в тупике.
В базе источника, в документе "поступления", в табличной части "товары" надо переносить не весь товар, а в зависимости от ставки НДС.
Например есть товар Молоко -18%;  Творог -18%; Йогурт -10%
Молоко и творог, должны стать одним товаров в базе приемника, "Товар18", а йогурт должен стать товаром "товар10"

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

Переносится "Сумма", "Цена", "СтавкаНДС"
Не могу понять, как нужно искать номенклатуру?
Реквизит "количество" не переносится, потому что надо заполнять в базе приемника сразу два реквизита "количество" и "КоличествоУпаковок"
1 Andrey2C
 
21.09.15
10:33
КоллекцияОбъектов.Свернуть("СтавкаНДС,Номенклатура", "Сумма, Количество, Цена"); Так не пойдет?
2 Альбатрос
 
21.09.15
10:35
(0) Можешь в ПослеЗагрузки номенклатуру заполнять, отталкиваясь от ставки НДС
3 Andrey2C
 
21.09.15
10:36
А тебе надо чтобы один был. Недочитал:)
4 rt2000
 
21.09.15
10:37
(1) Номенклатуру передавать не надо.
В данном примере из 3-х строк, должно стать две строки
(2) События "ПослеЗагрузки" в ПКГС нет
5 Альбатрос
 
21.09.15
10:37
(4) ессесно нет, зато оно есть у объекта
6 Andrey2C
 
21.09.15
10:39
Бежишь циклом и методом НайтиСтроки ищешь по СтавкеНДС
7 Andrey2C
 
21.09.15
10:41
А что в итоге у тебя будет Молоко + Творог = ?
8 rt2000
 
21.09.15
10:59
Разобрался, кот этот код вставил в события "После загрузки"
Для каждого стр из Объект.Товары цикл
    стр.КоличествоУпаковок = стр.Количество;
    если стр.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 тогда
        стр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("!10");
    ИначеЕсли стр.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 тогда
        стр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("!18");
    КонецЕсли
КонецЦикла;
9 Альбатрос
 
21.09.15
11:00
(8) Классный код товара ))))))
10 MaxS
 
21.09.15
11:02
(8) В цикле искать по коду одно и тоже тысячи раз? Да, уж. ;)
11 GreatOne
 
21.09.15
11:07
Я всегда запросом делаю передвыгрузкой() и помещаю во входящие данные. ПКГС беру из входящих данных.
12 GreatOne
 
21.09.15
11:07
Кстати, ТС, для изучения КД лучше возьми что-нибудь не мифическое. Сделай перенос документов демо баз КА в БП 3.0 к примеру.
13 rt2000
 
21.09.15
11:22
(12) что за база такая КА?
Я делаю перенос из БП 3.0 в УТ 11.0
(11) Не будет для тебя затруднением показать образец?
14 rt2000
 
21.09.15
11:25
Еще можете ответить на один вопрос. Перенес табличную часть, реквизиты стоят нормально. Провожу документ, смотрю движения по регистрам и вижу, что цифры не проставились. Если вручную перевыбрать реквизит, то в движения по регистрам цифры попадут
15 GreatOne
 
21.09.15
11:36
(14) Отладчик в руки. НЕ все видать реквизиты стоят.
http://screenpresso.com/=3xJY
http://screenpresso.com/=dI6od

(13) Комплексная авт. Раз все равно перенос делаешь, то замечательно.
16 GreatOne
 
21.09.15
11:38
(14) настройка списка табличной части кстати, смотри все реквизиты.
AdBlock убивает бесплатный контент. 1Сергей