К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как запустить код в 1С: способы выполнения кода для разработчика и администратора

Как запустить код в 1С: консоль кода, внешние обработки, отладка, выполнение через СКД и планировщик. Пошаговые инструкции, типичные ошибки и меры безопасности.

Запустить код в 1С можно несколькими способами — от простого выполнения фрагмента в консоли кода до полноценной отладки в конфигураторе. Выбор способа зависит от задачи: быстро проверить выражение, протестировать алгоритм, обработать данные в базе или запустить регламентное задание. У каждого варианта есть свои ограничения по правам, режиму работы и безопасности.

Главное правило перед любым запуском: код, который изменяет данные, сначала проверяют на копии базы. Встроенный язык 1С выполняется напрямую в информационной базе, и ошибочный цикл записи способен испортить тысячи объектов за секунды. Откатить такие изменения штатными средствами нельзя — только восстановлением из резервной копии.

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

Что нужно проверить перед запуском кода

Прежде чем выполнять произвольный код, убедитесь, что у вашей учётной записи есть необходимые права. Для запуска внешних обработок и консоли кода нужны права на открытие внешних файлов, а для изменения данных — права на соответствующие объекты (справочники, документы, регистры). В типовых конфигурациях интерактивное открытие внешних файлов может быть заблокировано профилем безопасности.

Второе условие — свежая резервная копия базы, если код будет записывать или удалять данные. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей. Для клиент-серверной базы копию делают средствами СУБД или через выгрузку в dt из конфигуратора.

Третий момент — режим работы. Код может выполняться на клиенте или на сервере, и от этого зависит доступность объектов. Например, прямой запрос к данным через менеджеры объектов работает на сервере, а диалоги с пользователем — только на клиенте. Если консоль кода выполняет фрагмент «на клиенте», обращение к серверным механизмам завершится ошибкой.

Консоль кода — самый быстрый способ

Консоль кода — это внешняя обработка, которая предоставляет поле для ввода фрагмента на встроенном языке и кнопку выполнения. Подобные обработки входят в состав инструментов разработчика и распространяются свободно; в некоторых типовых конфигурациях есть встроенные аналоги. Открывается консоль стандартно: «Файл → Открыть» и выбор файла обработки с расширением .epf.

Порядок работы простой: вставьте код в поле, выберите режим выполнения (на клиенте или на сервере, если консоль это поддерживает) и нажмите «Выполнить». Результат выводится через Сообщить() или возвратом значения из функции. Для проверки выражения достаточно одной строки, например вывода текущей даты или количества элементов справочника.

bsl
Запрос = Новый Запрос("ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить("Элементов в справочнике: " + Выборка.Количество);

Консоль кода удобна для разовых операций: массовой установки реквизита, проверки запроса, исправления данных после нештатной ситуации. Ограничение — отсутствие полноценной отладки внутри самой консоли и зависимость от прав на открытие внешних файлов. В конфигурациях с включённым защищённым режимом открытие epf-файлов может быть запрещено политикой безопасности.

Запуск кода через внешние обработки и отчёты

Если код нужно запускать регулярно, его оформляют как внешнюю обработку — файл .epf с формой или модулем, содержащим нужный алгоритм. Обработку можно открывать вручную через «Файл → Открыть» либо подключить к подсистеме «Дополнительные отчеты и обработки» в типовых конфигурациях на базе БСП. Во втором случае обработка появляется в интерфейсе, получает кнопку запуска и может выполняться по расписанию.

При подключении через механизм дополнительных отчётов и обработок действуют ограничения безопасного режима: код выполняется с ограничением опасных операций, если не выдано разрешение. Для доработок, обращающихся к файловой системе или COM-объектам, администратору нужно явно разрешить эти операции в настройках подключения.

Порядок действий
  1. 1
    Сделайте резервную копию базы, если код меняет данные
  2. 2
    Откройте консоль кода или внешнюю обработку через «Файл → Открыть»
  3. 3
    Вставьте код и выберите режим выполнения (клиент или сервер)
  4. 4
    Сначала выполните код в режиме проверки: выведите список затрагиваемых объектов без записи
  5. 5
    Убедившись, что выборка верна, запустите код с записью изменений
  6. 6
    Проверьте результат на нескольких объектах вручную

Отладка в конфигураторе

Отладчик — основной инструмент, когда нужно не просто запустить код, а понять, как он работает. Отладка включается в конфигураторе: меню «Отладка → Начать отладку» или клавиша F5. Платформа запустит сеанс предприятия в режиме отладки, и выполнение остановится на установленных точках останова.

Чтобы отладить конкретный фрагмент, поставьте точку останова (F9) на нужной строке модуля и выполните в предприятии действие, которое вызывает этот код — проведите документ, нажмите кнопку, откройте форму. В момент остановки доступны табло переменных (Shift+F9), стек вызовов и пошаговое выполнение: F11 — с заходом в процедуры, F10 — через шаг.

Для отладки серверного кода в клиент-серверном варианте на сервере 1С должен быть разрешён режим отладки (параметр запуска агента сервера -debug). Без него серверные процедуры не остановятся на точках останова, и конфигуратор покажет, что предметы отладки недоступны. В файловом варианте дополнительная настройка не требуется.

Запуск кода в типовых конфигурациях без внешних файлов

Во многих типовых решениях есть штатные механизмы, которые позволяют выполнить обработку данных без программирования с нуля: групповое изменение реквизитов, универсальный подбор и обработка объектов, загрузка данных из табличного документа. Если задача — поменять реквизит у группы элементов, сначала проверьте, не решается ли она типовой обработкой: это безопаснее, поскольку такие инструменты показывают список изменяемых объектов до применения.

Для регламентного выполнения кода используются регламентные и фоновые задания. Разработчик добавляет метод в общий модуль и создаёт регламентное задание с расписанием — платформа будет запускать код автоматически. Проверить работу задания можно принудительным выполнением из консоли заданий или дождавшись ближайшего запуска по расписанию, контролируя результат в журнале регистрации.

Запуск 1С и внешних команд из командной строки

Платформа поддерживает запуск с параметрами командной строки, что позволяет автоматизировать выполнение кода без открытия интерфейса. Через параметр /Execute указывают внешнюю обработку, которая будет открыта при старте, а параметр /C передаёт произвольную строку, которую код обработки или конфигурации может разобрать. Так строят сценарии ночного обслуживания: пакетный файл запускает толстый клиент с обработкой, та выполняет алгоритм и завершает сеанс.

bat
"C:\Program Files\1cv8\8.3.хх.хххх\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /N"Администратор" /Execute"D:\Scripts\Обработка.epf" /C"ВыполнитьИВыйти"

Для конфигуратора существует пакетный режим с собственным набором команд: выгрузка и загрузка базы, обновление конфигурации, синтаксический контроль модулей. Пакетный запуск удобен для проверки кода на ошибки компиляции перед обновлением рабочей базы — конфигуратор вернёт код ошибки, если контроль не пройден.

Типичные ошибки при запуске кода

Типичные ошибки
01
Выполнение кода с записью данных сразу в рабочей базе — ошибка в логике приводит к массовой порче объектов без возможности отката
02
Запуск серверного кода в клиентском контексте консоли — обращение к менеджерам объектов завершается ошибкой «Операция не доступна»
03
Отсутствие транзакции при массовой обработке — при сбое на середине часть объектов изменена, часть нет, данные становятся несогласованными
04
Отладка на рабочем сервере без необходимости — точки останова останавливают серверные вызовы пользователей
05
Игнорирование журнала регистрации после фонового запуска — задание падает с ошибкой, а о проблеме узнают по отсутствию результата

Отдельная группа ошибок связана с правами. Если код выполняется под пользователем без прав на объект, метод Записать() вызовет исключение, а обращение к недоступному регистру — ошибку доступа. Перед массовой обработкой проверьте права на все задействованные объекты или выполняйте код под учётной записью с достаточными полномочиями, понимая риски.

Как проверить, что код отработал правильно

Признак корректного выполнения — не отсутствие ошибок, а подтверждённый результат. Для кода, изменяющего данные, проверку делают в два этапа: сначала выборочно открывают несколько обработанных объектов и сверяют значения, затем смотрят журнал регистрации на предмет ошибок и предупреждений за период выполнения.

Контрольные точки

Как проверить результат

Сообщения при выполнении
Норма

Выведены ожидаемые сообщения о количестве обработанных объектов

Тревожный признак

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

Данные после обработки
Норма

Значения реквизитов в выборочных объектах соответствуют задуманному

Тревожный признак

Значения не изменились или изменились у лишних объектов

Журнал регистрации
Норма

Нет ошибок за время выполнения кода

Тревожный признак

Записи об ошибках фоновых заданий или нарушении прав доступа

Для массовых операций полезно сначала выполнить код в режиме «только показать»: вместо записи вывести список объектов, которые попадут под изменение. Если список совпадает с ожиданиями, запускают реальную обработку. Такой двухпроходный подход занимает больше времени, но исключает самые тяжёлые последствия.

FAQ

Можно ли запустить код в 1С без конфигуратора и без внешних обработок?

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

Почему консоль кода не открывается в типовой конфигурации?

Наиболее частая причина — запрет интерактивного открытия внешних файлов в профиле группы доступа или включённый защищённый режим. Проверьте права пользователя и настройки безопасности; в некоторых случаях файл нужно добавить в список разрешённых в настройках базы.

Как выполнить код на сервере, если консоль работает только на клиенте?

Используйте консоль кода, поддерживающую серверное выполнение, либо оформите код как внешнюю обработку с серверной процедурой. Альтернатива — временный общий модуль с серверным вызовом в тестовой копии конфигурации.

Как отменить изменения, если код записал неверные данные?

Штатной «отмены» выполнения кода в 1С нет. Варианты: восстановление базы из резервной копии, обратная обработка (код, возвращающий прежние значения, если они были сохранены) или ручное исправление при малом числе объектов. Поэтому перед запуском делают копию и пробный прогон без записи.

Можно ли запускать код по расписанию без доработки конфигурации?

Да, двумя путями: подключить внешнюю обработку через «Дополнительные отчеты и обработки» с настройкой расписания (в конфигурациях на БСП) или запускать платформу из планировщика задач операционной системы с параметром /Execute, указывающим на обработку.

Почему отладчик не останавливается на точке останова в серверном коде?

В клиент-серверном варианте на сервере 1С должен быть включён режим отладки (параметр -debug агента сервера), иначе серверные вызовы не попадают под отладку. Также проверьте, что в настройках отладки конфигуратора отмечен нужный тип предметов отладки — «Сервер».

Итог

Что важно запомнить

Для разового запуска используйте консоль кода, для разработки — отладчик конфигуратора, для регулярных задач — внешние обработки и регламентные задания. Код, изменяющий данные, всегда проверяйте на копии базы и сначала выполняйте в режиме просмотра затрагиваемых объектов. Результат подтверждайте выборочной проверкой данных и журналом регистрации.