Решение проблем

Типичные проблемы и их решения

Получаю XML вместо EPF

Симптомы

Вы запускаете команду с --output-format epf, но в результате получаете XML файлы:

python -m 1c_processor_generator yaml ^
  --config config.yaml ^
  --handlers-file handlers.bsl ^
  --output output/ ^
  --output-format epf

Вместо .epf файла в папке output/ появляются XML файлы.

Причина

Генератор не нашел 1C Designer (1cv8.exe) на вашем компьютере. Для компиляции EPF нужен установленный и лицензированный Конфигуратор 1С:Предприятие 8.3.

Решение

Шаг 1: Проверьте, найден ли 1C Designer:

python -m 1c_processor_generator setup-1c --check

Шаг 2: Если Designer не найден, укажите путь явно через параметр:

python -m 1c_processor_generator yaml ^
  --config config.yaml ^
  --handlers-file handlers.bsl ^
  --output output/ ^
  --output-format epf ^
  --designer-path "C:\Program Files\1cv8\8.3.25.1394\bin\1cv8.exe"

* Замените версию (8.3.25.1394) на вашу установленную версию 1C

Или установите переменную окружения (один раз):

PowerShell:
$env:DESIGNER_1C_PATH = "C:\Program Files\1cv8\8.3.25.1394\bin\1cv8.exe"
CMD:
set DESIGNER_1C_PATH=C:\Program Files\1cv8\8.3.25.1394\bin\1cv8.exe

Шаг 3: Если 1C найден, но всё ещё генерируется XML — запустите setup-1c для создания информационной базы:

python -m 1c_processor_generator setup-1c

Типичные причины проблемы

  • Не установлена 1C — для PRO функций нужен лицензированный Конфигуратор 1С
  • 1C установлена в нестандартную папку — укажите путь явно через --designer-path
  • Нет информационной базы — запустите setup-1c для создания
  • Ошибка компиляции — просмотрите лог на наличие ошибок BSL кода

MISSING: epf_compiler_cache

Симптомы

При проверке setup-1c --check вы видите:

MISSING: %APPDATA%\1C\epf_compiler_cache\

При генерации с --output-format epf создаётся XML вместо EPF.

Причина

Не создана информационная база для компиляции EPF. Генератор требует пустую ИБ 1С для работы Designer в пакетном режиме.

Хотя генератор имеет fallback для автоматического создания базы, он может не сработать из-за:

  • Таймаут — создание временной ИБ занимает 10-15 секунд, на медленных машинах может не успеть
  • Designer занят — если 1C уже запущена, CREATEINFOBASE может fail
  • Права доступа — проблемы с доступом к %TEMP% или %APPDATA%

Решение

Запустите команду создания базы один раз после установки:

python -m 1c_processor_generator setup-1c

Эта команда:

  • Создаст пустую ИБ в %APPDATA%\1C\epf_compiler_cache\
  • Кеширует базу для всех последующих компиляций
  • Ускоряет генерацию EPF на 3-5 секунд

После этого повторите генерацию:

python -m 1c_processor_generator yaml ^
  --config config.yaml ^
  --handlers-file handlers.bsl ^
  --output output/ ^
  --output-format epf

Рекомендация

Всегда запускайте setup-1c после установки генератора.

Это создаст кешированную базу с полным таймаутом и правильными сообщениями. Во время генерации таймаут делится на шаги и может быть недостаточным для создания базы «на лету».

DLL load failed: Visual C++ Redistributable

Симптомы

При запуске любой команды получаете ошибку:

ImportError: DLL load failed while importing _protected: Не найден указанный модуль.

Или на английском:

ImportError: DLL load failed while importing _protected: The specified module could not be found.

Причина

Отсутствует Microsoft Visual C++ Redistributable — системная библиотека Windows, необходимая для запуска скомпилированных Python модулей (.pyd).

Типично встречается на:

  • Windows Server 2012 R2 и более старых версиях
  • «Чистых» установках Windows без дополнительного ПО
  • Виртуальных машинах с минимальной конфигурацией

На Windows 10/11 VC++ обычно уже установлен вместе с играми, Visual Studio, Office и т.д.

Решение

1. Определите архитектуру Python:

python -c "import struct; print(struct.calcsize('P') * 8)"

Выведет 64 для x64 или 32 для x86

2. Скачайте и установите VC++ Redistributable:

3. Перезапустите командную строку и попробуйте снова:

python -m 1c_processor_generator --help

Почему pip не устанавливает это автоматически?

pip работает только с Python пакетами. Он не может устанавливать системные компоненты Windows (.exe/.msi файлы) — это требует прав администратора и выходит за рамки Python экосистемы.

DLL ошибки или неожиданное поведение

Симптомы

  • Ошибки загрузки DLL (ImportError: DLL load failed)
  • Модуль не найден (ModuleNotFoundError)
  • Неожиданное поведение после обновления
  • Конфликты версий зависимостей
  • Команды не работают как ожидалось

Причина

Проблемы могут возникать из-за:

  • Повреждённые файлы — неполная загрузка или сбой во время установки
  • Конфликт версий — несовместимые зависимости между пакетами
  • Кеш pip — старые версии файлов в кеше
  • Обновление Python — DLL скомпилированы для другой версии Python

Решение

Выполните полную переустановку:

pip uninstall 1c-processor-generator -y && pip cache purge && pip install https://github.com/SERGIUSH-UA/1c-processor-generator-pro/archive/refs/heads/master.zip

Эта команда:

  • pip uninstall -y — удаляет пакет без подтверждения
  • pip cache purge — очищает кеш pip (важно!)
  • pip install ... — устанавливает свежую версию с GitHub

После переустановки:

python -m 1c_processor_generator --version
python -m 1c_processor_generator setup-1c --check

Если проблема остаётся

  • Проверьте версию Python: python --version (нужен 3.10-3.14)
  • Попробуйте в новом virtual environment: python -m venv venv && venv\Scripts\activate
  • Проверьте нет ли конфликтов: pip check

Не нашли ответ?

Напишите нам на [email protected] или создайте issue на GitHub.