новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Константы: разбираем ошибки

  • Добавить свою публикацию
  • для этого требуется регистрация

Введение

Начиная с версии 7.х Платформа 1С поддерживает такой вид метаданных, как константы. Данный объект предназначен для хранения не изменяющейся, либо редко изменяющейся информации. В типовых решениях, например, константы применяются для хранения имени организации или компании, для которой организован учет. В данной статье будет рассказано о наиболее часто встречающихся ошибок, которые допускают разработчики при использования данного класса объектов.

Проблема

То, что константы используются для хранения редко изменяющейся информации, сказано не просто так. Суть в том, что в ДБ каждая константа предствалена отдельной таблице с одной записью. Имя таблицы начинается с "_Const". А состав и количество колонок определяется тем типов значения, которое указано для данной константы. Для более наглядного представления приведем скриншот хранения таблиц констант в базе SQL.

Изображение

Таким образом при попытке редактирования константы, полностью блокируется вся таблица (до версии платформы 8.2.11 при попытке изменить константу, блокировались польностью вся таблица констант, начиная со следующей версии блокируется только одна таблица. Это связано с тем, что с этой версии изменился способ хранения констант в базе. Ранее они хранились все в одной таблице в единственной строке). И если одну константу будут пытаться редактировать два или более пользователей, то сможет это сделать только один, для остальных же возникнет ошибка блокировки данных. После определенное интервала времени у процесса, ожидающего снятие блокировки, возникнет ошибка ожидания блокировки.

Изображение

Этот интервал времени, называемый "таймаут блокировки", настраивается в свойствах ИБ. Для его изменения в конфигураторе откройте "Параметры информационной базы" из меню "Администрирование". Параметр называется "Время ожидания блокировки данных".

Изображение

Мы видим, что неправильное использование констант может значительно сказаться на производительность работы пользователей, так как будут происходить постоянные ожидания на блокировках.

Советы для правильной работы с константами.

  • Не храните в константах изменяющихся величин, используйте для этого регистры сведений.
  • Не используйте соединение с таблицей констант в сложных запросах, лучше передавайте их туда параметром. Так как во время выполнения запроса другие пользователи уже не смогут обратиться к этой константе для редактирования (на платформе до версии 8.2.11 они не смогут обратится для изменения ни к одной из констант), если это происходит в режиме транзакции, и будут выполнять "грязное" чтение/запись вне транзакции.
  • Исключайте возможность редактирования констант какими-либо пользователями, кроме администратора БД.
 
0
Читайте также
Перенос документов из ТИС в Бух 7.7
Решение проблем, возникающих при переносе из ТИС в Бух7.7?
Монитор дисковых ресурсов
Определив объекты метаданных, занимающих большой объем можно лишние данные вычищать, внести изменения в конфигурацию или в бизнес процесс.
(V 7.7) Справка по работе с метаданными (с примерами)
Получение метаданных в программе 1С 7.7 происходит через объект "Метаданные"
Разработки
Распаковка защищенных модулей 1С 8
Обработка 1С 8 по распаковке защищенных модулей
Программа для фрилансеров
В программе много отчетов, которые позволяют отслеживать состояние текущих дел
Специализированная конфигурация Autoupdater
Автоматическое внесение изменений в другие конфигурации 1С8
Еще от автора
≡ к списку статей