13.04.2020 Фархутдинов Айдар 44181
Создание обработки для переноса данных из фай...

Содержание:

1.    Диалог выбора файла

2.    Чтение файла для 1С

3.    Загрузка в таблицу 1С

4.    Создание документов после переноса из 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С


Следующим этапом будет создание Документов на основании полученной таблицы.


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




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


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


Специалист компании ООО «Кодерлайн»

Фархутдинов Айдар Сайярович

Наши проекты

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление складскими запасами ...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

Внедренное типовое решение:
1С:ERP. Управление холдингом

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ · Управление цепочками поставок · Управление договорами, включа...

Оптимизация производительности системы
ЗАО ИД «Комсомольская правда»

Отрасль:
Медиа

Внедренное типовое решение:
1С:Бухгалтерия

- Оптимизация производительности системы, в том числе сервера Postgre. ...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Учет спецодежды и спецоснастки
Управление отношениями с кли...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление складскими запасами;
- Логистика адресного склада;
- Оф...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- Заполнение НСИ и классификаторов. ...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-процессов Анализ деятельности в разрезе проектов Планирование проектов У...

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конфигурацию «Koderline: Управление проектами строительства скважин»...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Бухгалтерия КОРП

Бухгалтерский учет Производственные операции Регламентированная отчетность Учет в обособленных подразделениях Налоговый учет ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение