Создание обработки для переноса данных из файла MS Excel в документ 1С
Почти все сталкиваются с необходимостью перенести огромное количество данных из MS Excel в 1С. Для резвого выполнения данной задачки можно сделать внешнюю обработку для переноса данных, которая будет считывать наш файл и заполнять документ необходимыми данными.
Для чтения табличных документов Excel в 1С существует несколько методов. Но не они все всепригодны. В этом случае мы будем разбирать метод – через создание COM-объекта. Этот метод просит неотклонимого наличия MS Excel на компе (сервере), на котором находится база данных.
В данной статье мы разберем создание команды, по которой из Excel файла будет происходить выгрузка данных в табличную часть документа 1С.
Сделаем в конфигураторе Новейшую обработку для переноса данных, которая будет считывать данные из документа Excel и создавать на базе этих данных документы, в которых будет автоматом заполняться табличная часть.
1. Диалог выбора файла
Сперва нужно сделать диалог выбора файла. Сделаем реквизит формы «ПутьКФайлу» и вынесем его на форму в виде поля ввода:
Дальше прописываем событие «НачалоВыбора» для нашего поля и пишем функцию для этого действия. Также можно установить фильтр, для того чтоб было видно лишь нужные типы файлов.
2. Чтение файла для 1С
Опосля того как мы сделали поле для указания файла, добавим команду формы «ЗагрузитьИзExcel», и вынесем ее на форму.
Опосля чего же привязываем к ней функцию, которая будет загружать данные из документа Excel и помещать их в таблицу формы, для того чтоб можно было проверить, что загрузилось.
Данная процедура вызывает последовательное выполнение отдельных процедур и функций, о которых пойдет речь чуток ниже.
Функция «ПрочитатьФайлЭксель» возвращает массив с данными из обозначенного нами файла.
Подключаемся к Excel через COM-объект и проводим все технические опции: определяем количество листов, определяем версию, потому что для различных версий выходит различное количество колонок и строк.
Дальше считываем данные и заполняем ими массив.
Опосля сотворения функции, которая считывает данные, напишем функцию, которая будет помещать их в таблицу формы.
3. Загрузка в таблицу 1С
Получим таблицу формы и объявим некие переменные, которые будем применять дальше.
Получаем номера колонок, данные которых нам нужны.
При помощи простой функции, возвращающей данные подходящей колонки для текущей строчки, получаем нужные значения и добавляем их в таблицу.
Опосля загрузки в таблицу 1С можно подтянуть некие данные из справочников. В этом случае при помощи способа «НайтиПоРеквизиту()» искались наименования номенклатуры по ее артикулу и так же выгружались в таблицу формы.
При написании обработки для переноса данных недозволено забывать и о вероятных ошибках, которые могут появиться в процессе работы. В этом случае предусмотрим, что не постоянно артикулы, обозначенные в табличном документе, могут быть добавлены в справочник. И в случае если в справочнике нет данного артикула, будем выводить сообщение о этом.
4. Создание документов опосля переноса из Excel в документ 1С
Последующим шагом будет создание Документов на основании приобретенной таблицы.
Сделаем команду, по которой будут создаваться документы и пропишем событие. Для того чтоб сделать для всякого магазина новейший документ, выгрузим таблицу формы в ТаблицуЗначений и свернем по колонке «магазин», чтоб получить массив разных магазинов.
Опосля чего же обойдем этот массив в цикле, создавая и заполняя Новейший документ для всякого магазина. Непременно следует запретить создавать документы при незаполненных значениях номенклатуры (выводить сообщения о том, что она не заполнена).
Данную обработку для переноса данных можно создать как наружной, так и интегрированной. Все зависит от потребностей. Существенных различий меж этими вариациями не будет кроме того, что для наружной обработки в модуль объекта необходимо будет прописать характеристики регистрации и подключить ее. Для интегрированной же необходимо будет обновлять конфигурацию, что в неких вариантах проблематично, если БД весьма большая.