Вирішення проблем

Типові проблеми та їх рішення

Отримую 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.