Часто бухгалтеры сталкиваются с ситуацией, когда поставщик передает накладные или акты на авиа- и ж/д билеты в виде больших файлов Excel. Если командировок много, ручное внесение каждого билета в документ ПоступлениеДенежныхДокументов с последующей выдачей через кассу под авансовый отчет становится крайне трудоемкой задачей. Давайте подробно разберем, как автоматизировать этот процесс и рассмотрим несколько эффективных способов решения проблемы.
Если вам нужно загружать данные из файлов Excel время от времени, проанализируем использование проверенного инструмента — обработки ЗагрузкаДанныхИзТабличногоДокумента.epf. Это универсальная обработка, которая позволяет загружать информацию в справочники и табличные части документов.
Разберем по шагам, как это работает:
ПоступлениеДенежныхДокументов.Современные аналоги подобных обработок часто выполняются в виде расширений. Они умеют читать файлы Excel напрямую, даже если на рабочем компьютере не установлен пакет MS Office.
Если ваша компания регулярно приобретает билеты для командировок через агрегаторы, рассмотрим более современный и полностью автоматизированный путь. Начиная с релизов 3.0.65 для версии КОРП и 3.0.68 для ПРОФ, в программе «1С:Бухгалтерия» появилась прямая интеграция с сервисом Smartway.
Посмотрим на преимущества этого метода:
Билеты и документ ПоступлениеБилетов.76.14 («Приобретение билетов для командировок»).Важный нюанс: В новых релизах (начиная с 3.0.178) добавлена настройка, позволяющая отключить автоматическое создание карточки сотрудника при загрузке билета. Это отлично спасает, когда билет приобретается для соискателя или внештатного специалиста, который еще не числится в штате организации.
Проанализируем ситуацию, когда поставщик присылает накладные в Excel, но переходить на работу со Smartway или писать сложную загрузку нет возможности. В этом случае на помощь приходит встроенный сервис «1С:Распознавание первичных документов».
В последних версиях платформы работа с табличными файлами (XLSX, PDF, сканами) тесно интегрирована с модулем распознавания. Как это работает:
Иногда типовой функционал не покрывает специфических нужд (например, сложный формат накладной со множеством дополнительных полей от специфического поставщика). В этом случае можно написать свою обработку.
Рассмотрим логику, которую программист закладывает в такой код. Обработка должна прочитать файл Excel, создать документ, заполнить реквизиты шапки и табличную часть:
// Примерный алгоритм создания документа поступления денежных документов
НовыйДокумент = Документы.ПоступлениеДенежныхДокументов.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Организация = Справочники.Организации.НайтиПоНаименованию("Наша Организация");
НовыйДокумент.Контрагент = Справочники.Контрагенты.НайтиПоИНН("ИНН_Поставщика");
// Цикл по строкам прочитанного Excel файла
Для Каждого СтрокаExcel Из ДанныеExcel Цикл
НоваяСтрока = НовыйДокумент.ДенежныеДокументы.Добавить();
НоваяСтрока.ДенежныйДокумент = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаExcel.НаименованиеБилета);
НоваяСтрока.Сумма = СтрокаExcel.Сумма;
НоваяСтрока.Количество = 1;
КонецЦикла;
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
Однако помните: в современных реалиях написание «своей загрузки» с нуля целесообразно только при наличии очень нетипичных бизнес-процессов. В подавляющем большинстве случаев задачу можно решить стандартными механизмами, универсальными обработками или сервисом распознавания документов.