Разработка и Конфигурация · 11 мин
Как запустить код в 1С: способы выполнения кода для разработчика и администратора
Как запустить код в 1С: консоль кода, внешние обработки, отладка, выполнение через СКД и планировщик. Пошаговые инструкции, типичные ошибки и меры безопасности.
Запустить код в 1С можно несколькими способами — от простого выполнения фрагмента в консоли кода до полноценной отладки в конфигураторе. Выбор способа зависит от задачи: быстро проверить выражение, протестировать алгоритм, обработать данные в базе или запустить регламентное задание. У каждого варианта есть свои ограничения по правам, режиму работы и безопасности.
Главное правило перед любым запуском: код, который изменяет данные, сначала проверяют на копии базы. Встроенный язык 1С выполняется напрямую в информационной базе, и ошибочный цикл записи способен испортить тысячи объектов за секунды. Откатить такие изменения штатными средствами нельзя — только восстановлением из резервной копии.
Ниже разобраны рабочие способы запуска кода: консоль кода, внешние обработки, отладчик конфигуратора, выполнение через функционал типовых конфигураций и запуск из командной строки. Для каждого способа указаны условия применения и признаки успешного выполнения.
Что нужно проверить перед запуском кода
Прежде чем выполнять произвольный код, убедитесь, что у вашей учётной записи есть необходимые права. Для запуска внешних обработок и консоли кода нужны права на открытие внешних файлов, а для изменения данных — права на соответствующие объекты (справочники, документы, регистры). В типовых конфигурациях интерактивное открытие внешних файлов может быть заблокировано профилем безопасности.
Второе условие — свежая резервная копия базы, если код будет записывать или удалять данные. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей. Для клиент-серверной базы копию делают средствами СУБД или через выгрузку в dt из конфигуратора.
Третий момент — режим работы. Код может выполняться на клиенте или на сервере, и от этого зависит доступность объектов. Например, прямой запрос к данным через менеджеры объектов работает на сервере, а диалоги с пользователем — только на клиенте. Если консоль кода выполняет фрагмент «на клиенте», обращение к серверным механизмам завершится ошибкой.
Консоль кода — самый быстрый способ
Консоль кода — это внешняя обработка, которая предоставляет поле для ввода фрагмента на встроенном языке и кнопку выполнения. Подобные обработки входят в состав инструментов разработчика и распространяются свободно; в некоторых типовых конфигурациях есть встроенные аналоги. Открывается консоль стандартно: «Файл → Открыть» и выбор файла обработки с расширением .epf.
Порядок работы простой: вставьте код в поле, выберите режим выполнения (на клиенте или на сервере, если консоль это поддерживает) и нажмите «Выполнить». Результат выводится через Сообщить() или возвратом значения из функции. Для проверки выражения достаточно одной строки, например вывода текущей даты или количества элементов справочника.
Запрос = Новый Запрос("ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить("Элементов в справочнике: " + Выборка.Количество);Консоль кода удобна для разовых операций: массовой установки реквизита, проверки запроса, исправления данных после нештатной ситуации. Ограничение — отсутствие полноценной отладки внутри самой консоли и зависимость от прав на открытие внешних файлов. В конфигурациях с включённым защищённым режимом открытие epf-файлов может быть запрещено политикой безопасности.
Запуск кода через внешние обработки и отчёты
Если код нужно запускать регулярно, его оформляют как внешнюю обработку — файл .epf с формой или модулем, содержащим нужный алгоритм. Обработку можно открывать вручную через «Файл → Открыть» либо подключить к подсистеме «Дополнительные отчеты и обработки» в типовых конфигурациях на базе БСП. Во втором случае обработка появляется в интерфейсе, получает кнопку запуска и может выполняться по расписанию.
При подключении через механизм дополнительных отчётов и обработок действуют ограничения безопасного режима: код выполняется с ограничением опасных операций, если не выдано разрешение. Для доработок, обращающихся к файловой системе или COM-объектам, администратору нужно явно разрешить эти операции в настройках подключения.
- 1Сделайте резервную копию базы, если код меняет данные
- 2Откройте консоль кода или внешнюю обработку через «Файл → Открыть»
- 3Вставьте код и выберите режим выполнения (клиент или сервер)
- 4Сначала выполните код в режиме проверки: выведите список затрагиваемых объектов без записи
- 5Убедившись, что выборка верна, запустите код с записью изменений
- 6Проверьте результат на нескольких объектах вручную
Отладка в конфигураторе
Отладчик — основной инструмент, когда нужно не просто запустить код, а понять, как он работает. Отладка включается в конфигураторе: меню «Отладка → Начать отладку» или клавиша F5. Платформа запустит сеанс предприятия в режиме отладки, и выполнение остановится на установленных точках останова.
Чтобы отладить конкретный фрагмент, поставьте точку останова (F9) на нужной строке модуля и выполните в предприятии действие, которое вызывает этот код — проведите документ, нажмите кнопку, откройте форму. В момент остановки доступны табло переменных (Shift+F9), стек вызовов и пошаговое выполнение: F11 — с заходом в процедуры, F10 — через шаг.
Для отладки серверного кода в клиент-серверном варианте на сервере 1С должен быть разрешён режим отладки (параметр запуска агента сервера -debug). Без него серверные процедуры не остановятся на точках останова, и конфигуратор покажет, что предметы отладки недоступны. В файловом варианте дополнительная настройка не требуется.
Запуск кода в типовых конфигурациях без внешних файлов
Во многих типовых решениях есть штатные механизмы, которые позволяют выполнить обработку данных без программирования с нуля: групповое изменение реквизитов, универсальный подбор и обработка объектов, загрузка данных из табличного документа. Если задача — поменять реквизит у группы элементов, сначала проверьте, не решается ли она типовой обработкой: это безопаснее, поскольку такие инструменты показывают список изменяемых объектов до применения.
Для регламентного выполнения кода используются регламентные и фоновые задания. Разработчик добавляет метод в общий модуль и создаёт регламентное задание с расписанием — платформа будет запускать код автоматически. Проверить работу задания можно принудительным выполнением из консоли заданий или дождавшись ближайшего запуска по расписанию, контролируя результат в журнале регистрации.
Запуск 1С и внешних команд из командной строки
Платформа поддерживает запуск с параметрами командной строки, что позволяет автоматизировать выполнение кода без открытия интерфейса. Через параметр /Execute указывают внешнюю обработку, которая будет открыта при старте, а параметр /C передаёт произвольную строку, которую код обработки или конфигурации может разобрать. Так строят сценарии ночного обслуживания: пакетный файл запускает толстый клиент с обработкой, та выполняет алгоритм и завершает сеанс.
"C:\Program Files\1cv8\8.3.хх.хххх\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /N"Администратор" /Execute"D:\Scripts\Обработка.epf" /C"ВыполнитьИВыйти"Для конфигуратора существует пакетный режим с собственным набором команд: выгрузка и загрузка базы, обновление конфигурации, синтаксический контроль модулей. Пакетный запуск удобен для проверки кода на ошибки компиляции перед обновлением рабочей базы — конфигуратор вернёт код ошибки, если контроль не пройден.
Типичные ошибки при запуске кода
Отдельная группа ошибок связана с правами. Если код выполняется под пользователем без прав на объект, метод Записать() вызовет исключение, а обращение к недоступному регистру — ошибку доступа. Перед массовой обработкой проверьте права на все задействованные объекты или выполняйте код под учётной записью с достаточными полномочиями, понимая риски.
Как проверить, что код отработал правильно
Признак корректного выполнения — не отсутствие ошибок, а подтверждённый результат. Для кода, изменяющего данные, проверку делают в два этапа: сначала выборочно открывают несколько обработанных объектов и сверяют значения, затем смотрят журнал регистрации на предмет ошибок и предупреждений за период выполнения.
Как проверить результат
Выведены ожидаемые сообщения о количестве обработанных объектов
Ошибки компиляции, исключения, пустой вывод при ожидаемом результате
Значения реквизитов в выборочных объектах соответствуют задуманному
Значения не изменились или изменились у лишних объектов
Нет ошибок за время выполнения кода
Записи об ошибках фоновых заданий или нарушении прав доступа
Для массовых операций полезно сначала выполнить код в режиме «только показать»: вместо записи вывести список объектов, которые попадут под изменение. Если список совпадает с ожиданиями, запускают реальную обработку. Такой двухпроходный подход занимает больше времени, но исключает самые тяжёлые последствия.
FAQ
Можно ли запустить код в 1С без конфигуратора и без внешних обработок?
Да, если конфигурация содержит штатные инструменты: групповое изменение реквизитов, универсальные обработки, настраиваемые регламентные задания. Полностью произвольный код без внешних файлов выполнить нельзя — нужен либо модуль в конфигурации, либо обработка, либо консоль кода.
Почему консоль кода не открывается в типовой конфигурации?
Наиболее частая причина — запрет интерактивного открытия внешних файлов в профиле группы доступа или включённый защищённый режим. Проверьте права пользователя и настройки безопасности; в некоторых случаях файл нужно добавить в список разрешённых в настройках базы.
Как выполнить код на сервере, если консоль работает только на клиенте?
Используйте консоль кода, поддерживающую серверное выполнение, либо оформите код как внешнюю обработку с серверной процедурой. Альтернатива — временный общий модуль с серверным вызовом в тестовой копии конфигурации.
Как отменить изменения, если код записал неверные данные?
Штатной «отмены» выполнения кода в 1С нет. Варианты: восстановление базы из резервной копии, обратная обработка (код, возвращающий прежние значения, если они были сохранены) или ручное исправление при малом числе объектов. Поэтому перед запуском делают копию и пробный прогон без записи.
Можно ли запускать код по расписанию без доработки конфигурации?
Да, двумя путями: подключить внешнюю обработку через «Дополнительные отчеты и обработки» с настройкой расписания (в конфигурациях на БСП) или запускать платформу из планировщика задач операционной системы с параметром /Execute, указывающим на обработку.
Почему отладчик не останавливается на точке останова в серверном коде?
В клиент-серверном варианте на сервере 1С должен быть включён режим отладки (параметр -debug агента сервера), иначе серверные вызовы не попадают под отладку. Также проверьте, что в настройках отладки конфигуратора отмечен нужный тип предметов отладки — «Сервер».
Что важно запомнить
Для разового запуска используйте консоль кода, для разработки — отладчик конфигуратора, для регулярных задач — внешние обработки и регламентные задания. Код, изменяющий данные, всегда проверяйте на копии базы и сначала выполняйте в режиме просмотра затрагиваемых объектов. Результат подтверждайте выборочной проверкой данных и журналом регистрации.