Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных. Загрузка единиц измерения

Конвертация данных. Загрузка единиц измерения
Я
   Slon747
 
02.06.19 - 09:52
Обмен между УТ10 и УТ10.
Т.к. у единиц измерений владелец номенклатура, то сначала в базе-приемнике должен создаться элемент номенклатуры, а потом единица измерений.
Как правильно реализовать обмен?
Пока что в ПослеЗагрузки номенклатуры прописал это:

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

КонецЕсли;

В итоге при первой загрузке единица хранения остатков и отчетов пустые. Заполняются только при повторной загрузке.
 
 
   OnNeOn
 
1 - 02.06.19 - 10:11
Попробуй В ПКО правило выгрузки единиц измерения положить выше номенклатуры.
   Slon747
 
2 - 02.06.19 - 10:37
(1) Не пойму. А как положить выше номенклатуры?
   ДенисЧ
 
3 - 02.06.19 - 10:57
(2) У правила есть поле порядок
   Slon747
 
4 - 02.06.19 - 11:00
(3) Нашел синие стрелки вверх-вниз.
Но ЕдиницыИзмерения у меня выше номенклатуры стоит.

P.S. В настройках ПКО единиц измерений установлена галочка "Искать объект приемника по внутреннему идентификатору"
   hhhh
 
5 - 02.06.19 - 11:18
(4) попробуй тогда ниже номенклатуры
   Slon747
 
6 - 02.06.19 - 13:03
(5) К сожалению, не помогло(
   OnNeOn
 
7 - 02.06.19 - 13:09
(6) Ты через что выгружаешь данные? Через план обмена или обработку Универсальный обмен в формате XML?
   OnNeOn
 
8 - 02.06.19 - 13:12
И я надеюсь ты выгружаешь 1 документ, у тебя на обмене не пачка документов разных типов?
   OnNeOn
 
9 - 02.06.19 - 13:14
И да, проверь что у тебя правильные правила подставляются, у меня бывало, что они кешировались. Напиши какую-нибудь дичь в правилах, и проконтролируй, что бы она выполнилась.
   Slon747
 
10 - 02.06.19 - 13:14
(7) Обмен через УниверсальныйОбменДаннымиXML.epf
(8) Пока что выгружаю только справочники
   OnNeOn
 
11 - 02.06.19 - 13:16
(10) Выгружай 1 запись справочника номенклатуры. Все выгружать тебе не нужно. Выгрузи 1 Запись справочника, загрузи ее и посмотри в ЖР что у тебя с номенклатурой, у меня подозрение, что она перезаписывается несколько раз в течении одной загрузки данных.
   hhhh
 
12 - 02.06.19 - 13:58
(4) запиши объект хотя бы
Объект.Записать();
ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Объект.Ссылка); 

а то, сам понимаешь, что у незаписанного объекта, Объект.Ссылка не существует
   Slon747
 
13 - 02.06.19 - 14:04
(12) Я ранее пробовал Объект.Записать(); в событии ПослеЗагрузки. Но почему-то в момент загрузки ругалась на "Записать".
Потом проверил отладчиком.
Заметил, что ЕдиницаДляОтчетов заполнена верно, а ЕдиницаХранения - пустая.
Убрал весь текст из ПослеЗагрузки и единицы измерения загрузились.
Вероятно, нужно было просто поднять номенклатуру выше единиц измерения и больше ничего не делать.
Всме спасибо.
   Ёпрст
 
14 - 03.06.19 - 09:23
(0) Какой-то х..ней занимаешься. Всё и так работает, штатно. Достаточно иметь 2 ПКО - один ПКО для справочника Единицы измерения и один, для номенклатуры. И о чудо - всё работает и без танцев с бубном и без кода в обработчиках событий.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.