/1c_to_diadok

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Конвертер файлов 1С в Диадок

Скрипт предназначен для преобразования экспортированых файлов УПД *.xml из 1С в формат импорта Диадок.

Зачем это всё?

Как это работает

Как использовать

Если у вас лапки

Примечание

История умалчивает, умышленно ли было сделано небольшое различие в форматах файлов обмена электронными документами в вышеупомянутых конкурирующих системах, обе стороны утверждают, что системы работают с форматами файлов утвержденных Приказом ФНС России от 19.12.2023 № ЕД-7-26/970, но при этом, если попытаться импортировать файл xml, содержащий УПД из 1С в диадок, то скорее всего это мероприятие потерпит фиаско.

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

Для исправления этого досадного недоразумения был написан этот скрипт, котрый заменяет символы в экспортированых файлах УПД *.xml из 1С.

❗ Для работы скрипта на компьютер обязательно требуется установить Python версии 3

Скрипт распаковывает экспортированные из 1С архивы, содержащие документы УПД в формате xml, удаляет лишние служебные файлы и каталоги, после чего конвертирует файл в формат, который сервис Диадок принимает без возмущения.

Windows

Сачиваем и сохраняем скрипт diadok_conv.py в ту же папку где будут храниться экспортированные из 1С файлы, удобно использовать для этих целей папку в каталоге "Загрузки", например, \Downloads\1CExchange.

Двойным щелчком по файлу diadok_conv.py запускаем работу скрипта и вместо архивов видим файлы в формате xml пригодные для импорта в диадок.

Linux и MacOs

Если вы счастливый обладатель компьютера фирмы Apple 😎 или не менее счастливый пользователь операционной системы Linux 😵, то последовательность ваших действий для использования скрипта должна быть следующей:

1️⃣ Окрываем терминал и проверяем установлен ли у вас ЯП Python3

$ python3

2️⃣ Если вы увидели сообщение похожее на такое:

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

жмём ctrl+d для выхода и пропускаем следующий шаг.

3️⃣ Если python у вас не установлен, в поиске ищем как установить python3 в вашу систему, выполняем и возвращаемся к этому месту.

4️⃣ Откроем терминал, находясь в каталоге ~/ создаем директорию, где мы разместим скрипт и куда будем сохранять файлы с документами из 1С

mkdir 1CExchange

5️⃣ Перемещаемся в этот каталог командой

cd 1CExchange/

6️⃣ Скачиваем в этот каталог наш скрипт командой

wget https://raw.githubusercontent.com/wwsilin/1c_to_diadok/main/diadok_conv.py

7️⃣ Сохраняем в этот же каталог файлы подлежащие конвертации и запускаем скрипт командой

python3 diadok_conv.py 

Windows

Если вы пользователь Windows, у вас не установлен Python, вам лень заморачиваться, а ваш администратор смотрит сквозь пальцы на скачивание и использование *.exe файлов из интернета, вы можете скачать diadok.exe в папку с архивами, полученными из 1С и запустив его получить xml файлы для импорта в диадок.

Linux

Если вы пользователь Linux и вам вообще не охота в это вникать (хотя так не получится), качаем вместо скрипта в каталог исполняемы файл diadoc даем права на запуск и получаем нужный результат.
Последовательность команд следующая:

$ mkdir 1CExchange

$ cd 1CExchange/

$ wget https://raw.githubusercontent.com/wwsilin/1c_to_diadok/main/diadok

$ sudo chmod 755 diadoc

$ ./diadok

💩 Маленькая оговорка: в виду того, что кодировка файлов xml для сервисов ЭДО положена ср1251, в linux и MacOs работа данного ПО совершенно не гарантируется. Надеюсь, вам повезёт!

Работа программы была проверена на 1С версии 8.3 с сервисом Диадок, из 1С экспортировались УПД, сохраненные в ZIP-архив, результат работы программы загружался в сервис контур.диадок.
❗ Работа с другими видами документов не гарантируется.

‼️ Также, имеейте в виду, что все действия вы производите на свой страх и риск, автор не несет никакой ответственности за ваши действия при использовании данного ПО.
Поэтому проверяем, что импортируется и что вы отправляете.