Команды в 1С 8.3: где их вводить и как выполнить без ошибок
Содержание
Строки ввода команд, как в терминале, у 1С нет. Команду пишут в одном из трёх мест: запрос к данным — в обработке «Консоль запросов», код на встроенном языке — во внешней обработке или в модуле Конфигуратора, а команды запуска — ключами к 1cv8.exe в ярлыке или bat-файле. Выполнить можно в режиме Предприятия через Файл → Открыть, если у пользователя есть права на открытие внешних обработок.
Что выбрать, зависит от задачи. Посмотреть или выгрузить данные — запрос. Что-то поменять в базе — код. Запустить базу с нужными параметрами или выгрузить её ночью по расписанию — командная строка. Всё описанное ниже относится к платформе 8.3 и работает одинаково в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях.
Три вида команд в 1С и когда какой нужен
Перед тем как писать, определите, к какому виду относится ваша задача. От этого зависит инструмент и права, которые понадобятся.
| Вид команды | Чем выполняют | Что умеет | Чего не умеет |
|---|---|---|---|
| Запрос | Консоль запросов, конструктор запроса | Читать данные, считать итоги, остатки, обороты | Изменять и удалять данные |
| Код на встроенном языке | Внешняя обработка, модуль, отладчик | Создавать, менять, удалять объекты, вызывать методы | Работать без прав на внешние обработки |
| Ключи командной строки | Ярлык, bat-файл, планировщик Windows | Запуск базы, выгрузка .dt, обновление конфигурации | Обрабатывать данные внутри базы |
Язык запросов 1С работает только на чтение. Аналогов UPDATE и DELETE из SQL в нём нет. Если нужно исправить данные, запрос служит лишь для отбора, а запись делает код.
Что понадобится до начала:
- 🔑 пользователь с полными правами или с правом «Интерактивное открытие внешних обработок»;
- 📁 файл обработки «Консоль запросов» в формате
.epfдля управляемых форм; - 💾 копия базы, если команда будет что-то менять;
- 🧪 лучше всего — копия базы для экспериментов, а не рабочая.
Консоль запросов: открыть и выполнить первый запрос
Консоль запросов — внешняя обработка. В типовые конфигурации она не встроена. Фирма 1С распространяет её в пакете универсальных отчётов и обработок для платформы 8.3 на портале ИТС. Нужна версия для управляемых форм, иначе в интерфейсе «Такси» она не откроется корректно.
Как открыть
- Запустите базу в режиме 1С:Предприятие.
- Нажмите кнопку главного меню (три полоски в левом верхнем углу) и выберите
Файл → Открыть. Или нажмитеCtrl+O. - Укажите файл
КонсольЗапросов.epf. - Если платформа покажет предупреждение безопасности, подтвердите открытие только для файла, в источнике которого вы уверены.
Если пункта открытия файла нет или обработка не запускается с сообщением о нарушении прав, у пользователя нет права на открытие внешних обработок. Его выдаёт администратор базы через профиль групп доступа.
Как выполнить
- В окне консоли создайте новый запрос.
- Вставьте текст запроса в поле редактора или соберите его конструктором: правая кнопка мыши по полю текста → «Конструктор запроса».
- Если в тексте есть параметры вида
&НаДату, заполните их на вкладке параметров. - Нажмите «Выполнить». Результат появится в таблице под текстом.
Результат можно скопировать в Excel или сохранить. Сами запросы консоль хранит в отдельном файле — удобно собрать библиотеку проверок и открывать её по мере надобности.
Конструктор запроса — самый быстрый способ не ошибиться в именах таблиц и полей. Он показывает дерево всех объектов базы, и опечатка в имени реквизита просто невозможна.
Как написать запрос в 1С: синтаксис по шагам
Запрос состоит из предложений, которые всегда идут в одном порядке. Обязательны только два — ВЫБРАТЬ и ИЗ.
| Предложение | Что делает |
|---|---|
ВЫБРАТЬ | Список полей, которые попадут в результат |
ИЗ | Таблица-источник и её псевдоним после КАК |
ГДЕ | Условие отбора строк |
СГРУППИРОВАТЬ ПО | Группировка для итогов СУММА, КОЛИЧЕСТВО |
ИМЕЮЩИЕ | Условие на уже сгруппированные итоги |
УПОРЯДОЧИТЬ ПО | Сортировка, УБЫВ — по убыванию |
Простой запрос к справочнику
Список действующих товаров без групп и без помеченных на удаление:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Товар,
Номенклатура.Артикул КАК Артикул
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ПометкаУдаления
И НЕ Номенклатура.ЭтоГруппа
УПОРЯДОЧИТЬ ПО
Номенклатура.Наименование
Имя таблицы пишется как Справочник.ИмяОбъекта, Документ.ИмяОбъекта, РегистрНакопления.ИмяРегистра. Имя объекта — это его имя в метаданных, а не синоним из интерфейса. Поэтому Справочник.Номенклатура, а не «Справочник Номенклатура и услуги».
Запрос к остаткам с параметром
Для остатков и оборотов у регистров есть виртуальные таблицы: Остатки, Обороты, ОстаткиИОбороты. Пример для Бухгалтерии 3.0 — долги покупателей по счёту 62.01:
ВЫБРАТЬ
Остатки.Субконто1 КАК Контрагент,
Остатки.СуммаОстатокДт КАК Долг
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
&НаДату,
Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателями), ,
) КАК Остатки
ГДЕ
Остатки.СуммаОстатокДт > 0
УПОРЯДОЧИТЬ ПО
Долг УБЫВ
Параметр &НаДату задаётся отдельно. Остатки считаются на начало указанного момента. Чтобы попали движения всего дня, передайте конец дня, например 31.03.2026 23:59:59.
Условия на измерения пишите внутри скобок виртуальной таблицы, а не в ГДЕ. Платформа отберёт данные до расчёта остатков, и запрос отработает в разы быстрее на большой базе.
Пакет запросов и временные таблицы
Несколько запросов разделяют точкой с запятой. Промежуточный результат кладут во временную таблицу словом ПОМЕСТИТЬ, а следующий запрос пакета читает её как обычную таблицу. Это удобнее и быстрее вложенных запросов, когда отбор идёт в несколько этапов.
Как выполнить команду кодом в режиме Предприятия
Когда данные нужно изменить, нужен код на встроенном языке. Без Конфигуратора его выполняют через внешнюю обработку
, которая принимает текст и передаёт его методу Выполнить().
Обработка «выполнить код» за пять минут
- В Конфигураторе:
Файл → Новый → Внешняя обработка. - Добавьте форму обработки.
- В реквизитах формы создайте реквизит
ТекстКода, тип «Строка», неограниченной длины. Перетащите его на форму и в свойствах поля включите многострочный режим. - Создайте команду формы
ВыполнитьКоди выведите её кнопкой. - В модуль формы вставьте код ниже и сохраните файл
.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)}: Поле не найдено "Номенклатура.Артикл". Для кода — модуль и строка в фигурных скобках. Начинайте разбор с этих координат.
Пошаговая отладка в Конфигураторе
- Откройте модуль, поставьте курсор на нужную строку и нажмите
F9— появится точка останова. - Запустите отладку клавишей
F5. База откроется в режиме Предприятия. - Выполните действие, которое вызывает код. Выполнение остановится на точке.
- Двигайтесь по строкам:
F10— шаг через процедуру,F11— шаг внутрь,Shift+F11— выйти из процедуры. - Значение любой переменной смотрите в окне вычисления выражения (
Shift+F9) или через табло.
В меню Отладка есть режим «Остановка по ошибке». Он останавливает выполнение прямо на строке, где возникло исключение, даже без точек останова.
В клиент-серверной базе серверный код отлаживается, только если сервер 1С разрешает отладку (служба запущена с ключом -debug). Иначе точки останова в серверных процедурах просто не сработают. Перезапуск службы сервера оборвёт все сеансы — меняйте настройку вне рабочего времени.
Типичные ошибки и что с ними делать
Если ошибка возникла без отладчика, загляните в журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отфильтруйте события по уровню «Ошибка» и по пользователю — там будет полный текст исключения и время.
Внешние обработки и расширения для регулярных команд
Код, который вы запускаете раз в месяц, не стоит каждый раз вставлять вручную. Его оформляют в постоянный инструмент.
| Способ | Когда подходит | На что повлияет |
|---|---|---|
Внешняя обработка .epf | Разовые и редкие задачи | Ни на что: файл лежит отдельно от базы |
| Дополнительная обработка в БСП | Регулярные задачи пользователей, запуск по расписанию | Хранится в базе, обновлению не мешает |
Расширение .cfe | Изменить поведение типовой: кнопка, проверка, печатная форма | Типовая остаётся на поддержке, но после обновления расширение надо проверить |
| Правка конфигурации | Почти никогда для типовой | Снимает с поддержки, усложняет каждое обновление |
Подключить обработку к базе
В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) внешнюю обработку регистрируют в разделе Администрирование → Печатные формы, отчеты и обработки, флажок «Дополнительные отчеты и обработки» и одноимённый список. После регистрации обработка открывается из раздела программы, а если в её коде описан регламентный режим — запускается по расписанию без участия человека.
Чтобы обработка регистрировалась, в её модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(). Обычный «пустой» .epf из примера выше подойдёт только для открытия через Файл → Открыть.
Расширение конфигурации
Расширения появились в платформе 8.3.6. Они позволяют добавить команду или поменять код типового модуля, не снимая конфигурацию с поддержки. Порядок такой: Конфигурация → Расширения конфигурации в Конфигураторе, создать или загрузить .cfe, затем обновить конфигурацию базы данных. В режиме Предприятия расширения подключают через Администрирование → Печатные формы, отчеты и обработки → Расширения.