Работа с параметрами в 1С:Предприятие — одна из самых частых задач, с которыми сталкиваются и разработчики, и обычные пользователи. От корректной настройки параметров зависит всё: от отображения отчётов до автоматизации бизнес-процессов. Но как именно их задавать? Где искать нужные настройки? И почему иногда параметры, заданные в одном месте, не работают в другом?

В этой статье мы разберём 5 основных способов задания параметров в 1С 8.3 и 1С 8.2 — от простых настроек через интерфейс до программного управления через встроенный язык. Вы узнаете, как:

  • 🔧 Настраивать параметры сеанса для временных данных
  • 📝 Использовать параметры запуска при старте 1С
  • 💻 Работать с параметрами через конфигуратор и код
  • 📊 Передавать параметры в отчёты и обработки
  • ⚙️ Сохранять настройки в информационной базе на постоянной основе

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

📊 Как часто вы работаете с параметрами в 1С?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не работал

1. Что такое параметры в 1С и зачем они нужны

Параметры в 1С:Предприятие — это динамические значения, которые влияют на поведение системы, отчётов, обработок или отдельных алгоритмов. Они позволяют:

  • 🔄 Гибко настраивать логику работы без изменения кода
  • 📌 Передавать данные между формами, отчётами и модулями
  • 🔒 Ограничивать доступ к определённым функциям для разных пользователей
  • 📈 Оптимизировать производительность за счёт кэширования часто используемых значений

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

Важно понимать, что параметры бывают:

  • Локальные — действуют только в рамках одного сеанса или модуля (например, переменные в функции).
  • Глобальные — доступны во всей информационной базе (например, настройки, сохранённые в справочнике Константы).
  • Параметры запуска — передаются при старте 1С извне (например, через командную строку).
⚠️ Внимание: Не путайте параметры с реквизитами объектов (справочников, документов). Реквизиты — это атрибуты конкретных записей (например, Наименование товара), а параметры — временные или системные настройки.

2. Способ 1: Задание параметров через интерфейс пользователя

Самый простой способ — использовать стандартные формы . Большинство обработок и отчётов имеют поля для ввода параметров. Например, в отчёте Оборотно-сальдовая ведомость можно задать:

  • 📅 Период (начало и конец)
  • 🏢 Организацию
  • 📊 Вариант отбора (по счётам, субконто и т.д.)

Как это сделать:

  1. Откройте нужный отчёт через меню Отчёты → Стандартные отчёты.
  2. В форме отчёта найдите блок Настройки или Параметры.
  3. Заполните требуемые поля (например, установите даты в календаре).
  4. Нажмите Сформировать.

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

💡

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

Тип параметра Где задаётся Пример использования
Период Форма отчёта, поле"Период" Отчёт по продажам за 01.01.2026–31.03.2026
Организация Форма отчёта, поле"Организация" Данные только по ООО"Ромашка"
Отбор по счёту Раздел"Отбор" в настройках Показать только операции по счёту 62.01
Вариант оформления Кнопка"Ещё → Вариант оформления" Экспорт в Excel с группировкой по месяцам

3. Способ 2: Параметры сеанса (глобальные переменные)

Параметры сеанса — это значения, которые хранятся в памяти на время работы пользователя. Они доступны во всех модулях текущего сеанса и сбрасываются после закрытия программы. Их удобно использовать для:

  • 🔑 Передачи данных между формами (например, выбранный в одной форме документ открывается в другой).
  • 📋 Хранения временных настроек (например, последний использованный фильтр).
  • 🛠 Тестирования функционала без изменения базы.

Как задать параметр сеанса:

// Установить параметр сеанса

ПараметрыСеанса = Новый Структура;

ПараметрыСеанса.Вставить("ТекущийСклад", Справочники.Склады.НайтиПоНаименованию("Основной"));

ПараметрыСеанса.Вставить("РежимОтладки", Истина);

// Получить параметр сеанса в другом модуле

ТекущийСклад = ПараметрыСеанса.ТекущийСклад;

Чтобы просмотреть все текущие параметры сеанса, откройте Отладка → Параметры сеанса в конфигураторе.

⚠️ Внимание: Параметры сеанса не сохраняются в базе данных! Если пользователь закроет 1С, все значения будут утеряны. Для постоянного хранения используйте Константы или Регистры сведений.

Имя параметра уникально (не совпадает с существующими)|

Значение сериализуемо (можно передать в структуре)|

Параметр очищается после использования (если не нужен дальше)|

Проверена работа в многопользовательском режиме-->

4. Способ 3: Параметры запуска 1С (командная строка)

Параметры запуска позволяют передавать данные в извне — например, при автоматическом старте через планировщик задач или при интеграции с другими системами. Они указываются при запуске файла 1cv8.exe или 1cv8c.exe (для клиент-серверного варианта).

Синтаксис:

"C:\Program Files\1cv8\8.3.24.1299\bin\1cv8.exe" Enterprise /IBName"DemoBase" /N"Администратор" /P"123" /Execute"Обработка.ЗагрузкаДанных" /C"ПутьКФайлу=D:\import\data.xml;Режим=Полная"

Расшифровка ключей:

  • /IBName — имя информационной базы.
  • /N — имя пользователя.
  • /P — пароль.
  • /Execute — обработка для выполнения.
  • /C — параметры, передаваемые в обработку (разделяются точкой с запятой).

Внутри обработки параметры можно получить так:

ПараметрыЗапуска = Новый Структура;

Для Каждого Параметр Из КоманднаяСтрокаПараметры Цикл

Если Лев(Параметр, 2) ="/C" Тогда

МассивПараметров = РазложитьСтрокуВМассивСтрок(СокрЛП(Сред(Параметр, 3)),";");

Для Каждого Элемент Из МассивПараметров Цикл

Пары = РазложитьСтрокуВМассивСтрок(Элемент,"=");

ПараметрыЗапуска.Вставить(Пары[0], Пары[1]);

КонецЦикла;

КонецЕсли;

КонецЦикла;

⚠️ Внимание: При передаче паролей через командную строку они отображаются в открытом виде в Диспетчере задач. Для безопасности используйте 1C:Enterprise с шифрованием или хранилище паролей.
Пример интеграции с Python

Чтобы запустить 1С из скрипта на Python с передачей параметров, используйте модуль subprocess:

import subprocess

command = [

r"C:\Program Files\1cv8\8.3.24.1299\bin\1cv8.exe",

"Enterprise",

"/IBName","DemoBase",

"/N","Администратор",

"/P","123",

"/Execute","Обработка.ЭкспортДанных",

"/C","Формат=JSON;Путь=C:\export\data.json"

]

subprocess.run(command)

5. Способ 4: Программное задание параметров через код

Для гибкой настройки параметров в коде используются:

  • 📌 Константы — для хранения постоянных настроек (например, КурсДоллара).
  • 📊 Регистры сведений — для истории изменений (например, КурсыВалют по датам).
  • 🔧 Хранилище значений — для сложных данных (например, настройки отчётов в виде XML).

Константы — единственный объект в 1С, который гарантированно доступен во всех сеансах и не требует дополнительных прав для чтения. Пример работы с константой:

// Установить значение константы

Константы.КурсДоллара.Установить(75.50);

// Получить значение константы

ТекущийКурс = Константы.КурсДоллара.Получить;

Для временных параметров внутри модуля используйте переменные или структуры:

Перем мНастройкиОтчёта;

// При инициализации

мНастройкиОтчёта = Новый Структура;

мНастройкиОтчёта.Вставить("ЦветФона", RGB(240, 240, 240));

мНастройкиОтчёта.Вставить("Шрифт", Новый Шрифт("Arial", 10));

// Использование

ФонЯчейки = мНастройкиОтчёта.ЦветФона;

💡

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

6. Способ 5: Передача параметров в отчёты и обработки

При открытии отчёта или обработки через код можно передавать параметры напрямую. Например, чтобы сформировать отчёт ВедомостьПоТоварам с фильтром по складу:

ПараметрыОтчёта = Новый Структура;

ПараметрыОтчёта.Вставить("Склад", Справочники.Склады.Основной);

ПараметрыОтчёта.Вставить("ДатаНачала", НачалоДня(ТекущаяДата));

ПараметрыОтчёта.Вставить("ДатаОкончания", КонецДня(ТекущаяДата));

// Открыть отчёт с параметрами

ОткрытьФормуМодально("Отчёт.ВедомостьПоТоварам.ФормаОтчёта", ПараметрыОтчёта);

Внутри отчёта параметры доступны через свойство Параметры:

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ТекущийСклад = Параметры.Склад;

ДатаНачала = Параметры.ДатаНачала;

КонецПроцедуры

Для передачи параметров между формами используйте метод ОткрытьФорму с дополнительным аргументом:

НоваяФорма = ОткрытьФорму("Документ.ЗаказПокупателя.ФормаОбъекта",, Истина,,

Новый Структура("Клиент,Менеджер", Справочники.Контрагенты.ИвановИИ, ТекущийПользователь));

7. Типичные ошибки при работе с параметрами

Даже опытные разработчики иногда сталкиваются с проблемами из-за некорректной работы с параметрами. Вот самые распространённые ошибки:

  • 🔴 Использование неинициализированных параметров — попытка прочитать значение, которое не было установлено, приводит к ошибке {ОбщийМодуль.Модуль1.Модуль(12)}: Переменная не определена (ПараметрХ).
  • 🔴 Конфликт имён параметров сеанса — если два модуля используют одинаковое имя (например, ТекущийДокумент), одно значение затрёт другое.
  • 🔴 Передача несериализуемых объектов — попытка сохранить в ХранилищеЗначения форму или менеджер значения вызовет ошибку.
  • 🔴 Игнорирование прав доступа — если пользователь не имеет прав на чтение константы или регистра, параметр не будет прочитан.

Как избежать ошибок:

  1. Всегда проверяйте существование параметра перед использованием:
    Если ПараметрыСеанса.Свойство("ТекущийСклад") Тогда
    

    Склад = ПараметрыСеанса.ТекущийСклад;

    Иначе

    Склад = Справочники.Склады.Основной;

    КонецЕсли;

  2. Используйте уникальные префиксы для имён параметров сеанса (например, мод_Заказы_ТекущийДокумент).
  3. Для сложных данных используйте ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр.
⚠️ Внимание: При работе с Регистрами сведений в качестве хранилища параметров учитывайте, что чтение данных из регистра может быть медленнее, чем из константы, особенно при больших объёмах данных.

8. Продвинутые техники: динамические параметры и кэширование

Для оптимизации производительности можно использовать:

  • 🚀 Кэширование параметров — сохранение часто используемых значений в памяти для ускорения доступа.
  • 🔄 Динамические параметры — значения, которые автоматически обновляются при изменении исходных данных (например, курс валюты из внешнего источника).
  • 📡 Подписка на события — реакция на изменение параметров в реальном времени.

Пример кэширования курса валюты:

Перем мКурсыВалютКэш;

// Функция для получения курса с кэшированием

Функция ПолучитьКурсВалюты(Валюта, Дата)

Если мКурсыВалютКэш = Неопределено Тогда

мКурсыВалютКэш = Новый Соответствие;

КонецЕсли;

КлючКэша = Валюта.УникальныйИдентификатор +"|" + Формат(Дата,"ДЛФ=DT");

Если мКурсыВалютКэш.Свойство(КлючКэша) Тогда

Возврат мКурсыВалютКэш[КлючКэша];

Иначе

Курс = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Валюта);

мКурсыВалютКэш.Вставить(КлючКэша, Курс);

Возврат Курс;

КонецЕсли;

КонецФункции

Для динамического обновления параметров используйте механизм Оповещение:

// Подписаться на изменение константы

Подписка = ПодписатьсяНаСобытие(Константы.КурсДоллара,"ПриИзменении","ОбновитьКурсыВОтчётах");

// Обработчик события

Процедура ОбновитьКурсыВОтчётах(Источник, Параметры) Экспорт

Сообщить("Курс доллара изменился! Новое значение:" + Константы.КурсДоллара.Получить);

КонецПроцедуры

FAQ: Ответы на частые вопросы

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

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

  1. Создать обработку, которая будет открывать отчёт с нужными параметрами.
  2. Использовать параметры сеанса — установить их перед открытием отчёта, а в отчёте прочитать.
  3. Настроить варианты отчёта — сохранить часто используемые комбинации параметров.
Можно ли передавать параметры между разными информационными базами?

Прямой передачи параметров между базами нет, но есть обходные пути:

  • 📤 Экспорт/импорт через файлы (JSON, XML, TXT).
  • 🌐 Обмен через веб-сервисы (HTTP-запросы).
  • 🗃 Общая папка или база данных (например, SQL-сервер).

Пример кода для экспорта параметров в файл:

Параметры = Новый Структура;

Параметры.Вставить("СписокТоваров", МассивТоваров);

ЗаписатьJSON(ПутьКФайлу, Параметры);

Почему параметры сеанса не сохраняются после обновления конфигурации?

Параметры сеанса хранятся в оперативной памяти и сбрасываются при:

  • Закрытии 1С.
  • Обновлении конфигурации (перезапуск сервера 1С).
  • Ошибках в работе клиентского приложения.

Для постоянного хранения используйте Константы, Регистры сведений или Хранилище значений.

Как передать параметр в фоновое задание?

При создании фонового задания параметры передаются через структуру в метод ПараметрыВыполнения:

Параметры = Новый Структура;

Параметры.Вставить("ИдентификаторДокумента", Документ.Ссылка.УникальныйИдентификатор);

ФоновоеЗадание = ФоновыеЗадания.Создать(

"Обработка.ОбработкаДокумента",

"ВыполнитьОбработку",

Параметры

);

ФоновоеЗадание.ВыполнитьАсинхронно;

В обработчике параметры доступны через аргумент ПараметрыВыполнения.

Какие параметры можно передавать через командную строку?

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

  • 📌 Простые типы: строки, числа, даты (в формате ГГГГММДД).
  • 📌 Сложные данные в виде строки (например, JSON), которые потом разбираются в коде.

Ограничения:

  • Нельзя передавать объекты 1С (справочники, документы) напрямую.
  • Длина командной строки в Windows ограничена 8191 символом.
  • Символы ;, =, (пробел) в значениях нужно экранировать.