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

Содержание:

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С


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


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




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


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


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

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

Наши проекты

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение но...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

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

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

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

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

- Налоговый учет;...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

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

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

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

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

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

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

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

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

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

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

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

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

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

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

ОАО «Интер РАО – Электрогенерация»
ОАО «Интер РАО – Электрогенерация»

Отрасль:
Электрогенерация

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

Для работы 2500 пользователей в 9 часовых поясах организована территориально-...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

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

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

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

ПЭК
ПЭК

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

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

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

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

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

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

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

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

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

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

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