Имя: Пароль:
1C
1С v8
Конвертация данных. Вопрос по справочнику номенклатура.
0 AlexKulikov
 
05.12.16
13:50
Добрый день, уважаемые форумчане.
Столкнулся со следующей проблемой, а именно ошибка переноса элементов справочника из одной базы в другую.
Ошибка такого рода:

"У единицы хранения остатков номенклатуры "" неверно указан владелец!"
"У единицы для отчетов номенклатуры "" неверно указан владелец!"

Скриншот ошибки прилагаю: http://saveimg.ru/show-image.php?id=cdefe3d13490dfa1017d50d524f75b96

Однако, выбранный элемент загружается в базу и у него заполняются эти поля, как показано на скриншоте ниже.
http://saveimg.ru/show-image.php?id=6c953701c424ac44e60d14dd847a9bc2

Собственно вопрос, как данную проблему побороть?
Единственное решение, которое я нашел это в ПКО для справочника Номенклатура, "После загрузки" к уже созданному коду добавить следующие строки:
<code>
мВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");

Если Объект.ЭтоГруппа = Ложь Тогда
    Объект.ВидНоменклатуры = мВидНоменклатуры;
    Объект.ЕдиницаХраненияОстатков = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(Объект.БазоваяЕдиницаИзмерения.Наименование,,,Объект);
    Объект.ЕдиницаДляОтчетов = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(Объект.БазоваяЕдиницаИзмерения.Наименование,,,Объект);

КонецЕсли;

Объект.Записать();    
</code>

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

Очень надеюсь на Вашу помощь, с уважением Алексей.
1 Альбатрос
 
05.12.16
13:54
Для начала нужно указать конфигурации приемника/источника.
2 vicof
 
05.12.16
13:58
(0) Никак, ситуация сотню раз обсуждалась.
Перед выгрузкой номенклатуры выгружать единицу измерения, или наоборот.
ВыгрузитьПоПравилу()
3 AlexKulikov
 
05.12.16
14:06
"Управление торговлей", редакция 10.1 (8.10.1.6)- источник;
"Управление торговлей", редакция 10.3 (10.3.29.1) - приемник;

То есть получается, мне сначала нужно из источника весь справочник "Единицы измерения" загрузить, а уже потом начинать грузить "Номенклатура" и документы?
4 AlexKulikov
 
05.12.16
14:11
Нет, таким макаром много лишнего загружается, вся суть конвертации теряется. Буду думать дальше, спасибо за советы.
5 LEOON
 
05.12.16
14:15
(3) Нет, в реквизите Номенклатуры, Единица хранения остатков, указывается правило, по которому выгружать. Вероятнее всего, сейчас он ищет просто по коду(или наименованию) и т.к. справочник подчиненный находит не верный элемент(не с тем родителем). Создать нужно правило выгрузки для единиц измерения и указать его для реквизита номенклатуры(то же правило будет работать и для единиц отчетов).
6 azt-yur
 
05.12.16
14:24
вечно гемор с этими ед.измерения, особенно если типовые правила использовать. У тебя скорей всего не правильно поля поиска в ПКО ед.изм. указаны - не включен поиск по владельцу.
Я обычно в обработчике после загрузки номенклатуры вставляю код модуля формы номенклатуры ПриЗаписи где происходит создание единиц если они не заполнены
7 AlexKulikov
 
05.12.16
14:40
Да в том то и дело, что у меня для единиц измерения, указано правило "ЕденицыИзмерения", которые ищут по коду и по владельцу. Приемник - пустая база.

Вроде все правильно, а происходит эта хрень:

Правило "ЕдиницыИзмерения" скрин:
http://saveimg.ru/show-image.php?id=4c487ce5a533337d269e443169918c8d

Правило "Номеклатура", единицы хранения:
http://saveimg.ru/show-image.php?id=eec4846a8701148480d3feecc57aed84
8 AlexKulikov
 
05.12.16
14:41
(6) В принципе сделал так же, но хочется понять для себя, а почему через правило не грузит.
9 AlexKulikov
 
07.12.16
17:09
Если кому будет нужно, то выгрузил по правилу без ошибок. Указал для подчиненного справочника "ЕденицыИзмерения" на закладке Настройки поставил галку "Не запоминать выгруженные объекты".
Насколько я понял, это действует на все подчиненные справочники.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший