В 1С 8.3 есть возможность массово загрузить список номенклатуры из табличного документа, например, из файла Excel.
Для загрузки мы используем внешнюю обработку ЗагрузкаДанныхИзТабличногоДокумента.epf для управляемых форм (8.2 и 8.3), которую можно скачать отсюда. Она универсальна и должна подходить для любой конфигурации, написанной под управляемое приложение.
- Пример загрузки прайс-листа в 1С Управление торговлей можно найти по ссылке.
Чтобы запустить внешнюю обработку, нужно зайти в меню «Файл», далее «Открыть» и выбрать эту обработку из каталога, в котором она была сохранена:
После того как обработка открылась в 1С, можно приступать к работе с ней. В первую очередь нам нужно определиться, куда и что мы будем загружать:
Я хочу привести пример на справочнике «Номенклатура». Я создал некий файл с данными в формате xls.
Обработка умеет загружать также файлы формата:
- mxl,
- xls,
- txt,
- dbf,
- любой другой формат, откуда можно скопировать данные.
Вот так выглядит файл Excel с исходными данными, который мы будем загружать в справочник «Номенклатура»:
Я не стал прописывать все поля справочника, так как этого достаточно для понимания принципа загрузки. Кроме того, этих данных хватает для начала работы с данными позициями.
Данных позиций пока нет в информационной базе 1С, и мы сейчас туда их загрузим.
Нажимаем на значок «Открыть» (на рисунке обозначен как «Выбор источника») и выбираем файл с данными. Можно использовать простое копирование информации. Мой файл с примером можно скачать здесь. Данные загрузятся в обработку автоматически. Теперь проверим, правильно ли мы заполнили наши данные. Для этого нажимаем кнопку «Контроль заполнения».
Как видно, у нас появились ошибки! Будем устранять. Заходим на закладку «Настройка»:
Прежде чем исправлять ошибки, хочу обратить внимание на одну важную деталь. Программа изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей нужно его указать. Я предпочитаю искать по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, в другом случае — создана.
Теперь посмотрим, почему ругается на поле «Единица». Дело в том, что единицы измерения в 1С 8.3 хранятся в отдельном справочнике, и обработка по умолчанию ищет эту единицу по наименованию. А на самом деле словом единица прописана в поле «Полное наименование».
К сожалению, обработка может вести поиск только по «Наименованию» и «Коду» (для программиста возможности шире). Если обратите внимание на рисунки выше, то увидите, что в колонке «Единица» у меня стоит код. И в обработке нужно указать, что поиск нужно вести по коду. Щелкаем два раза по колонке «Условие связи» напротив «Единицы» и меняем на «Код».
Теперь смотрим, что нам что-то там про «Услугу» говорят в списке ошибок. Еще одно важное замечание. Колонки в файле должны располагаться строго в том же порядке, как и строки полей справочника. А у нас «Вид номенклатуры» находится в самом низу, а в файле после колонки «Комментарий».
Для того чтобы поднять строку «Вид номенклатуры» вверх, существуют синие стрелочки вверху формы. С помощью стрелки «Вверх» поднимаем нужную строку и ставим под «Комментарием».
Жмем «Загрузить данные», и на этот раз все проходит без ошибок: