Имя: Пароль:
1C
1С v8
Конвертация данных
0 first_may
 
07.06.15
20:09
Добрый вечер.

Переношу данные из Бухгалтерский учет, редакция 4.5 в Комплексная автоматизация, редакция 1.1. Речь идет о справочнике Номенклатура. В событии "После загрузки" пишу:

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

    ЗаписатьОбъектВИБ(НайденнаяЕдиницаОбъект, Тип("СправочникСсылка.ЕдиницыИзмерения"));
    

    Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаХраненияОстатков;
    Объект.Комментарий = "Перенесено из 7.7";
КонецЕсли;

но когда выполняю, то вижу в справочнике ЕдиницыИзмерения появляются записи без заполненного реквизита Владелец. Как решить эту проблему?
1 angro
 
07.06.15
20:12
объект.ссылка
2 Naumov
 
07.06.15
20:13
и записать объект возможно не помешает.
3 first_may
 
07.06.15
20:15
(1) Пробовал, результат тот же.
(2) записать объект - имеется ввиду Номенклатуру? Или ...?
4 ДенисЧ
 
07.06.15
20:23
Объект.Ссылка как минимум
5 first_may
 
07.06.15
20:49
(4) поменял
НайденнаяЕдиницаОбъект.Владелец = Объект.Ссылка;

перегрузил - результат тот же - владелец пустой.
6 Otkr
 
07.06.15
20:52
(5) В послезагрузки элемент справочника номенклатуры еще не записан, поэтому ссылки нет
7 first_may
 
07.06.15
20:53
(6) вот - я согласен.

Как сделать, что бы правильно перенеслись единицы измерения?
8 Otkr
 
07.06.15
20:55
(7) Первой строчкой кода в ПослеЗагрузки записать элемент номенклатуры, это же очевидно
9 first_may
 
07.06.15
20:59
(8) вот так
ЗаписатьОбъектВИБ(Объект, Тип("СправочникСсылка.Номенклатура"));

так как это в справочнике Номенклатура. В событии "После загрузки". Да?
10 Otkr
 
07.06.15
20:59
(9) Можно проще Объект.Записать()
11 RomanYS
 
07.06.15
21:00
(0) возьми типовые, справочники там более-менее нормально сделаны
12 first_may
 
07.06.15
21:17
(10) спасибо, вот рабочий вариант:

Если Не Объект.ЭтоГруппа Тогда
    ЗаписатьОбъектВИБ(Объект, Тип("СправочникСсылка.Номенклатура"));
    
    НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    НайденнаяЕдиницаОбъект.Владелец                = Объект.Ссылка;
    НайденнаяЕдиницаОбъект.Наименование            = СокрЛП(Объект.БазоваяЕдиницаИзмерения);
    НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = Объект.БазоваяЕдиницаИзмерения;
    НайденнаяЕдиницаОбъект.Коэффициент             = 1;
    НайденнаяЕдиницаОбъект.УстановитьНовыйКод();
    
    ЗаписатьОбъектВИБ(НайденнаяЕдиницаОбъект, Тип("СправочникСсылка.ЕдиницыИзмерения"));
    
    Объект.ЕдиницаХраненияОстатков = НайденнаяЕдиницаОбъект.Ссылка;
    Объект.ЕдиницаДляОтчетов = НайденнаяЕдиницаОбъект.Ссылка;
    
    Объект.Комментарий = "Перенесено из 7.7";
КонецЕсли;
13 Funeral_Worm
 
07.06.15
22:22
(12) Да не совсем

Если элемент номенклатуры будет переносится еще раз, то создастся дубль единицы измерения
14 Naumov
 
07.06.15
22:27
(13) А разве не это являлось целью автора?