В процессе сопровождения и интеграции учетных систем нередко возникает задача регулярного извлечения данных (например, остатков товаров или взаиморасчетов) без внесения изменений в основную конфигурацию. Проанализируем ситуацию: как настроить фоновую или регламентную выгрузку по расписанию так, чтобы процесс выполнялся автономно, стабильно и не вызывал конфликтов с существующей инфраструктурой.
Рассмотрим подробно основные технические решения, их ограничения, а также тонкости практической реализации.
Наиболее распространенный и гибкий вариант — создание внешней обработки (файл с расширением .epf), которая выполняет выборку данных и сохраняет результат в требуемом формате. Запуск такой обработки по расписанию настраивается через планировщик операционной системы (например, Планировщик заданий Windows) с использованием командного файла.
Разберем по шагам ключевые параметры командной строки платформы 1С:Предприятие:
/EXECUTE <ПутьКФайлу> — указывает платформе на необходимость запуска внешней обработки сразу после входа в программу./C <СтрокаПараметров> — передает текстовые параметры внутрь сеанса 1С. В коде обработки их можно получить через глобальное свойство ПараметрыЗапуска (например, путь к каталогу выгрузки)./DisableStartupMessages — подавляет стартовые информационные и диалоговые окна платформы, предотвращая зависание неинтерактивного процесса.Посмотрим на пример командной строки для запуска выгрузки:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\Trade" /N "RobotUser" /P "Password123" /EXECUTE "C:\Scripts\ExportBalances.epf" /C "OutDir=C:\Export" /DisableStartupMessages
Разберем важный нюанс работы с командными файлами (.bat или .cmd). При передаче кириллических путей к информационной базе, имен пользователей или паролей командная строка Windows может некорректно интерпретировать символы. Выясним причину: по умолчанию текстовые редакторы часто сохраняют файлы в кодировке UTF-8, в то время как интерпретатор команд ожидает кодировку ANSI (Windows-1251) или OEM (CP866). Для корректного запуска убедитесь, что сам командный файл сохранен в кодировке ANSI.
Обязательно обратим внимание на завершение работы платформы. При интерактивном открытии обработки окно 1С не закрывается само по себе. Чтобы сеанс не зависал в памяти и не занимал лицензию, в коде модуля внешней обработки необходимо обязательно предусмотреть программный выход:
Процедура ПриОткрытии(Отказ)
ВыполнитьЭкспортДанных();
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
Если на предприятии развернута вспомогательная база или имеется внешний сервер автоматизации, данные можно получать с помощью подключения через внешнее соединение. Рассмотрим, как это работает: во внешней базе создается регламентное задание, которое периодически подключается к рабочей базе по COM и напрямую считывает остатки через запросы.
Посмотрим на пример программного кода для COM-подключения:
COMСоединитель = Новый COMОбъект("V83.COMConnector");
ПараметрыПодключения = "File=""C:\Bases\Trade""; Usr=""RobotUser""; Pwd=""Password123"";";
Попытка
БазаИсточник = COMСоединитель.Connect(ПараметрыПодключения);
Запрос = БазаИсточник.NewObject("Запрос");
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Номенклатура,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки";
Результат = Запрос.Выполнить().Выгрузить();
// Обработка и сохранение полученной таблицы
Исключение
ЗаписьЖурналаРегистрации("COM-выгрузка", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
Этот способ удобен тем, что запуск происходит полностью в фоновом режиме, не открывая графический интерфейс клиента 1С.
Проанализируем технические следы, которые оставляют различные варианты выгрузки:
/EXECUTE фиксирует факт открытия файла обработки и путь к нему на диске. Использование COM-соединения регистрирует сеанс с типом подключения «COM-соединение». Если администраторы базы регулярно проверяют журнал регистрации с отбором по внешним обработкам или сеансам, эти действия будут видны.Если необходимо свести к минимуму подозрения во внешнем вмешательстве, обратите внимание на стандартные подсистемы конфигурации: