Найти в Дзене
техноблог "ГРОМ"

Конвертация XLS, XLSx в XML для Контур-Экстерн в рамках CMD/BAT файла

Дело было в организации, где один отдел должен был передавать в бухгалтерию инфу о работавших в текущем месяце сотрудниках для выплаты им з.п., ~700 по договоров ГПХ, ежемесячно два раза в месяц. Контур экстерн не предусмотрел загрузку данных из Excel, который отдел был в состоянии выгрузить из ИС, а за доработку выкатил счёт на 60 тысяч, которые руководство не захотело оплачивать. Бухгалтера попробовали "в лоб" руками вбивать договора, но это заняло 2 дня и заниматься такой ерундой конечно больше никто не захотел. Штатный IT'шник организации "в ус не дул", и помощь оказать в ситуации оказался не в состоянии, имхо он вообще оказался предельно далёк от программирования или хотя бы написания простейших скриптов. В итоге мне, ответственному за администрирование БД в организации пришлось вмешаться и предложить решение. Я написал CMD/BAT, который конвертирует XLSX в XML, поддерживающийся Контуром. Теперь такая конвертация занимает не более 30 секунд, и используется уже наверное второй год.
XLS2XML, XLSx2XML
XLS2XML, XLSx2XML

Дело было в организации, где один отдел должен был передавать в бухгалтерию инфу о работавших в текущем месяце сотрудниках для выплаты им з.п., ~700 по договоров ГПХ, ежемесячно два раза в месяц.

Контур экстерн не предусмотрел загрузку данных из Excel, который отдел был в состоянии выгрузить из ИС, а за доработку выкатил счёт на 60 тысяч, которые руководство не захотело оплачивать.

Бухгалтера попробовали "в лоб" руками вбивать договора, но это заняло 2 дня и заниматься такой ерундой конечно больше никто не захотел. Штатный IT'шник организации "в ус не дул", и помощь оказать в ситуации оказался не в состоянии, имхо он вообще оказался предельно далёк от программирования или хотя бы написания простейших скриптов.

В итоге мне, ответственному за администрирование БД в организации пришлось вмешаться и предложить решение. Я написал CMD/BAT, который конвертирует XLSX в XML, поддерживающийся Контуром. Теперь такая конвертация занимает не более 30 секунд, и используется уже наверное второй год.

Для написания мне пришлось выгрузить из Контура XML-файл на пару человек, разобрать файл на отдельные разделы, прописать подставление переменных в нужных местах разделов, и создать пару CMD/BAT файлов, ответственных за каждый из разделом (Шапка, Запись на 1 человека, Подвал), и прописать нужные переменные как параметры вызова данных CMD/BAT.

Первые несколько конвертаций всё получалось не вполне гладко, приходилось бороться с немного отличающимся набором полей в "открывающем" и "закрывающем" ежемесячном файле. Потом мы договорились унифицировать оба формата в один, и дело пошло совсем гладко.

Вот тут я более подробнее рассказывал о данной конвертации: youtube.com/watch?v=_UtmfYw5ibU