Начиная с версии 7.х Платформа 1С поддерживает такой вид метаданных, как константы. Данный объект предназначен для хранения не изменяющейся, либо редко изменяющейся информации. В типовых решениях, например, константы применяются для хранения имени организации или компании, для которой организован учет. В данной статье будет рассказано о наиболее часто встречающихся ошибок, которые допускают разработчики при использования данного класса объектов.
То, что константы используются для хранения редко изменяющейся информации, сказано не просто так. Суть в том, что в ДБ каждая константа предствалена отдельной таблице с одной записью. Имя таблицы начинается с "_Const". А состав и количество колонок определяется тем типов значения, которое указано для данной константы. Для более наглядного представления приведем скриншот хранения таблиц констант в базе SQL.
Таким образом при попытке редактирования константы, полностью блокируется вся таблица (до версии платформы 8.2.11 при попытке изменить константу, блокировались польностью вся таблица констант, начиная со следующей версии блокируется только одна таблица. Это связано с тем, что с этой версии изменился способ хранения констант в базе. Ранее они хранились все в одной таблице в единственной строке). И если одну константу будут пытаться редактировать два или более пользователей, то сможет это сделать только один, для остальных же возникнет ошибка блокировки данных. После определенное интервала времени у процесса, ожидающего снятие блокировки, возникнет ошибка ожидания блокировки.
Этот интервал времени, называемый "таймаут блокировки", настраивается в свойствах ИБ. Для его изменения в конфигураторе откройте "Параметры информационной базы" из меню "Администрирование". Параметр называется "Время ожидания блокировки данных".
Мы видим, что неправильное использование констант может значительно сказаться на производительность работы пользователей, так как будут происходить постоянные ожидания на блокировках.