Создание единицы измерения при конвертации данных #785263


#0 by ДедUndead
Коллеги, добрый день. Подскажите, как сделать лучше следующее. КД 2.1.8 Переношу данные в УТ 11.2. В источнике на номенклатуре нет единиц измерения. При переносе элемента номенклатуры в ПКО в обработчике ПослеЗагрузки создаю новый элемент справочника УпаковкиЕдиницыИзмерения. Но есть одно но - элемент номенклатуры - владелец единицы измерения в этот момент еще не записан, поэтому запись единицы измерения падает с ошибкой - не установлено поле Номенклатура. Как лучше создать и записать элемент подчиненного справочника при переносе номенклатуры?
#1 by Timon1405
а типовые правила это момент не рассматривают?
#2 by ДедUndead
Исходная - самописанный шлак.
#3 by DailyLookingOnASunse
В самописном шлаке в модуле объектов в обработчике ПриЗаписи нужно поставить Если ОбменДанными.Загрузка Тогда    Возврат; КонецЕсли;
#4 by ДедUndead
Оттуда данные читаются, пишутся в УТ 11.2. При переносе номенклатуры надо создать единицу измерения - подчиненный номенклатуре справочник.
#5 by takefive
ПКО без источника слабо нарисовать?
#6 by ДедUndead
Конечно, я могу это сделать в обработчике в конечной базе. Вопрос - как это сделать при конвертации?
#7 by ДедUndead
Была такая мысль, не додумал, видимо.
#8 by takefive
хотя бы поля поиска... Остальное можно заполнить после загрузки
#9 by ДедUndead
А подробнее можно? Как искать в Упаковках?
#10 by Йохохо
одноразовый перенос или обмен?
#11 by ДедUndead
Одноразовый
#12 by takefive
получить из входящих.В ПКС собираешь в структуру исходящих, в пко только флажки поставить
#13 by DailyLookingOnASunse
Да как костыль, в обработчике ПослеЗагрузки объект номенклатуры можно и записать.
#14 by ДедUndead
Вот вариант - В ПКС Упаковок я указываю, что получаю свойство владелец из входящих данных. При выгрузке номенклатуры их источника в обработчике послевыгрузки создаю исходящие данные и выгружаю по правилу. при загрузке упаковок проверяю, есть ли запись с таким владельцем, заполняю реквизиты. Вроде все.
#15 by ДедUndead
пробовал, ошибки при записи, не хочется так делать.
#16 by takefive
Нет... В ПКО Единицы измерения
#17 by DailyLookingOnASunse
"загрузке упаковок проверяю, есть ли запись с таким владельцем, заполняю реквизиты." - вот это непонятно. А так всегда хватает ПКО, которое вызывается через ВыгрузитьПоПравилу и в которое передаются входящие данные. Даже если владелец еще не записан, ссылка на него есть либо в виде ГУИДа, либо будет создана по полям поиска.
#18 by takefive
В ПКС ЕдиницаИзмеренияОстатков ты формируешь исходящую структуру для ПКО ЕдиницыИзмерения
#19 by ДедUndead
В исходной нет единиц измерения. я что-то не понимаю, видимо.
#20 by ДедUndead
Я не понимаю, как искать в справочнике УпаковкиЕдиницыИзмерения, по каким полям исходной базы?
#21 by takefive
как костыль После загрузки Номенклатура пиши Объект.Записать; Создаешь единицы где владелец Объект.Ссылка Присваиваешь полям объекта единицы и еще раз Объект.Записать;
#22 by h-sp
поле Владелец.
#23 by ДедUndead
Да, делал так уже. Ошибки при записи номенклатуры, хочется написать чистые правила.
#24 by h-sp
ПолучитьСсылкуНового делай тогда
#25 by ДедUndead
Делал. Не работает.
#26 by ДедUndead
Ссылку по GUID, устанавливал - ошибка та же при записи.
#27 by takefive
Ты сделал ПКО для единиц измерения?
#28 by ДедUndead
Нет единиц измерения в источнике. В том-то и дело.
#29 by ДедUndead
Там нет штук, килограммов, метров и т.д.
#30 by ДедUndead
Нет такого справочника.
#31 by takefive
без источника
#32 by takefive
приемник же есть
#33 by takefive
поля источник ПУСТЫЕ в ПКО и его ПКС
#34 by takefive
Как минимум должно быть ПКС Владелец
#35 by gorakh
1) Использовать обработчик "после загузки"
#36 by ДедUndead
Сделал так. ПКС Владелец, из входящих данных. Поля пусты.е
#37 by ДедUndead
Пробую собрать все.
#38 by takefive
Укажи поля поиска - флажки
#39 by ДедUndead
В ПКС Владелец?
#40 by takefive
да. Искать в приемнике нужно по владельцу
#41 by ДедUndead
Да, сделал. Пытаюсь все запустить...
#42 by takefive
В пко есть кнопка, которая тебе создаст код структуры входящих. Его вставь в ПКС ед. ПКО номенклатуры
#43 by takefive
и напиши заполнение этой структуры
#44 by ДедUndead
не увидел. Что-то совсем затупил - если у ПКО нет источника, соответственно, я не могу создать ПВО. И, соответственно, не смогу выполнить обработчик ПослеЗагрузки и заполнить новую упаковкуединицуизмерения...
#45 by takefive
ПВО тебе не нужен. Ты же выгружаешь Номенклатуру а не ед...
#46 by ДедUndead
Да, но как мне тогда заполнить поля новой подчиненной единицы измерения?...  Ведь в исходной такого справочника нет.
#47 by takefive
Для номенклатуры создай ПКС без источника. Приемник Единица
#48 by takefive
Укажи правило которое ты только что создал
#49 by ДедUndead
а, не надо создавать пко без источника. Только ПКС для номенклатуры без источника...
#50 by ДедUndead
Создал ПКС, источник пустой, приемник Номенклатура.ЕдиницаИзмерения. дальше что?
#51 by ДедUndead
У меня почти 12 ночи, уже все, видимо..
#52 by takefive
Перед выгрузкой Сформируй структуру исходящих для твоего правила
#53 by takefive
ого... Да это все вро де бы. т.е. ты передаешь В ПКО без источника данные. Удачи
#54 by ДедUndead
а где там эта кнопка?..
#55 by ДедUndead
В ПКО для Номенклатуры?
#56 by Михаил Козлов
Делал так (в ПослеЗагрузки в справочнике Номенклатура):
#57 by takefive
на последней закладке. Закладка есть только когда есть флаг получить из входящих. В ПКО для Единицы
#58 by ДедUndead
Про закладку пока смутно, видимо, завтра продолжу. Не понял, завтра все соберу. Всем спасибо, за код, за советы.
#59 by ДедUndead
Первый раз работаю  с КД.
#60 by ДедUndead
Все, дошло про исходящие. Спасибо takefive!!!
#61 by ДедUndead
Завтра напишу про результат.
#62 by ДедUndead
А, нет. Есть поле ЕдиницаИзмерения, которое надо заполнить. В исходящих я не смогу это поле заполнить - нет такого типа в исходной базе.
#63 by takefive
После загрузки заполняй
#64 by patapum
как вариант, если не думать, для одноразовой загрузки. делаешь правило Номенклатура - Номенклатура и правило Номенклатура - Единица. сначала грузишь по первому. когда грузишь по второму - номенклатура уже есть.
#65 by ДедUndead
Да, тоже вариант, хотел сделать за один раз. Не исключено, что эта загрузка может меняться потом и проходить несколько раз. Кто знает.
#66 by ДедUndead
Все получилось, всем спасибо. Сделал ПКО УпаковкиЕдиницыИзмерения с пустым источником и приемником УпаковкиЕдиницыИзмерения. Указал в ПКО ПКС с приемником Владелец и получением из входящих данных. Обработчик ПослеЗагрузки этого ПКО <code> В ПКО Номенклатура указал обработчик ПослеВыгрузки И там же ПослеЗагрузки   <code>
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С