Универсальный загрузчик номенклатуры из Excel без COM компоненты с сохранением настройки


Обработка загружает данные из файла экзель в конфигурацию заполняя справочник Номенклатура.
Есть возможность сохранить настройки для разных прайсов.

Быстрый старт.

Подготовим документ Excel для загрузки

Файл Excel создадим в следующем виде:

Где первая строка будет являться наименованием данных которые будем загружать. Желательно использовать буквенно-цифровое наименование и не использовать пробелы.

Все последующие строки содержат сами загружаемые данные.

Сохраняем документ в формате Excel: «Книга Excel (*.xlsx

Настроим обработку загрузки реквизитов

Укажем файл и нажмём «Прочитать заголовок из файла»

Файл будет загружен и отображён на вкладке «ДанныеФайла». Заголовок будет прочитан и созданы строки на вкладке «Настройки»

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

Загрузить из колонки в реквизит

Колонка «Товар» содержит наименование товара. Поэтому в строке «Товар» в таблице, указываем следующие значения:

  1. ставим галку «Использовать»
  2. в колонке «Имя реквизита номенклатуры» указываем «Наименование»

Значение, это иерархия справочника

Колонка «Категория» содержит иерархию номенклатуры, например «Кухонные мойки/Аксессуары для мойки» говорит о том, что номенклатура должна находится в группе «Аксессуары для мойки», а она внутри группы «Кухонные мойки», а она внутри загружаемой группы. Укажем в строке соответствующие настройки:

  1. галка «Использовать»
  2. «Имя реквизита номенклатуры» указываем «Родитель», этот реквизит отвечает за иерархию внутри групп
  3. ставим галку «Иерархия»

Значение, это поле поиска товара в справочнике

По какому-то полю нужно искать номенклатуру в справочнике. Это может быть артикул, код, наименование или любое другое поле. Так же возможно указать несколько полей поиска. В нашем случае будет использовать колонку «Артикул», поэтому укажем следующее:

  1. галку «Использовать»
  2. «Имя реквизита номенклатуры» укажем «Артикул»
  3. установим галку «Поле поиска»

Фиксированное значение реквизита

Некоторые поля мы можем брать не из файла, а указать для всей номенклатуры определённое значение. Например, «Вид номенклатуры» для всей загружаемой номенклатуры установим «Товар». Аналогично нужно настроить и реквизит «Тип номенклатуры». Так как в файле такой колонке нет, то мы можем добавить строку в таблицу самостоятельно:

  1. нажмём кнопку добавить
  2. установим флаг «Использовать»
  3. укажем «Наименование колонки» значением одной из существующих колонок в файле
  4. выберем в колонке «Имя реквизита номенклатуры» значение «ВидНоменклатуры»
  5. выберем соответствующее значение в колонке «Значение»

Значение, это дополнительный реквизит

Некоторые значения являются дополнительными реквизитами. Дополнительные реквизиты могут являться простой строкой, либо дополнительным справочником. Если такого доп.реквизита нет, то он будет создан с указанным типом. Если доп.реквизит, это дополнительный справочник, а значение не будет найдено среди существующих, то оно будет создано автоматически.

Например, цвет товара или строка URL может быть указан в доп.реквизитах. При этом цвет правильно указывать как дополнительное значение, а т.к. URL уникально для всех, то его указать тип – строка.

  1. галка «Использовать»
  2. устанавливаем галку «Это доп.реквизит»
  3. для строки «URL» укажем галку «Доп реквизит это строка»

Значение, это адрес картинки для скачивания

Обработка может загрузить картинки с сайта. В нашем примере путь/имя картинки содержится в колонке «Изображения». Несколько картинок могут быть разделены запятой. Установим настройку в следующем виде:

  1. галка «Использовать»
  2. «Имя реквизита номенклатуры» укажем «ФайлКатинки» для картинки по-умолчанию
  3. установим галку «Это картинка»

Значение, устанавливается выполнением дополнительного кода

В обработке можно для установки значения использовать программный код. Например, реквизит «ИспользованиеХарактеристик» зависит от соответствующего реквизита вида номенклатуры. В коде можно использовать параметры «ДанныеСтроки», «ТекущееЗначение» и «НоменклатураОбъект». Можем взять любую имеющую строку, которая не задействована в загрузке и изменить её так:

  1. галка «Использовать»
  2. колонка «Имя реквизита номенклатуры» установим «ИспользованиеХарактеристик»
  3. в колонке «Выражение» укажем код:
  4. ТекущееЗначение = НоменклатураОбъект.ВидНоменклатуры.ИспользованиеХарактеристик;

Настроим дополнительные параметры обработки

Мы хотим чтобы новая номенклатура, для отладки корректности загрузки, загружалась в отдельную группу. Для этого укажем соответствующий параметр:

Если в excel у нас есть колонка с ценой и нам нужно установить цены номенклатуры, то установим соответствующие параметры:

Если нам нужно загружать картинки, то установим следующие параметры:

В этом примере, если в колонке «Картинка» значение будет «someimage.jpg», то адрес картинки будет выглядеть так: http://qeos.ru/img/someimage800x600.jpg 

Сохраним настройки

Для сохранения нажмём соответствующую кнопку и имя файла

В этом туториале закроем обработку.

Выполняем загрузку данных

Снова откроем обработку и прочитаем сохранённую настройку.

После чтения настройки загрузка данных файла не производится и на закладке «ДанныеФайла» не отображется.

Для загрузки номенклатуры нажимаем кнопку «Загрузить» и дожидаемся завершения обработки.

В нашем варианте настройки, новая номенклатура появится в группе «Новая номенклатура». А так же будет создан и проведён документ «Установка цен номенклатуры» по загруженной номенклатуре.

Тестировалось на платформе 1С:Предприятие 8.3 (8.3.14.1694) на Управление торговлей, редакция 11 (11.4.5.82).

5 Comments

  1. rasdag

    Однако велосипед. Не легче пользоваться универсальным решением ?

    Reply
  2. qeos

    (1) это решение лучше, чем ваши.

    Reply
  3. qwinter

    (1) универсальных решений которые грузят изображения я еще не встречал.

    Reply
  4. rasdag

    (3) Кстати хорошая идея — загрузка изображения. Попробовал на универсальном решении — оказывается легче чем я думал. Скоро выложу.

    Reply
  5. qeos

    (4) ну вот! уже в чем-то польза!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *