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

Содержание:

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С:ERP 2.4

Внедренное типовое решение:

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» в новую систему «1С:ERP 2.4». ...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка функционала подсистемы...

Автоматизации бизнес-процессов учета и планирования на базе «1С:ERP Управление предприятием 2.0»
ООО «Буровая сервисная компания «ГРАНД»

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

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

- Создание полноценной управленческой системы взамен существующих
- Внедрением подсистем «Нормативное планирования», «Мобильное АРМ», «Ре...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

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

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в данные международного учета (ГААП) на платформе «1С:Предприятие 8»:...

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

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

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

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

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

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

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет бухгалтерский, налоговый, бюджетный, включая регламентированную ...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

Внедрение системы финансового учета БИТ:Финанс
ООО «Алькор и Ко» (Л’Этуаль)

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

Внедренное типовое решение:
БИТ.Финанс

- Финансовый учет;
- Поддержка проекта внедрения МСФО;
- Регламентные работы по обслуживанию сервера MS SQL;
- Оптимизация производ...

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

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

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

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

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного пакета;
- Создан единообразный интерфейс как в офисе, так и...

Внедрение блока расчета себестоимости РАУЗ в 1С:УПП 8
ООО «Пелигрин Матен»

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

Внедренное типовое решение:
1С:Управление производственным предприятием

– Оформление заказов покупателей;
– Взаиморасчеты с покупателями;
– Оформление заказов поставщикам;
– Управление отношениями с ...

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

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

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

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