Разработка и Конфигурация · 13 мин
Что такое параметры в 1С и как с ними работать
Что такое параметры в 1С: виды параметров отчётов, запросов и сеанса, как их задать и использовать. Практические примеры, ошибки и проверка результата.
Параметры в 1С — это именованные значения, которые передаются в объект или механизм платформы и влияют на его поведение: отбор записей в отчёте, условие в запросе, настройка сеанса пользователя, отбор динамического списка. Без параметров большинство отчётов и обработок работало бы «в лоб»: показывало бы все данные сразу, без возможности сузить выборку до нужного периода, организации или контрагента.
Слово «параметр» в 1С встречается сразу в нескольких контекстах, и новички часто их путают. Параметры отчёта на СКД, параметры запроса, параметры сеанса, параметры формы, параметры команды — это разные механизмы с разным назначением и разными местами настройки. Понимание различий позволяет быстро находить нужную настройку и не искать её «не там».
Материал рассчитан на пользователей, которые хотят понять, что означают параметры в отчётах и настройках, а также на начинающих разработчиков, которым нужно добавить параметр в запрос, СКД или форму. Разобраны основные виды параметров, способы их задания, типичные ошибки и способы проверки результата.
Что такое параметр в 1С простыми словами
Параметр — это переменная с именем, в которую помещается значение перед выполнением какого-либо действия. Например, отчёт «Продажи» принимает параметры «Начало периода» и «Конец периода»: платформа подставляет введённые даты в запрос, и в результат попадают только документы за указанный интервал. Без параметров пришлось бы создавать отдельный отчёт под каждый период.
Ключевая идея: параметр отделяет логику от конкретных данных. Запрос написан один раз, а значения подставляются при каждом выполнении. Это делает решения гибкими и защищает от ошибок: не нужно редактировать код, чтобы получить данные за другой месяц или по другому складу.
Важно отличать параметр от реквизита и от константы. Реквизит хранится в базе данных вместе с объектом, константа — единое значение для всей системы, а параметр существует только в момент выполнения: передал значение — получил результат.
Основные виды параметров в 1С
В платформе 1С:Предприятие 8 параметры встречаются в нескольких механизмах. Ниже — те, с которыми сталкиваются чаще всего.
- Параметры отчётов на СКД — период, организация, контрагент и другие отборы, которые пользователь видит в форме настроек отчёта.
- Параметры запроса — значения, подставляемые в текст запроса через амперсанд, например
&Период. - Параметры сеанса — значения, действующие в течение сеанса пользователя: текущая организация, ответственный, настройки учёта.
- Параметры формы — значения, передаваемые при открытии формы: ключ записи, режим открытия, отбор списка.
- Параметры команды — объект или ссылка, для которой выполняется команда (печать, обработка).
- Параметры виртуальных таблиц — период и условия для таблиц остатков и оборотов регистров.
Где какие параметры применяются
Подходят для отчётов, которые настраивает пользователь без программирования. Ограничение: работают только внутри схемы компоновки.
Универсальный механизм для любых выборок в коде. Требуют умения писать текст запроса.
Для глобальных настроек, влияющих на весь сеанс. Изменение требует прав и перечитывания данных.
Для передачи контекста при открытии форм. Действуют только в момент открытия.
Параметры отчётов на СКД: где задаются и как использовать
Система компоновки данных (СКД) — основной механизм отчётов в типовых конфигурациях. Параметры отчёта объявляются в схеме компоновки на закладке «Параметры» в конфигураторе: там указываются имя, тип, значение по умолчанию и ограничения. Пользователь видит эти параметры в форме отчёта в разделе настроек.
Стандартные параметры периода («НачалоПериода», «КонецПериода») в типовых отчётах обычно объединены в элемент «Период» с типом «Стандартный период». Это удобно: пользователь выбирает «Текущий месяц» или «Произвольный период», а платформа сама раскладывает его на две даты.
Как пользователю изменить параметры отчёта
В большинстве типовых отчётов параметры доступны по кнопке «Настройки» или «Показать настройки». Откроется панель, где можно изменить период, выбрать организацию, добавить отбор по нужному полю. После изменения параметров отчёт нужно сформировать заново — кнопкой «Сформировать».
- 1Откройте отчёт и нажмите кнопку «Настройки» или «Показать настройки».
- 2Найдите нужный параметр: период, организация, контрагент и т.п.
- 3Установите значение или выберите из списка; для отборов отметьте флажок использования.
- 4Нажмите «Закрыть и сформировать» или «Сформировать».
- 5Проверьте, что данные в отчёте соответствуют заданным условиям.
Если параметр не отображается в настройках, возможны две причины: он помечен разработчиком как недоступный пользователю, либо отчёт открыт в «быстром» режиме настроек. Переключение на расширенный режим настроек обычно показывает все доступные параметры и отборы.
Параметры запроса: синтаксис и примеры
В языке запросов 1С параметр обозначается амперсандом перед именем: &Организация, &НачалоПериода. Перед выполнением запроса каждому параметру нужно присвоить значение методом УстановитьПараметр, иначе платформа выдаст ошибку «Параметр не установлен».
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Продажи.Номенклатура,
| СУММА(Продажи.СуммаОборот) КАК Сумма
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , Организация = &Организация) КАК Продажи
|СГРУППИРОВАТЬ ПО Продажи.Номенклатура";
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("Организация", Организация);
Результат = Запрос.Выполнить();Обратите внимание на параметры виртуальных таблиц: у таблицы «Обороты» регистра накопления они указываются в скобках после имени таблицы. Пропуск параметра обозначается запятой без значения — тогда условие не применяется. Это частый источник ошибок: если забыть параметр организации, отчёт покажет данные по всем организациям базы.
Для отбора по списку значений (например, по нескольким складам) параметру присваивают массив или список значений, а в запросе используют оператор В (&СписокСкладов). Это корректный способ, а не конкатенация строк в текст запроса — склейка текста опасна ошибками и через неё возможно внедрение произвольного кода запроса.
Параметры сеанса и параметры форм
Параметры сеанса — это значения, которые устанавливаются при входе пользователя и действуют до конца сеанса. Типичные примеры: текущий пользователь, основная организация, признак использования разделения данных. Они объявляются в конфигураторе в ветке «Общие → Параметры сеанса», а их заполнение обычно выполняется в обработчике УстановкаПараметровСеанса модуля сеанса.
Параметры сеанса удобны для отборов, которые не должны «сбрасываться» при каждом действии: например, в разделённой базе отбор по области данных выполняется автоматически через параметр сеанса. Менять такие параметры из прикладного кода следует осторожно — они влияют на все выборки, где используются.
Параметры формы передаются при её открытии через структуру параметров. Например, при открытии списка документов можно передать отбор по контрагенту, а при открытии элемента справочника — ключ записи. В модуле формы эти значения доступны через свойство Параметры в обработчике ПриСозданииНаСервере.
Как проверить, что параметр работает правильно
После настройки параметра полезно убедиться, что он действительно влияет на результат, а не просто присутствует в интерфейсе. Самый простой тест: задать заведомо узкое условие (например, один день и один контрагент) и проверить, что в отчёт попали только соответствующие записи.
Как проверить результат
Показаны только записи, подходящие под условие
В отчёте данные за другие периоды или по другим организациям
Показан полный набор данных
Отчёт пустой, хотя данные в базе есть — возможно, параметр не установлен
Выполняется без ошибки «Параметр не установлен»
Ошибка при выполнении — параметр объявлен в тексте, но не установлен
Значение выбирается из правильного справочника
Поле принимает произвольный текст — тип не задан или задан неверно
Для отладки запросов удобна консоль запросов (внешняя обработка): она показывает список параметров из текста запроса и позволяет заполнить их вручную перед выполнением. Так можно проверить корректность текста запроса отдельно от прикладного кода.
Типичные ошибки при работе с параметрами
Большинство проблем с параметрами сводится к нескольким повторяющимся ситуациям. Их знание экономит часы отладки.
Отдельно стоит сказать о датах. В 1С дата хранится с точностью до секунды, поэтому сравнение «меньше или равно 31.01» без указания времени отсекает все документы после 00:00:00 этого дня. Правильные варианты: использовать функцию КонецДня(), стандартный период в СКД (он сам корректно обрабатывает границы) или границу с видом «Включая».
Если отчёт на СКД показывает пустой результат, первым делом проверьте не текст запроса, а установленные значения параметров и включённые отборы в настройках. В большинстве случаев причина именно в них: снят флажок использования отбора или в параметре пустая ссылка.
Когда стоит обратиться к разработчику
Пользовательские задачи — изменить период, добавить отбор, сохранить вариант отчёта — решаются штатными настройками без программирования. Но есть ситуации, где требуется доработка конфигурации: добавить новый параметр в типовой отчёт, сделать параметр обязательным, изменить значение по умолчанию, добавить параметр сеанса.
Как выбрать действие
Любые изменения конфигурации выполняйте только на копии базы и с резервной копией. Изменение параметров сеанса и типовых отчётов затрагивает логику учёта, и ошибка может исказить данные у всех пользователей.
Что важно запомнить
Параметры в 1С — это передаваемые значения, управляющие отчётами, запросами, формами и сеансом. Пользователю достаточно уметь менять параметры в настройках отчёта; разработчику — правильно объявлять и устанавливать их в запросе и СКД. Главные правила: всегда устанавливать параметры перед выполнением запроса, следить за типами и границами дат, не подставлять значения в текст запроса строкой.
Частые вопросы о параметрах 1С
Чем параметр отличается от отбора в отчёте?
Параметр обычно влияет на сам запрос к данным (например, границы периода виртуальной таблицы), а отбор — на фильтрацию уже полученного результата. Параметры эффективнее по производительности: они ограничивают выборку на уровне обращения к таблице. В настройках СКД оба элемента выглядят похоже, но работают на разных этапах.
Почему возникает ошибка «Параметр не установлен»?
В тексте запроса или схеме компоновки используется параметр, которому не присвоено значение через УстановитьПараметр до выполнения. Проверьте, что имена совпадают точно (без амперсанда в методе установки) и что установка выполняется до вызова Выполнить().
Можно ли передать в параметр список значений?
Да. Параметру присваивается массив или список значений, а в запросе используется оператор В: Номенклатура В (&СписокНоменклатуры). Это штатный и безопасный способ отбора по нескольким значениям.
Где посмотреть параметры типового отчёта?
В пользовательском режиме — в настройках отчёта (кнопка «Настройки»), включая расширенный режим. В конфигураторе — в схеме компоновки данных отчёта на закладках «Параметры» и «Настройки». Там же видны значения по умолчанию и ограничения доступности.
Что такое стандартный период в параметрах отчёта?
Это специальный тип, который объединяет дату начала и дату окончания в один элемент настройки. Пользователь выбирает готовый вариант (день, месяц, квартал) или произвольный интервал, а платформа сама раскладывает его на два параметра и корректно обрабатывает границы дат.
Опасно ли менять параметры сеанса?
Да, если делать это из прикладного кода без понимания последствий: параметры сеанса влияют на все отборы и отчёты, где используются, и на всех пользователей в рамках своего сеанса. Менять их следует только через предусмотренные конфигурацией механизмы настройки, а доработки — тестировать на копии базы.