fixin (fixin) wrote,
fixin
fixin

Загрузка номенклатуры из 77 в БП3 (перегонка)

Мой опыт использования типовой загрузки данных из табличного документа для загрузки номенклатуры в БП 3.0 УФ

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

Анализ готовых решений

Готовые обработки переноса были слишком простыми и не совсем заточены под Бухгалтерию и Розницу, большинство было под УТ11. К тому же, мне нужно было перенести папку, полное наименование и страну.

Вот эта https://infostart.ru/public/256317 не могла грузить полное наименование и страну.

Смотрел еще https://infostart.ru/public/96398, https://infostart.ru/public/424406.

Были еще платные решения, но на них у меня не было денег.

Поэтому пошел своим путем.

Выгрузка из 7.7

Выгрузку номенклатуры делал через Refprint, слегка допиленный, скачал с Инфостарта.

Получил номенклатуру в плоском табличном виде с наименованиями групп:

Данные в Excel перенес через буфер обмена, на больших обменах сохранение в Excel умирает. Теперь нужно было загрузить это добро в БП3.

Запуск 1С в режиме обычного приложения

Для работы с типовой обработкой по загрузке из табличного документа нужно было запустить 1С в режиме обычного приложения, для этого я прописал параметр запуска 1С RunModeOrdinaryApplication.

 

Загрузка данных в БП 3.0

В запущенной в режиме обычного приложения 1С открыл обработку и через буфер обмена скопировал таблицу из Excel в 1С:

Выбрал загрузку в справочник «Номенклатура».

На странице настроек указал ручной порядок нумерации колонок и сделал настройку соответствий:

Код по кнопке «События» указал такой (нумерация колонок в коде соответствует нумерации колонок в таблице):


Сообщить("Объект: " + Объект);
ИскЗн = ТекстыЯчеек[11];
Если
ИскЗн <> "" Тогда
 
Иск = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ИскЗн, истина);
 Если Не
ЗначениеЗаполнено(Иск) Тогда
 
ИскО = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
 
ИскО.Наименование = ИскЗн;
 
ИскО.ОбменДанными.Загрузка = истина;
 
ИскО.Записать();
 
Иск = ИскО.Ссылка;
 КонецЕсли;
 
Объект.ЕдиницаИзмерения = Иск;
КонецЕсли;
Сообщить("  Единица: " + Объект.ЕдиницаИзмерения + ":" + ИскЗн);
ИскЗн = ТекстыЯчеек[5];
Если
ИскЗн <> "" Тогда
 
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
 Если Не
ЗначениеЗаполнено(Иск) Тогда
 
ИскО = Справочники.Номенклатура.СоздатьГруппу();
 
ИскО.Наименование = ИскЗн;
 
ИскО.Записать();
 
Иск = ИскО.Ссылка;
 КонецЕсли;
 
Объект.Родитель = Иск;
КонецЕсли;
Сообщить("  Родитель: " + Объект.Родитель + ":" + ИскЗн);
ИскЗн = ТекстыЯчеек[25];
Если
ИскЗн <> "" Тогда
 
Иск = Справочники.Номенклатура.НайтиПоНаименованию(ИскЗн, истина);
 Если Не
ЗначениеЗаполнено(Иск) Тогда
 
ИскО = Справочники.СтраныМира.СоздатьЭлемент();
 
ИскО.Наименование = ИскЗн;
 
ИскО.ОбменДанными.Загрузка = истина;
 
ИскО.Записать();
 
Иск = ИскО.Ссылка;
 КонецЕсли;
 
Объект.СтранаПроисхождения = Иск;
КонецЕсли;
Сообщить("  Страна происхождения: " + Объект.СтранаПроисхождения + ":" + ИскЗн);

После этого запустил загрузку и всё загрузилось по папочкам, с единицами по количеству в упаковке и со странами мира. Примерно 3 000 позиций в данном конкретном случае.


 

Tags:
Subscribe

Posts from This Journal “1С” Tag

  • Visual Basic + 1С всё?

    Вот и верь после этого Одину Эссу!? Как-то, еще на работе в Максимусе, мне понадобилось написать внешнюю компоненту для управления сканером…

  • Вы всё еще кастрируете?

    Для отладки бизнес-процессов согласования договоров прежде, чем дело дойдет до утверждения, нужно пройти длинную цепочку согласований. Чтобы не…

  • Коварный ввод на основании в УФ

    На основании документа Х можно вводить два документа А и Б. Но конкретный вид документа зависит от содержимого документа Х (вида операции). Решили…

  • Правило назначения ролей – не запрещать!

    Есть одно правило назначения ролей пользователей, которое выработано эмпирически и скорее обосновано чутьём. Нельзя делать запреты пользователям с…

  • Гуру-тест 1С: обмануть при записи

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

  • Долгострои 1С

    Если вы хотите узнать, почему программисты 1С любят платформу 1С и местами ненавидят разработчиков этой платформы, то сейчас я Вам расскажу. Уже 10…

  • Ловкость рук и обработка результата запроса

    Как то я пообещал заказчику, что обработаю определенный список документов, но забыл, что эти документы были в базе с управляемыми формами. Как быть?…

  • 1С и искусственные серверные барьеры

    Заметил, что в управляемых формах 1С принуждает программистов к плохой архитектуре решений. Вкратце упомяну, что теперь большинство внешних…

  • Особенности белорусского Налогоплательщика

    Взял подработку у одного знакомого чувака из Беларуси. Платил мало (я то беру 1500 в час, а там по 800), но знакомый хороший, грех было отказывать,…

promo mankubus 18:21, yesterday 5
Buy for 40 tokens
Заядлые любители тренингов знают: лучше гор могут быть только горы - в смысле, новые тренинги, на которых еще не бывал. Я и сам такой же любитель поучиться – более того, как вы наверняка знаете, я абсолютно убежден в том, что без постоянного обучения никакого успеха в жизни человека не будет.…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 68 comments