Посмотрел все обработки для загрузки номенклатуры. Ни одна не подошла, поэтому пришлось использовать старую добрую загрузку из табличного документа. Рассказываю, как это сделал и делюсь настройками.
Готовые обработки переноса были слишком простыми и не совсем заточены под Бухгалтерию и Розницу, большинство было под УТ11. К тому же, мне нужно было перенести папку, полное наименование и страну.
Вот эта https://infostart.ru/public/256317 не могла грузить полное наименование и страну.
Смотрел еще https://infostart.ru/public/96398, https://infostart.ru/public/424406.
Были еще платные решения, но на них у меня не было денег.
Поэтому пошел своим путем.
Выгрузку номенклатуры делал через Refprint, слегка допиленный, скачал с Инфостарта.
Получил номенклатуру в плоском табличном виде с наименованиями групп:
Данные в Excel перенес через буфер обмена, на больших обменах сохранение в Excel умирает. Теперь нужно было загрузить это добро в БП3.
Для работы с типовой обработкой по загрузке из табличного документа нужно было запустить 1С в режиме обычного приложения, для этого я прописал параметр запуска 1С RunModeOrdinaryApplication.
В запущенной в режиме обычного приложения 1С открыл обработку и через буфер обмена скопировал таблицу из Excel в 1С:
Выбрал загрузку в справочник «Номенклатура».
На странице настроек указал ручной порядок нумерации колонок и сделал настройку соответствий:
Код по кнопке «События» указал такой (нумерация колонок в коде соответствует нумерации колонок в таблице):
Сообщить("Объект:
" + Объект);
ИскЗн = ТекстыЯчеек[11];
Если ИскЗн <> "" Тогда
Иск = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ИскЗн, истина);
Если Не ЗначениеЗаполнено(Иск) Тогда
ИскО = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
ИскО.Наименование = ИскЗн;
ИскО.ОбменДанными.Загрузка = истина;
ИскО.Записать();
Иск = ИскО.Ссылка;
КонецЕсли;
Объект.ЕдиницаИзмерения = Иск;
КонецЕсли;
Сообщить(" Единица: " + Объект.ЕдиницаИзмерения + ":" + ИскЗн);
ИскЗн = ТекстыЯчеек[5];
Если ИскЗн <> "" Тогда
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
Если Не ЗначениеЗаполнено(Иск) Тогда
ИскО = Справочники.Номенклатура.СоздатьГруппу();
ИскО.Наименование = ИскЗн;
ИскО.Записать();
Иск = ИскО.Ссылка;
КонецЕсли;
Объект.Родитель = Иск;
КонецЕсли;
Сообщить(" Родитель: " + Объект.Родитель + ":" + ИскЗн);
ИскЗн = ТекстыЯчеек[25];
Если ИскЗн <> "" Тогда
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
Если Не ЗначениеЗаполнено(Иск) Тогда
ИскО = Справочники.СтраныМира.СоздатьЭлемент();
ИскО.Наименование = ИскЗн;
ИскО.ОбменДанными.Загрузка = истина;
ИскО.Записать();
Иск = ИскО.Ссылка;
КонецЕсли;
Объект.СтранаПроисхождения = Иск;
КонецЕсли;
Сообщить(" Страна происхождения: " + Объект.СтранаПроисхождения + ":" + ИскЗн);
После этого запустил загрузку и всё загрузилось по папочкам, с единицами по количеству в упаковке и со странами мира. Примерно 3 000 позиций в данном конкретном случае.
Внезапно этот же клиент, игнорируя мои увещевания по настройке обмена, попросил загрузить эту же номенклатуру и в розницу.
Пришлось повторить тот же трюк и в рознице, только без единиц.
Настройка колонок для Розницы:
Код по загрузке аналогичный БП 3.0, только без единиц:
ИскЗн = ТекстыЯчеек[5];
Если ИскЗн <> "" Тогда
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
Если Не ЗначениеЗаполнено(Иск) Тогда
ИскО = Справочники.Номенклатура.СоздатьГруппу();
ИскО.Наименование = ИскЗн;
ИскО.Записать();
Иск = ИскО.Ссылка;
КонецЕсли;
Объект.Родитель = Иск;
КонецЕсли;
Сообщить(" Родитель: " + Объект.Родитель + ":" + ИскЗн);
ИскЗн = ТекстыЯчеек[25];
Если ИскЗн <> "" Тогда
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
Если Не ЗначениеЗаполнено(Иск) Тогда
ИскО = Справочники.СтраныМира.СоздатьЭлемент();
ИскО.Наименование = ИскЗн;
ИскО.ОбменДанными.Загрузка = истина;
ИскО.Записать();
Иск = ИскО.Ссылка;
КонецЕсли;
Объект.СтранаПроисхождения = Иск;
КонецЕсли;
Сообщить(" Страна происхождения: " + Объект.СтранаПроисхождения + ":" + ИскЗн);
К статье прикладываю файлы настроек для загрузки из табличного документа для БП3 и Розницы.