Команды в 1С 8.3: где их вводить и как выполнить без ошибок

· 10 мин

Содержание

Строки ввода команд, как в терминале, у 1С нет. Команду пишут в одном из трёх мест: запрос к данным — в обработке «Консоль запросов», код на встроенном языке — во внешней обработке или в модуле Конфигуратора, а команды запуска — ключами к 1cv8.exe в ярлыке или bat-файле. Выполнить можно в режиме Предприятия через Файл → Открыть, если у пользователя есть права на открытие внешних обработок.

Что выбрать, зависит от задачи. Посмотреть или выгрузить данные — запрос. Что-то поменять в базе — код. Запустить базу с нужными параметрами или выгрузить её ночью по расписанию — командная строка. Всё описанное ниже относится к платформе 8.3 и работает одинаково в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях.

Три вида команд в 1С и когда какой нужен

Перед тем как писать, определите, к какому виду относится ваша задача. От этого зависит инструмент и права, которые понадобятся.

Вид командыЧем выполняютЧто умеетЧего не умеет
ЗапросКонсоль запросов, конструктор запросаЧитать данные, считать итоги, остатки, оборотыИзменять и удалять данные
Код на встроенном языкеВнешняя обработка, модуль, отладчикСоздавать, менять, удалять объекты, вызывать методыРаботать без прав на внешние обработки
Ключи командной строкиЯрлык, bat-файл, планировщик WindowsЗапуск базы, выгрузка .dt, обновление конфигурацииОбрабатывать данные внутри базы

Язык запросов 1С работает только на чтение. Аналогов UPDATE и DELETE из SQL в нём нет. Если нужно исправить данные, запрос служит лишь для отбора, а запись делает код.

Что понадобится до начала:

  • 🔑 пользователь с полными правами или с правом «Интерактивное открытие внешних обработок»;
  • 📁 файл обработки «Консоль запросов» в формате .epf для управляемых форм;
  • 💾 копия базы, если команда будет что-то менять;
  • 🧪 лучше всего — копия базы для экспериментов, а не рабочая.

Консоль запросов: открыть и выполнить первый запрос

Консоль запросов — внешняя обработка. В типовые конфигурации она не встроена. Фирма 1С распространяет её в пакете универсальных отчётов и обработок для платформы 8.3 на портале ИТС. Нужна версия для управляемых форм, иначе в интерфейсе «Такси» она не откроется корректно.

Как открыть

  1. Запустите базу в режиме 1С:Предприятие.
  2. Нажмите кнопку главного меню (три полоски в левом верхнем углу) и выберите Файл → Открыть. Или нажмите Ctrl+O.
  3. Укажите файл КонсольЗапросов.epf.
  4. Если платформа покажет предупреждение безопасности, подтвердите открытие только для файла, в источнике которого вы уверены.

Если пункта открытия файла нет или обработка не запускается с сообщением о нарушении прав, у пользователя нет права на открытие внешних обработок. Его выдаёт администратор базы через профиль групп доступа.

Как выполнить

  1. В окне консоли создайте новый запрос.
  2. Вставьте текст запроса в поле редактора или соберите его конструктором: правая кнопка мыши по полю текста → «Конструктор запроса».
  3. Если в тексте есть параметры вида &НаДату, заполните их на вкладке параметров.
  4. Нажмите «Выполнить». Результат появится в таблице под текстом.

Результат можно скопировать в Excel или сохранить. Сами запросы консоль хранит в отдельном файле — удобно собрать библиотеку проверок и открывать её по мере надобности.

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

Как написать запрос в 1С: синтаксис по шагам

Запрос состоит из предложений, которые всегда идут в одном порядке. Обязательны только два — ВЫБРАТЬ и ИЗ.

ПредложениеЧто делает
ВЫБРАТЬСписок полей, которые попадут в результат
ИЗТаблица-источник и её псевдоним после КАК
ГДЕУсловие отбора строк
СГРУППИРОВАТЬ ПОГруппировка для итогов СУММА, КОЛИЧЕСТВО
ИМЕЮЩИЕУсловие на уже сгруппированные итоги
УПОРЯДОЧИТЬ ПОСортировка, УБЫВ — по убыванию

Простой запрос к справочнику

Список действующих товаров без групп и без помеченных на удаление:

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Товар,
    Номенклатура.Артикул КАК Артикул
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ПометкаУдаления
    И НЕ Номенклатура.ЭтоГруппа
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование

Имя таблицы пишется как Справочник.ИмяОбъекта, Документ.ИмяОбъекта, РегистрНакопления.ИмяРегистра. Имя объекта — это его имя в метаданных, а не синоним из интерфейса. Поэтому Справочник.Номенклатура, а не «Справочник Номенклатура и услуги».

Запрос к остаткам с параметром

Для остатков и оборотов у регистров есть виртуальные таблицы: Остатки, Обороты, ОстаткиИОбороты. Пример для Бухгалтерии 3.0 — долги покупателей по счёту 62.01:

ВЫБРАТЬ
    Остатки.Субконто1 КАК Контрагент,
    Остатки.СуммаОстатокДт КАК Долг
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
        &НаДату,
        Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателями), ,
    ) КАК Остатки
ГДЕ
    Остатки.СуммаОстатокДт > 0
УПОРЯДОЧИТЬ ПО
    Долг УБЫВ

Параметр &НаДату задаётся отдельно. Остатки считаются на начало указанного момента. Чтобы попали движения всего дня, передайте конец дня, например 31.03.2026 23:59:59.

Условия на измерения пишите внутри скобок виртуальной таблицы, а не в ГДЕ. Платформа отберёт данные до расчёта остатков, и запрос отработает в разы быстрее на большой базе.

Пакет запросов и временные таблицы

Несколько запросов разделяют точкой с запятой. Промежуточный результат кладут во временную таблицу словом ПОМЕСТИТЬ, а следующий запрос пакета читает её как обычную таблицу. Это удобнее и быстрее вложенных запросов, когда отбор идёт в несколько этапов.

Как выполнить команду кодом в режиме Предприятия

Когда данные нужно изменить, нужен код на встроенном языке. Без Конфигуратора его выполняют через внешнюю обработку , которая принимает текст и передаёт его методу Выполнить().

Обработка «выполнить код» за пять минут

  1. В Конфигураторе: Файл → Новый → Внешняя обработка.
  2. Добавьте форму обработки.
  3. В реквизитах формы создайте реквизит ТекстКода, тип «Строка», неограниченной длины. Перетащите его на форму и в свойствах поля включите многострочный режим.
  4. Создайте команду формы ВыполнитьКод и выведите её кнопкой.
  5. В модуль формы вставьте код ниже и сохраните файл .epf.
&НаКлиенте
Процедура ВыполнитьКод(Команда)
    ВыполнитьКодНаСервере(ТекстКода);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ВыполнитьКодНаСервере(Знач Текст)
    Выполнить(Текст);
КонецПроцедуры

Код выполняется на сервере, поэтому в нём доступны менеджеры Справочники, Документы, РегистрыСведений и объект Запрос.

Пример безопасной команды

Сначала проверьте, что механизм работает, командой только на чтение:

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

Пример команды, которая меняет данные

Снять пометку удаления с одного элемента по коду:

Ссылка = Справочники.Номенклатура.НайтиПоКоду("00-00000123");
Если ЗначениеЗаполнено(Ссылка) Тогда
    Объект = Ссылка.ПолучитьОбъект();
    Объект.УстановитьПометкуУдаления(Ложь);
    Сообщить("Пометка снята: " + Объект.Наименование);
Иначе
    Сообщить("Элемент с таким кодом не найден");
КонецЕсли;

Метод УстановитьПометкуУдаления() сразу записывает объект. Отдельный Записать() не нужен.

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

Команды запуска 1С из командной строки

Исполняемый файл платформы — 1cv8.exe в папке bin конкретной версии, например C:\Program Files\1cv8\8.3.25.1374\bin\. Первым параметром указывают режим: ENTERPRISE — пользовательский, DESIGNER — Конфигуратор.

Основные ключи

КлючЧто делает
/F"путь"Файловая база, путь к папке с 1Cv8.1CD
/S"сервер\база"Клиент-серверная база
/N"имя" и /P"пароль"Пользователь и пароль
/Execute"файл.epf"Открыть внешнюю обработку сразу после запуска
/C"строка"Передать строку, в коде она читается через ПараметрЗапуска
/DumpIB"файл.dt"Выгрузить базу в .dt (режим DESIGNER)
/Out"файл.txt"Записать сообщения в журнал-файл
/DisableStartupDialogsНе показывать диалоги при запуске
/ClearCacheОчистить кэш клиента перед запуском

Запуск базы сразу с обработкой

Ярлык, который открывает базу и запускает вашу обработку:

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Бухгалтер" /P"" /Execute"D:\Tools\Proverka.epf"

Ночная выгрузка базы по расписанию

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"" /DumpIB"E:\Backup\buh_%date:~-4%%date:~3,2%%date:~0,2%.dt" /Out"E:\Backup\dump.log" /DisableStartupDialogs

Файл ставят в Планировщик заданий Windows на ночь. Выгрузка в .dt требует, чтобы в базе не было пользователей.

Если запустить выгрузку днём, работающие сеансы помешают ей, а принудительное завершение сеансов оборвёт работу бухгалтеров без сохранения. Ставьте задание на нерабочее время и предупредите пользователей.

Пароль в bat-файле лежит открытым текстом. Заведите для регламентных задач отдельного пользователя и ограничьте доступ к папке со скриптами.

Отладка: как найти, где команда ломается

Сообщение об ошибке в 1С всегда указывает место. Для запроса это строка и колонка: {(5, 5)}: Поле не найдено "Номенклатура.Артикл". Для кода — модуль и строка в фигурных скобках. Начинайте разбор с этих координат.

Пошаговая отладка в Конфигураторе

  1. Откройте модуль, поставьте курсор на нужную строку и нажмите F9 — появится точка останова.
  2. Запустите отладку клавишей F5. База откроется в режиме Предприятия.
  3. Выполните действие, которое вызывает код. Выполнение остановится на точке.
  4. Двигайтесь по строкам: F10 — шаг через процедуру, F11 — шаг внутрь, Shift+F11 — выйти из процедуры.
  5. Значение любой переменной смотрите в окне вычисления выражения (Shift+F9) или через табло.

В меню Отладка есть режим «Остановка по ошибке». Он останавливает выполнение прямо на строке, где возникло исключение, даже без точек останова.

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

Типичные ошибки и что с ними делать

Диагностика: выберите симптом

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

Внешние обработки и расширения для регулярных команд

Код, который вы запускаете раз в месяц, не стоит каждый раз вставлять вручную. Его оформляют в постоянный инструмент.

СпособКогда подходитНа что повлияет
Внешняя обработка .epfРазовые и редкие задачиНи на что: файл лежит отдельно от базы
Дополнительная обработка в БСПРегулярные задачи пользователей, запуск по расписаниюХранится в базе, обновлению не мешает
Расширение .cfeИзменить поведение типовой: кнопка, проверка, печатная формаТиповая остаётся на поддержке, но после обновления расширение надо проверить
Правка конфигурацииПочти никогда для типовойСнимает с поддержки, усложняет каждое обновление

Подключить обработку к базе

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) внешнюю обработку регистрируют в разделе Администрирование → Печатные формы, отчеты и обработки, флажок «Дополнительные отчеты и обработки» и одноимённый список. После регистрации обработка открывается из раздела программы, а если в её коде описан регламентный режим — запускается по расписанию без участия человека.

Чтобы обработка регистрировалась, в её модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(). Обычный «пустой» .epf из примера выше подойдёт только для открытия через Файл → Открыть.

Расширение конфигурации

Расширения появились в платформе 8.3.6. Они позволяют добавить команду или поменять код типового модуля, не снимая конфигурацию с поддержки. Порядок такой: Конфигурация → Расширения конфигурации в Конфигураторе, создать или загрузить .cfe, затем обновить конфигурацию базы данных. В режиме Предприятия расширения подключают через Администрирование → Печатные формы, отчеты и обработки → Расширения.

Перед запуском команды, меняющей данные
Выполнено: 0 / 5

Частые вопросы

Можно ли запросом удалить или изменить данные в 1С?
Нет. Язык запросов 1С умеет только читать. Изменения делают кодом: получают объект через ПолучитьОбъект(), меняют реквизиты и вызывают Записать().
Работает ли консоль запросов в базе 1С:Фреш или в облаке?
Только если провайдер разрешает открывать внешние обработки. В сервисе 1С:Фреш их нужно проверять и подключать через механизм дополнительных обработок, просто открыть файл нельзя.
Чем консоль запросов отличается от конструктора запроса?
Конструктор только собирает текст запроса, а консоль ещё и выполняет его и показывает результат. Конструктор встроен и в Конфигуратор, и в саму консоль.
Почему запрос в консоли работает, а в отчёте пользователя — нет?
Консоль часто запускают под администратором, у которого нет ограничений доступа на уровне записей. Пользователь с ограниченными правами увидит меньше строк или получит ошибку прав.
Можно ли выполнить код в 1С без Конфигуратора?
Да. Достаточно внешней обработки с полем для текста и методом Выполнить(). Конфигуратор нужен только один раз, чтобы её создать, или её можно взять готовой у разработчика.