Имя: Пароль:
1C
1С v8
Вопрос к гуру конвертации 2, выгрузка из УТ 10 в БП 3.0
,
0 Melcor
 
09.02.21
11:05
Доброго дня, КД 2.1, выгрузка из УТ 10 в БП 3.0
Понадобилось мне выгружать из самописного регистра сведений коды маркировок в БП, через уже написанные правила.
Но вот беда в файле обмена, там где ТЧ "ШтрихкодыУпаковок" пустота:

<ТабличнаяЧасть Имя="ШтрихкодыУпаковок">
    <Запись><Свойство Имя="ШтрихкодУпаковки" Тип="СправочникСсылка.ШтрихкодыУпаковокТоваров"><Ссылка/>
</Свойство>
    </Запись>
    <Запись><Свойство Имя="ШтрихкодУпаковки" Тип="СправочникСсылка.ШтрихкодыУпаковокТоваров"><Ссылка/>
</Свойство>
    </Запись>
    <Запись><Свойство Имя="ШтрихкодУпаковки" Тип="СправочникСсылка.ШтрихкодыУпаковокТоваров"><Ссылка/>
</Свойство>
    </Запись>
</ТабличнаяЧасть>

но в сам справочник коды маркировок записываюстся:

<Объект Нпп="16" Тип="СправочникСсылка.ШтрихкодыУпаковокТоваров" ИмяПравила="ШтрихкодыУпаковокТоваров"><Ссылка/><Свойство Имя="ЗначениеШтрихкода" Тип="Строка">
    <Значение>010987000970577821_JSNmmVOYbo&lt;</Значение>
</Свойство><Свойство Имя="Номенклатура" Тип="СправочникСсылка.Номенклатура"><Ссылка Нпп="6"><Свойство Имя="Артикул" Тип="Строка">
    <Значение>M33299</Значение>
</Свойство><Свойство Имя="Наименование" Тип="Строка">
    <Значение>Текстиль женский Куртка M33299 Хаки 48</Значение>
</Свойство>
</Ссылка>
</Свойство>
</Объект>

Подскажите почему так происходит
1 Melcor
 
09.02.21
11:07
В правилах обмена табличной части документа в ПКС "ШтрихкодУпаковки" я Значение указываю Сам код маркировки, может из-за этого, просто у этого справочника нет ни кода ни наименования, как тогда Значение передавать не понятно
2 polosov
 
09.02.21
11:08
(1) Так это правила надо смотреть. Трудно по фотографии такое лечить.
3 Melcor
 
09.02.21
11:15
4 VladZ
 
09.02.21
11:17
(3) Фигасе.
Ты бы лучше скрин правил в конфигурации КД сделал для ТЧ "ШтрихкодыУпаковок".
5 fisher
 
09.02.21
11:17
(1) > в ПКС "ШтрихкодУпаковки" я Значение указываю Сам код маркировки
Тогда и ПКО у тебя должно быть заточено на Источник-строку.
6 Melcor
 
09.02.21
11:17
ПКО (ПеремещениеВРеализацию) - ПКГС (ШтриходыУпаковок) - ПКС (ШтрихкодУпаковки)
7 Melcor
 
09.02.21
11:18
(4) Там не просто всё, куча кода в ПКГС и ПКС
8 Melcor
 
09.02.21
11:19
НА скрине не разглядишь
9 Melcor
 
09.02.21
11:20
(5) Источник везде пустой, я его через запрос получаю
10 Melcor
 
09.02.21
11:28
Судя потому, что в подобных случаях всё прекрасно отрабатывает, я таки грешу на Значение
11 fisher
 
09.02.21
11:30
(9) Какая разница. Суть в том, что при отработке этого ПКО источником будет строка.
А в нем у тебя будет два ПКС: "ЗначениеШтрихода" и "Номенклатура".
Вот в "ЗначениеШтрихкода" в ПередВыгрузкой можно будет прописать Значение = Источник и поставить по этому ПКС галку поиска. А "Номенклатуру" передавать через входящие данные.
Но проще будет на вход подавать не штрихкод, а строку коллекции и структуру, в которой будут сразу и штрихкод и номенклатура.
12 fisher
 
09.02.21
11:30
"а строку коллекции ИЛИ структуру"
13 Melcor
 
09.02.21
11:33
В ПКГС я получаю, а потом передаю такую коллекцию:
|ВЫБРАТЬ
|    ВТ_Осн.ХарактеристикаНоменклатуры,
|    ВТ_Осн.ИностранныйРазмер КАК Размер,
|    ВТ_Осн.СерийныйНомер,
|    ВТ_Осн.ХарактеристикаНоменклатуры.Владелец.Родитель.Наименование КАК Родитель,
|    ВТ_Осн.ХарактеристикаНоменклатуры.Владелец.Наименование КАК Номенклатура,
|    ВложенныйЗапрос.Артикул.Наименование КАК Артикул,
|    ВложенныйЗапрос1.Лэйба.Наименование КАК Лэйба,
|    ВложенныйЗапрос2.Цвет.Наименование КАК Цвет,
|    Модели.Моделька,
|    ГТДмодель.МодельФакт,
|    ГТДмодель.НаименованиеФакт,
|    ГТДмодель.НаименованиеГТД,
|    GTINтаб.НоменклатураГОСТ,
|    СоответствиеSKU_EAN.EAN КАК СоответствиеEAN,
|    GTIN_EAN.GTIN КАК EAN,
|    ДМКтаб.ДМК
|ИЗ
|    ВТ_Осн КАК ВТ_Осн

а в ПКС уже формирую вот так:

    Если сокрлп(строка(ОбъектКоллекции.МодельФакт)) = "" тогда
        НовМодель = сокрлп(строка(ОбъектКоллекции.Моделька));
    иначе
        НовМодель = сокрлп(строка(ОбъектКоллекции.МодельФакт));
    КонецЕсли;
    
    
    Если сокрлп(строка(ОбъектКоллекции.Размер)) = "<>" тогда
        Размерчик = "";
    иначе
        Размерчик = сокрлп(строка(ОбъектКоллекции.Размер));
    КонецЕсли;
    
    Если сокрлп(строка(ОбъектКоллекции.НоменклатураГОСТ)) = "" тогда
        сообщить("ВНИМАНИЕ! Отсутствует номенклатура GTIN! Сообщите в оптовый отдел! Харка: "+строка(ОбъектКоллекции.ХарактеристикаНоменклатуры));
        Если сокрлп(строка(ОбъектКоллекции.НаименованиеФакт)) = "" тогда
            Если сокрлп(строка(ОбъектКоллекции.НаименованиеГТД)) = "" тогда
                НоменклатураНов = сокрлп(строка(ОбъектКоллекции.Номенклатура));
            иначе
                НоменклатураНов = сокрлп(строка(ОбъектКоллекции.НаименованиеГТД));
            КонецЕсли;
            
        иначе
            НоменклатураНов = сокрлп(строка(ОбъектКоллекции.НаименованиеФакт));
        КонецЕсли;
        
    иначе
        НоменклатураНов = сокрлп(строка(ОбъектКоллекции.НоменклатураГОСТ));
    КонецЕсли;
    
    Если сокрлп(строка(Источник.Ссылка.КонтрагентПолучатель.Код)) = "ГЛ-00000019" тогда //
        Наименование = сокрлп(строка(ОбъектКоллекции.Родитель))
        + " " + сокрлп(строка(НоменклатураНов))
        + " " + сокрлп(строка(НовМодель))
        + " " + сокрлп(строка(ОбъектКоллекции.Лэйба))
        + " " + сокрлп(строка(ОбъектКоллекции.Цвет))
        + " " + Размерчик
        + " " + сокрлп(строка(НовМодель))
        + "/" + сокрлп(строка(ОбъектКоллекции.Цвет))
        + "/" + Размерчик;
    иначеЕсли сокрлп(строка(Источник.Ссылка.КонтрагентПолучатель.Код)) = "ГЛ-00000012" тогда //
        Наименование = сокрлп(строка(ОбъектКоллекции.Родитель))
        + " " + сокрлп(строка(НоменклатураНов))
        + " " + сокрлп(строка(НовМодель))
        + " " + сокрлп(строка(ОбъектКоллекции.Лэйба))
        + " " + сокрлп(строка(ОбъектКоллекции.Цвет));
        
    иначе
        Наименование = сокрлп(строка(ОбъектКоллекции.Родитель))
        + " " + сокрлп(строка(НоменклатураНов))
        + " " + сокрлп(строка(НовМодель))
        + " " + сокрлп(строка(ОбъектКоллекции.Лэйба))
        + " " + сокрлп(строка(ОбъектКоллекции.Цвет))
        + " " + Размерчик;
    КонецЕсли;
    ДМК = лев(ОбъектКоллекции.ДМК,31);
    Значение = ДМК;
    ДанныеДляПередачи = Новый Структура();

       

    ДанныеДляПередачи.Вставить("ЗначениеШтрихкода", ДМК);
    ДанныеДляПередачи.Вставить("Номенклатура", Наименование);

    ИсходящиеДанные = ДанныеДляПередачи;
14 Melcor
 
09.02.21
11:34
У ПКС есть правила обмена: ШтрихкодыУпаковокТоваров                          
где два ПКС Штрикход и Номенклатура
15 fisher
 
09.02.21
12:05
Оригинально ты номенклатуру конвертируешь. Но это твои проблемы.
Но если источником ты генеришь корректную структуру, тогда я не понимаю, где у тебя проблема.
Может, стандартная проблема с отсутствием определения "КлючВыгружаемыхДанных" (по которому дедуплицируются данные выгрузки). Ее еще криво решают установкой признака "Не запоминать выгружаемые данные".
ЗЫ. "Лэйба" улыбнула
16 Pro-tone
 
09.02.21
12:48
(15) я тоже подумал про "Не запоминать выгружаемые данные", но тогда хотя бы номер нпп= должен был стоять, обычно тогда не пусто будет, а ссылка одинаковая во всех записях
17 Melcor
 
09.02.21
13:06
(15) с номенклатурой меня заставили)
Вот и сам в шоке, именно на этой ТЧ затык(
18 Melcor
 
09.02.21
14:42
В ПКО Справочника обязательно надо указать галочку поиск, я добавил поиск по обоим двум реквизитам, после этого в документ всё встало.