Имя: Пароль:
1C
 
Конвертация данных УТ 10.3 и БП 2.0 Синхронизация номенклатуры
, ,
0 Артур Хвостов
 
11.01.19
13:46
Добрый день.

Нужна ваша помощь в конвертации данных.
Ут 10.3.8.3 - старая, переписанная и БП 2.0.66.59 (практически типовая)
Задача простая... переносить документ и справочники.
Затык в номенклатурой...
В ут есть реквизит, "КодБухгалтерииНМД" - это код номенклатуры в БП и он заполнен в ут не для всей номенклатуры, т. е. при загрузке если "КодБухгалтерииНМД" заполнен нужно искать номенклатуру  по "КодБухгалтерииНМД", если нет по остальным (допустим наименование, ЭтоГруппа, Родитель). Код не выгружается из Торговли, он генерируется в БП свой.

Я много разных вариантов использовал... При перегрузке документов система упорно подставляет мне номенклатуру, которая прилетела из базу Ут, а та которая была в БП НЕ ПОДСТАВЛЯЕТ....
1 Артур Хвостов
 
11.01.19
13:51
Заранее всем спасибо, кто поможет...
2 13_Mult
 
11.01.19
14:00
"Задача простая... " ну так сделай сам )
3 K1RSAN
 
11.01.19
14:01
Ну тут можно сделать так. В ПКО номенклатуры сделать ПКС между кодомНМД и кодом в БК. Если в УТ не заполнено значение - генерировать код при загрузке в БП.

Другой вопрос, а стоит ли? Неужели эта номенклатура в УТ и БП настолько отличается между собой, что только по этому полю их можно соотнести? Я видел немного другую схему, только для документов. Там в УТ генерировался номер документа и с ним выгружался в БП. Но я бы попробовал сначала соотнести номенклатуру по какому-нибудь полю, по артикулу или еще чему?
4 Артур Хвостов
 
11.01.19
14:02
(2) Если не чего не говори... мне реально нужна помощь... а не твой тут выебон...
5 Ёпрст
 
11.01.19
14:07
(0)
поставь галку в свойствах ПКО  - "продолжить по полям поиска бла бла бла..."
В Поля Поиска напиши


Если НомерВариантаПоиска = 1 тогда
   СтрокаИменСвойствПоиска = "КодБухгалтерииНМД,ЭтоГруппа";  
   Иначе
    СтрокаИменСвойствПоиска = "Код, ЭтоГруппа,Родитель";//ну или какие ты там реквизиты воткнул с галкой поиск
КонецЕсли
6 Артур Хвостов
 
11.01.19
14:07
(3) я передаю его в параметр
https://cloud.mail.ru/public/Ga6y/WDzjYgJGV
7 azt-yur
 
11.01.19
14:11
(6) Передавай не в параметр, а в Код и сделай как в (5)
8 Артур Хвостов
 
11.01.19
14:11
(5) Если ПараметрыОбъекта <> Неопределено тогда
    Если ЗначениеЗаполнено(ПараметрыОбъекта["КодБухгалтерииНМД"]) тогда
                СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду(ПараметрыОбъекта["КодБухгалтерииНМД"]);

        
Иначе
    Если НастройкаПоиска = "КодЭтоГруппа" Тогда
        СтрокаИменСвойствПоиска = "Код, ЭтоГруппа";
    ИначеЕсли НастройкаПоиска = "НаименованиеЭтоГруппа" Тогда
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, Родитель, ЭтоГруппа";
    КонецЕсли;
КонецЕсли;


Но это НЕ РАБОТАЕТ...
9 Артур Хвостов
 
11.01.19
14:12
(8) Это я писал в "поля поиска" в Номенклатуре
10 Артур Хвостов
 
11.01.19
14:14
(7) КодБухгалтерииНМД это реквизит в торговле , его нет в БП
11 Ёпрст
 
11.01.19
14:27
(10)
ну тогда так:
в ПКС "Код"  пиши в Перед Выгрузкой

Если ЗначениеЗаполнено(Источник.КодБухгалтерииНМД) Тогда
  Значение = Источник.КодБухгалтерииНМД;
КонецЕсли;

в Поля Поиска так:

Если НомерВариантаПоиска = 1 тогда
   СтрокаИменСвойствПоиска = "Код,ЭтоГруппа,Родитель";  
   Иначе
     СтрокаИменСвойствПоиска = "ЭтоГруппа,Родитель,Наименование ..."//ну или какие ты там реквизиты воткнул с галкой поиск

КонецЕсли
12 13_Mult
 
11.01.19
14:28
(8) Скрин ПКС покажи.
13 Артур Хвостов
 
11.01.19
14:31
14 Ёпрст
 
11.01.19
14:35
(13) поставь галку поиска на Код, дальше как в (11) усё
15 13_Mult
 
11.01.19
14:38
У тебя в соответствии КодБухгалтерииНМД нет галки Поиск и добавь его в первый вариант поиска.
Всё условия в ПКО ПоляПоиска нужна галка в ПКС.
Или см (14)
16 Артур Хвостов
 
11.01.19
14:45
17 13_Mult
 
11.01.19
14:45
(15) + см (7)
18 13_Mult
 
11.01.19
14:47
(16) Типа того.
19 Артур Хвостов
 
11.01.19
14:49
(17) а вот на счет этого не понял... Я правильно понимаю что (16) = (15)+см (7)?
20 Ёпрст
 
11.01.19
14:49
(16) можешь и так слепить
21 13_Mult
 
11.01.19
14:51
(19) да
22 Артур Хвостов
 
11.01.19
14:51
(21) Спасибо.
23 13_Mult
 
11.01.19
14:52
(19) Ещё проверь Натройки у ПКО стоит ли галка Продолжить поиск по полям...бла бла бла
24 13_Mult
 
11.01.19
14:54
(23) + Галка Авто генерации номера если не задан
25 Артур Хвостов
 
11.01.19
14:56
Еще вопрос по переносу Номенклатуры...
У меня в торговле 38942 позиций товара... в БП 14453.
При первой выгрузке - загрузке:
выгружено 38942, загружено: 38942.
А запросом в БП делаю выборку там не 14453+38942, примерно на 100 позиций меньше... Это у меня получается происходит сопоставление? КАк мне добиться что было 14453+38942 в БП...
26 Артур Хвостов
 
11.01.19
14:56
(24) Это сделано
27 Ёпрст
 
11.01.19
15:23
(25) у тебя идет в начале поиск по внутреннему идентификатору, если не найден  - по полям поиска. Возможно, что-то нашлось по внутреннему гуиду номенклатуры (или вы ее раньше грузили).
28 Артур Хвостов
 
11.01.19
22:21
(14) Проверил.... не получается... система упорно подставляет номенклатуру, которая прилетела из Ут...
29 hhhh
 
11.01.19
22:24
(28) ну сними галку "поиск по внутреннему идентификатору"
30 Артур Хвостов
 
11.01.19
22:47
(29) Это я сделал самым первым и все равно подсталяется не та номенклатура...
https://cloud.mail.ru/public/CgBV/Ccj9nJCP9
31 Артур Хвостов
 
11.01.19
22:52
(29) При загрузке документа, когда доходит очередь до номенклатуры, он даже в обработчик поля поиска игнорирует... не понимаю почему...
обработчик поля поиска
Если НомерВариантаПоиска = 1 тогда
    //СтрокаИменСвойствПоиска = "Код";
    Сообщить("Номер варинта" + НомерВариантаПоиска);
    СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду(СвойстваПоиска["Код"]);
    Сообщить(СсылкаНаОбъект.Наименование);
Иначе
    Сообщить("Иначе номер варинтра" + НомерВариантаПоиска);
    СтрокаИменСвойствПоиска = "Наименование, Родитель, ЭтоГруппа";
КонецЕсли;
32 Артур Хвостов
 
11.01.19
23:32
вроде разобрался...
Нужно просто было поставить в ПКО Номенклатура вкладка "Настройка" секция "Выгрузка данных" галочку "не запоминать выгруженные объекты" и вроде все работает... буду тестировать...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой