Благодаря этой обработке процедура загрузки из файла .xls прайс-листа в справочник «Номенклатура» в УТ 11 или заполнение дней рождения сотрудников в ЗУП 3 становится по зубам даже абсолютному новичку в 1С!
Природа не терпит пустоты - когда в информационной базе 1С есть незаполненные справочники, а в Excel-евских таблицах хранятся полезные данные, последние так и просятся быть импортированными в 1С. Большей конкретики с данной обработкой вам не понадобится. Никаких больше «Написать обработку загрузки хитровывернутого реестра из Excel в 1С»! Пусть пользователь сам обозначит область, откуда брать, укажет место, куда грузить, и в качестве конечного результата получит набор данных в своей базе.
Внешняя обработка «Загрузка табличных данных из файла Microsoft Excel» осуществляет чтение произвольного набора данных с любого листа книги Excel, сопоставляет его с данными любого объекта метаданных информационной базы 1С вида «Справочник» или «Документ», и создаёт на его основе новые элементы или обновляет существующие. Также, в качестве бонуса, реализована функция пакетного извлечения изображений, хранящихся в файле Excel.
Программные требования:
• 1C: Предприятие 8 (Управляемый режим)
• Microsoft Office 2003
Попробуем загрузить официальный прайс-лист 1С в демонстрационную базу «Управление торговлей 11».
Первым делом добавим обработку в список Дополнительных отчетов и обработок (раздел Администрирование).
Работа начинается с выбора файла PRICE_1C.XLS.
Выбираем лист, с которого необходимо загрузить данные. Если потребуются данные нескольких листов, загрузить их можно будет поочередно, сперва пройдя все этапы для одного листа, а потом вернувшись к началу и выбрав следующий лист.
Программа автоматически определила, что полезная информация на выбранном листе начинается с 5-й строки, и отметила за пользователя галочками, какие именно колонки следует загрузить. Если она ошиблась, пользователь должен самостоятельно задать номер строки, содержащей шапку таблицы.
Выбираем объект базы данных, куда будем загружать данные (по умолчанию это справочник Номенклатура), и заводим соответствия: из колонки Код данные грузить в реквизит Код, из Наименование – в Наименование, и т.д. В качестве недокументированного бонуса в программе реализована загрузка цен номенклатуры для УТ 11. Указываем, что существующие элементы справочника искать надо, и искать надо по коду.
Реквизитов справочника много, а колонок из Excel’я мы загружаем всего шесть. На данном этапе пользователь может задать значения остальных реквизитов по умолчанию. Например, проставить для загружаемых элементов родительскую группу.
Почти 9 тысяч строк грузятся далеко не за пару минут… В это время происходит поиск соответствий загружаемых данных элементам справочника, поэтому процесс выходит весьма длительным. Откиньтесь на спинку кресла и расслабьтесь… Подумайте о том, сколько времени ушло бы на ручной ввод этих данных…
Но вот все строки загружены, но пока еще не в базу данных: пользователю предоставляется возможность оценить подготовленный к загрузке массив данных и, пока не поздно, внести в него коррективы. А именно:
• Отметить те строки, которые нужно загружать (или снять отметки у тех строк, которые загружать не надо);
• Отредактировать значения любых колонок, включая ссылки на соответствующий объект базы данных 1С.
Все столбцы до «Объект соответствия» содержат данные листа Microsoft Excel; в столбце «Объект соответствия» хранятся ссылки на найденный по указанному соответствию элемент базы данных, все последующие столбцы – реквизиты.
Когда всё становится готово к загрузке, остаётся нажать кнопку «Загрузить». Информация о прогрессе исполняемого действия будет выведена в поле служебных сообщений.