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

#std632

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Следует выполнять запись константы вне транзакций, т.к. ее запись может стать «узким» местом при конкурентой работе.
Например, неправильно:

// Увеличиваем счетчик проведенных документов в константе
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
  ТекущееЗначение = Константы.СчетчикПроведенныхДокументов.Получить();
  Константы.СчетчикПроведенныхДокументов.Установить(ТекущееЗначение + 1);
КонецПроцедуры

На время записи значения в константу, работа других сеансов приостанавливается, если в это же время они выполняют запись этой же константы. Подробнее о причинах избыточных блокировок и методах оптимизации см. базу знаний «Технологические вопросы крупных внедрений».

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