Работа с параметрами в 1С:Предприятие — одна из самых частых задач, с которыми сталкиваются и разработчики, и обычные пользователи. От корректной настройки параметров зависит всё: от отображения отчётов до автоматизации бизнес-процессов. Но как именно их задавать? Где искать нужные настройки? И почему иногда параметры, заданные в одном месте, не работают в другом?
В этой статье мы разберём 5 основных способов задания параметров в 1С 8.3 и 1С 8.2 — от простых настроек через интерфейс до программного управления через встроенный язык. Вы узнаете, как:
- 🔧 Настраивать параметры сеанса для временных данных
- 📝 Использовать параметры запуска при старте 1С
- 💻 Работать с параметрами через конфигуратор и код
- 📊 Передавать параметры в отчёты и обработки
- ⚙️ Сохранять настройки в информационной базе на постоянной основе
Материал будет полезен как начинающим пользователям, так и опытным программистам 1С, которые хотят систематизировать знания. Все примеры приведены с учётом актуальных версий платформы (на момент публикации).
1. Что такое параметры в 1С и зачем они нужны
Параметры в 1С:Предприятие — это динамические значения, которые влияют на поведение системы, отчётов, обработок или отдельных алгоритмов. Они позволяют:
- 🔄 Гибко настраивать логику работы без изменения кода
- 📌 Передавать данные между формами, отчётами и модулями
- 🔒 Ограничивать доступ к определённым функциям для разных пользователей
- 📈 Оптимизировать производительность за счёт кэширования часто используемых значений
Например, параметр ПериодАналитики может определять, за какой временной промежуток строится отчёт, а параметр РежимРаботы — включать или отключать тестовый функционал. Без параметров пришлось бы жёстко прописывать все значения в коде, что сделало бы систему негибкой.
Важно понимать, что параметры бывают:
- Локальные — действуют только в рамках одного сеанса или модуля (например, переменные в функции).
- Глобальные — доступны во всей информационной базе (например, настройки, сохранённые в справочнике
Константы). - Параметры запуска — передаются при старте 1С извне (например, через командную строку).
⚠️ Внимание: Не путайте параметры с реквизитами объектов (справочников, документов). Реквизиты — это атрибуты конкретных записей (например, Наименование товара), а параметры — временные или системные настройки.
2. Способ 1: Задание параметров через интерфейс пользователя
Самый простой способ — использовать стандартные формы 1С. Большинство обработок и отчётов имеют поля для ввода параметров. Например, в отчёте Оборотно-сальдовая ведомость можно задать:
- 📅 Период (начало и конец)
- 🏢 Организацию
- 📊 Вариант отбора (по счётам, субконто и т.д.)
Как это сделать:
- Откройте нужный отчёт через меню
Отчёты → Стандартные отчёты. - В форме отчёта найдите блок
НастройкиилиПараметры. - Заполните требуемые поля (например, установите даты в календаре).
- Нажмите
Сформировать.
Эти параметры действуют только на текущий сеанс формирования отчёта. Если нужно сохранить настройки на будущее, используйте кнопку Сохранить вариант.
Чтобы быстро сбросить все параметры отчёта к значениям по умолчанию, нажмите Ещё → Сбросить настройки.
| Тип параметра | Где задаётся | Пример использования |
|---|---|---|
| Период | Форма отчёта, поле"Период" | Отчёт по продажам за 01.01.2026–31.03.2026 |
| Организация | Форма отчёта, поле"Организация" | Данные только по ООО"Ромашка" |
| Отбор по счёту | Раздел"Отбор" в настройках | Показать только операции по счёту 62.01 |
| Вариант оформления | Кнопка"Ещё → Вариант оформления" | Экспорт в Excel с группировкой по месяцам |
3. Способ 2: Параметры сеанса (глобальные переменные)
Параметры сеанса — это значения, которые хранятся в памяти 1С на время работы пользователя. Они доступны во всех модулях текущего сеанса и сбрасываются после закрытия программы. Их удобно использовать для:
- 🔑 Передачи данных между формами (например, выбранный в одной форме документ открывается в другой).
- 📋 Хранения временных настроек (например, последний использованный фильтр).
- 🛠 Тестирования функционала без изменения базы.
Как задать параметр сеанса:
// Установить параметр сеанса
ПараметрыСеанса = Новый Структура;
ПараметрыСеанса.Вставить("ТекущийСклад", Справочники.Склады.НайтиПоНаименованию("Основной"));
ПараметрыСеанса.Вставить("РежимОтладки", Истина);
// Получить параметр сеанса в другом модуле
ТекущийСклад = ПараметрыСеанса.ТекущийСклад;
Чтобы просмотреть все текущие параметры сеанса, откройте Отладка → Параметры сеанса в конфигураторе.
⚠️ Внимание: Параметры сеанса не сохраняются в базе данных! Если пользователь закроет 1С, все значения будут утеряны. Для постоянного хранения используйтеКонстантыилиРегистры сведений.
Имя параметра уникально (не совпадает с существующими)|
Значение сериализуемо (можно передать в структуре)|
Параметр очищается после использования (если не нужен дальше)|
Проверена работа в многопользовательском режиме-->
4. Способ 3: Параметры запуска 1С (командная строка)
Параметры запуска позволяют передавать данные в 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)}: Переменная не определена (ПараметрХ). - 🔴 Конфликт имён параметров сеанса — если два модуля используют одинаковое имя (например,
ТекущийДокумент), одно значение затрёт другое. - 🔴 Передача несериализуемых объектов — попытка сохранить в
ХранилищеЗначенияформу или менеджер значения вызовет ошибку. - 🔴 Игнорирование прав доступа — если пользователь не имеет прав на чтение константы или регистра, параметр не будет прочитан.
Как избежать ошибок:
- Всегда проверяйте существование параметра перед использованием:
Если ПараметрыСеанса.Свойство("ТекущийСклад") ТогдаСклад = ПараметрыСеанса.ТекущийСклад;
Иначе
Склад = Справочники.Склады.Основной;
КонецЕсли;
- Используйте уникальные префиксы для имён параметров сеанса (например,
мод_Заказы_ТекущийДокумент). - Для сложных данных используйте
ЗначениеВСтрокуВнутриЗначениеИзСтрокиВнутр.
⚠️ Внимание: При работе с Регистрами сведений в качестве хранилища параметров учитывайте, что чтение данных из регистра может быть медленнее, чем из константы, особенно при больших объёмах данных.
8. Продвинутые техники: динамические параметры и кэширование
Для оптимизации производительности можно использовать:
- 🚀 Кэширование параметров — сохранение часто используемых значений в памяти для ускорения доступа.
- 🔄 Динамические параметры — значения, которые автоматически обновляются при изменении исходных данных (например, курс валюты из внешнего источника).
- 📡 Подписка на события — реакция на изменение параметров в реальном времени.
Пример кэширования курса валюты:
Перем мКурсыВалютКэш;
// Функция для получения курса с кэшированием
Функция ПолучитьКурсВалюты(Валюта, Дата)
Если мКурсыВалютКэш = Неопределено Тогда
мКурсыВалютКэш = Новый Соответствие;
КонецЕсли;
КлючКэша = Валюта.УникальныйИдентификатор +"|" + Формат(Дата,"ДЛФ=DT");
Если мКурсыВалютКэш.Свойство(КлючКэша) Тогда
Возврат мКурсыВалютКэш[КлючКэша];
Иначе
Курс = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Валюта);
мКурсыВалютКэш.Вставить(КлючКэша, Курс);
Возврат Курс;
КонецЕсли;
КонецФункции
Для динамического обновления параметров используйте механизм Оповещение:
// Подписаться на изменение константы
Подписка = ПодписатьсяНаСобытие(Константы.КурсДоллара,"ПриИзменении","ОбновитьКурсыВОтчётах");
// Обработчик события
Процедура ОбновитьКурсыВОтчётах(Источник, Параметры) Экспорт
Сообщить("Курс доллара изменился! Новое значение:" + Константы.КурсДоллара.Получить);
КонецПроцедуры
FAQ: Ответы на частые вопросы
Как передать параметр в отчёт, если он открывается через меню, а не через код?
Если отчёт открывается через стандартное меню, параметры можно задать только вручную в его форме. Однако вы можете:
- Создать обработку, которая будет открывать отчёт с нужными параметрами.
- Использовать параметры сеанса — установить их перед открытием отчёта, а в отчёте прочитать.
- Настроить варианты отчёта — сохранить часто используемые комбинации параметров.
Можно ли передавать параметры между разными информационными базами?
Прямой передачи параметров между базами нет, но есть обходные пути:
- 📤 Экспорт/импорт через файлы (JSON, XML, TXT).
- 🌐 Обмен через веб-сервисы (HTTP-запросы).
- 🗃 Общая папка или база данных (например, SQL-сервер).
Пример кода для экспорта параметров в файл:
Параметры = Новый Структура;
Параметры.Вставить("СписокТоваров", МассивТоваров);
ЗаписатьJSON(ПутьКФайлу, Параметры);
Почему параметры сеанса не сохраняются после обновления конфигурации?
Параметры сеанса хранятся в оперативной памяти и сбрасываются при:
- Закрытии 1С.
- Обновлении конфигурации (перезапуск сервера 1С).
- Ошибках в работе клиентского приложения.
Для постоянного хранения используйте Константы, Регистры сведений или Хранилище значений.
Как передать параметр в фоновое задание?
При создании фонового задания параметры передаются через структуру в метод ПараметрыВыполнения:
Параметры = Новый Структура;
Параметры.Вставить("ИдентификаторДокумента", Документ.Ссылка.УникальныйИдентификатор);
ФоновоеЗадание = ФоновыеЗадания.Создать(
"Обработка.ОбработкаДокумента",
"ВыполнитьОбработку",
Параметры
);
ФоновоеЗадание.ВыполнитьАсинхронно;
В обработчике параметры доступны через аргумент ПараметрыВыполнения.
Какие параметры можно передавать через командную строку?
Через командную строку можно передавать:
- 📌 Простые типы: строки, числа, даты (в формате
ГГГГММДД). - 📌 Сложные данные в виде строки (например, JSON), которые потом разбираются в коде.
Ограничения:
- Нельзя передавать объекты 1С (справочники, документы) напрямую.
- Длина командной строки в Windows ограничена
8191 символом. - Символы
;,=,(пробел) в значениях нужно экранировать.