Руководство разработчика

Конфигуратор. Основные сведения

При разработке прикладных программ необходимо учитывать возможность установки обновлений. Обновление прикладных настроек обычно включает в себя не только добавление и замену исполняемых кодов алгоритмов, но и изменение структуры плана аналитики, журналов, типов операций и прочее, то есть изменение конфигурации базы данных. При этом очевидно, что данные, введенные в базу пользователями, при этом не должны исчезать или искажаться. Механизм, обеспечивающий обновление структуры базы данных, заключается в разработке специального алгоритма на внутреннем языке, который отвечает за необходимые в рамках прикладной задачи возможности изменения конфигурации. Специально для этой цели объявлен тип КОНФИГУРАТОР, методы которого предоставляют полный набор возможностей для работы с компонентами платформы. Конфигурирование базы данных должно происходить в режиме монопольного доступа, то есть в процессе изменения конфигурации доступ других пользователей к базе данных должен блокироваться. В соответствии с этим принципом у типа КОНФИГУРАТОР объявлено два служебных метода: ОТКРЫТЬ и ЗАКРЫТЬ. Метод ОТКРЫТЬ переводит базу данных в монопольный режим, а метод ЗАКРЫТЬ "освобождает" базу данных, то есть переводит ее из монопольного режима обратно в режим многопользовательского доступа. Эти два метода объявляют начало и конец транзакции по конфигурированию базы данных, их вызов является обязательным. Остальные методы типа КОНФИГУРАТОР предназначены непосредственно для работы с различными компонентами платформы и выполняются внутри блока транзакции. При этом метод ЗАКРЫТЬ позволяет обрабатывать результаты транзакции, то есть принять или откатить все произведенные изменения. Это позволяет вносить изменения в базу данных с гарантией результата. К примеру, при обновлении данных в журнале часть операций может быть записана успешно, после чего произойдет ошибка, и оставшаяся часть операций не будет записана. Если же обновление данных происходит внутри блока транзакции, можно обеспечить корректную обработку результатов: в случае правильной работы транзакция завершается успешно с принятием всех изменений, а в случае ошибки можно откатить все изменения и вернуться к исходному состоянию.

Алгоритм, изменяющий конфигурацию базы данных, должен запускаться только в синхронном режиме, то есть с параметром "S" (синхронно). Алгоритмы, запущенные из среды разработки, запускаются в асинхронном режиме. Из этого следует, что при запуске алгоритма из среды разработки метод ОТКРЫТЬ всегда будет возвращать НЕТ, и методы конфигуратора не будут выполняться. В случае сетевой работы запуск алгоритма из среды разработки невозможен. Но, учитывая необходимость отладки алгоритма с использованием инструментов среды разработки, в локальном режиме специально оставлена возможность запуска алгоритма под отладчиком (по красной стрелке).

Помимо самого типа КОНФИГУРАТОР, в модуле объявлен ряд вспомогательных типов, которые представляют во внутреннем языке компоненты платформы и используются в методах типа КОНФИГУРАТОР.