Часто перед разработчиками и системными администраторами встает задача автоматизации рутинных действий в 1С:Предприятие. Одним из инструментов такой автоматизации является запуск внешней обработки (файла .epf) через командную строку. При этом возникает специфический вопрос: можно ли выполнить такой запуск, не указывая конкретную информационную базу, и потребуются ли в этом случае лицензии (USB-ключи или сетевые лицензии)? Разберем этот механизм детально, проанализируем поведение платформы и выясним, как работает лицензирование в подобных условиях.
Рассмотрим ситуацию, когда используется командный файл (.cmd) со следующей структурой запуска:
"C:\Program Files\1cv8\8.3.x.xxxx\bin\1cv8.exe" ENTERPRISE /Execute "C:\Scripts\MyProcessing.epf"
На первый взгляд кажется, что 1С запускается «в никуда», так как в строке отсутствуют привычные ключи /F (путь к файловой базе) или /S (адрес серверной базы). Однако архитектура 1С:Предприятие не позволяет коду выполняться вне контекста какой-либо информационной базы. Проанализируем, что происходит на самом деле.
Когда платформа получает команду на запуск внешней обработки без указания конкретной базы, она автоматически инициирует создание временной (эфемерной) информационной базы. Эта база создается в профиле текущего пользователя операционной системы. Обычно путь выглядит следующим образом:
%userprofile%\AppData\Roaming\1C\1cv8\EmptyIB
В этом каталоге разворачивается минимально необходимая структура файлов (для файлового варианта), которая служит «песочницей» для выполнения вашей обработки. Важно понимать, что эта база абсолютно пуста: в ней нет справочников, документов или ролей. Это стандартная пустая конфигурация, которая нужна только для того, чтобы инициализировать ядро 1С и предоставить среду исполнения для встроенного языка.
Теперь ответим на критически важный вопрос: нужен ли USB-ключ или сетевая лицензия для такого запуска? Разберем два сценария, которые зависят от версии используемого исполняемого файла.
Сценарий 1: Использование коммерческой версии (1cv8.exe)
Если вы используете стандартную версию платформы, ответ — да, лицензия обязательна. Процесс запуска 1С:Предприятие всегда подчиняется строгой последовательности:
EmptyIB).Поскольку проверка лицензии происходит до открытия базы, платформа не позволит вам увидеть окно обработки, если не найдет ключ защиты. Если компьютер отключен от сети предприятия (где находится HASP License Manager) и не имеет локального USB-ключа, запуск завершится ошибкой «Ключ защиты программы не обнаружен».
Сценарий 2: Использование учебной версии (1cv8t.exe)
Обратим внимание на техническую деталь в путях запуска. Если в пути указан файл 1cv8t.exe (где литера «t» означает Training), ситуация меняется. Рассмотрим пример:
"C:\Program Files (x86)\1cv8t\8.3.17.1386\bin\1cv8t.exe" ENTERPRISE /Execute "C:\2.epf"
Учебная версия платформы имеет встроенные ограничения (на количество записей, размер базы и т.д.), но при этом она не требует аппаратных ключей защиты или программных лицензий для своей работы. В этом случае обработка успешно запустится даже на компьютере без интернета и без USB-токена. Однако помните, что учебная версия предназначена только для ознакомления и разработки, а не для промышленной эксплуатации.
Выясним причину, по которой код внешней обработки может работать некорректно в режиме EmptyIB. Поскольку база данных создается с нуля и имеет пустую конфигурацию, в ней отсутствуют любые метаданные.
Рассмотрим пример кода, который не будет работать в таком режиме:
НовыйТовар = Справочники.Номенклатура.СоздатьЭлемент();
НовыйТовар.Наименование = "Тестовый товар";
НовыйТовар.Записать();
При попытке выполнить этот код система выдаст ошибку, так как объект Справочники.Номенклатура не существует в контексте пустой базы. Вы можете использовать только универсальные коллекции и механизмы, не привязанные к метаданным конкретной конфигурации. К ним относятся:
Массив, Структура, ТаблицаЗначений).Для успешной реализации запуска обработки без входа в основную базу предприятия, проанализируем следующие рекомендации:
1cv8t.exe), если это допустимо вашими корпоративными правилами.1cv8.exe, убедитесь, что компьютер имеет доступ к сети для связи с менеджером лицензий или в него вставлен локальный ключ. Даже для работы с пустой базой EmptyIB лицензия будет занята./RunDataProcessor, которая является развитием функционала /Execute.Таким образом, мы выяснили, что «запуск без базы» — это техническая иллюзия, так как 1С всегда создает временное окружение. Для коммерческого использования наличие лицензии остается обязательным условием вне зависимости от того, подключаетесь ли вы к реальной базе или работаете с пустой средой.