Для переноса справочника из УТ10.3 в существующую базу «Торговое предприятие 5», где уже заведены товары и ШК могут пересекаться, нужно:
— Открыть обработку «Загрузка данных их табличного документа» («Сервис» → «Загрузка данных их табличного документа»).
— Вставить код в событие «Перед записью» обработки «Загрузка данных из табличного документа» (вкладка «Настройка» → «События» → «Перед записью объекта») ниже приведенный код.
Примечание. Данный код подходит для этого табличного документа. Для документов другого состава может потребоваться изменить код.
Отказ = ЛОЖЬ;
ШтрихКодТовара = СокрЛП(ТекстыЯчеек[7]);
Если ШтрихКодТовара <> "" Тогда
НайденныйШК = Справочники.ШтрихКоды.НайтиПоНаименованию(ШтрихКодТовара);
Если НЕ НайденныйШК.Пустая() Тогда
// ШК товара в базе нашелся, значит товар создавать не надо
Отказ = ИСТИНА;
Сообщить("ШК НАЙДЕН");
Иначе
Объект.Наименование = СокрЛП(ТекстыЯчеек[4]);
БазоваяЕдиницаТовары = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(СокрЛП(ТекстыЯчеек[10]));
Если БазоваяЕдиницаТовары.Пустая() Тогда
//Единицу по наименованию не нашли, подставим штуку
БазоваяЕдиницаТовары = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
КонецЕсли;
Объект.БазоваяЕдиницаПоКлассификатору = БазоваяЕдиницаТовары;
Объект.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар;
Объект.Записать();
СпрНомСсылка = Объект.Ссылка;
СпрШКОбъект = Справочники.ШтрихКоды.СоздатьЭлемент();
СпрШКОбъект.Владелец = СпрНомСсылка;
СпрШКОбъект.Единица = СпрНомСсылка.БазоваяЕдиница;
СпрШКОбъект.Наименование = ШтрихКодТовара;
СпрШКОбъект.Записать();
Объект.ОсновнойШтрихКод = СпрШКОбъект.Ссылка;
Объект.Записать();
КонецЕсли;
Иначе
Отказ = ИСТИНА;
КонецЕсли;