Константы. Как и когда их использовать

13 2

В данной статье постаралась описать следующие моменты работы с константами:

  • что такое константа;
  • где задаются и хранятся значения констант;
  • функции для работы с константами;
  • какая информация хранится в константах.

Что такое константа

Константы – любое постоянное значение (редко изменяемое), используемое в тексте вычислений, например, при задании значений переменных или при указании параметров вызываемых функций.

В текстах на ISBL можно выделить также:

  • Системные константы - обозначают имена системных реквизитов, перечисления IS-Builder, или другие элементы системной разработки, обеспечивается работоспособность кода на ISBL в случае изменения их значений.
  • Псевдоконстанты - постоянные в рамках вычисления значения, для которых нет констант ISBL. Например, это могут быть номера детальных разделов, имена часто используемых реквизитов, неизменяемые строковые значения.

Где задаются и хранятся значения констант

Для работы с константами информационной системы предназначена компонента Константы

Компонента Константы представляет собой специальный справочник, каждая запись которого является ОБЩЕЙ или ИНДИВИДУАЛЬНОЙ КОНСТАНТОЙ.

  • Общая константа - константа, имеющая одно и то же значение для всех наших организаций информационной системы.
  • Индивидуальная константа - константа, имеющая различные значения для каждой нашей организации.

Особенности заполнения полей компоненты можно посмотреть в справке системы в разделе Константы

Список констант и их начальные значения задаются на этапе разработки системы и используются разработчиком в программных вычислениях. В ходе эксплуатации значения констант могут быть изменены администратором.

При работе с компонентой Константы используются таблицы базы данных:

  • MBConstLst – содержит список констант системы и их свойства (значения констант хранятся в таблице MBConst). Обновляется при изменении данных в компоненте.
  • MBConst – содержит значения констант компоненты Константы (список констант системы содержится в таблице MBConstLst). Обновляется при задании значений констант в карточке компоненты или в таблице компоненты Значения по организациямПримечание: Общие константы также хранятся в таблице MBConst, в поле "OurFirm" хранится 0.
  • replMBConst – буфер исправлений для констант, используемый при репликации данных в распределенных системах. Автокорректируемая таблица.

Функции для работы с константами

  1. Функции чтения/записи значения константы

  • Конст – считывает или записывает значение константы. Если задан параметр Значение, то значение этого параметра записывается в качестве значения константы, иначе возвращается значение из константы. Создавать новые константы с помощью данной функции нельзя. Если константа не существует, то генерируется исключение. Если константа индивидуальная и значение для данной организации не задано, то вернется пустая строка.
  • GetConstant –  возвращает значение константы, если константа определена, в противном случае возвращает заданное в параметре значение. Русскоязычное имя функции – КонстЗнач.
  • ЗначКонст – возвращает значение константы с проверкой значения константы (если значение не задано, возвращает пустую строку и в зависимости от режима либо предупреждает о пустом значении, либо прерывает работу программы); также может записать значение константы в реквизит текущего справочника или документа.
  • GetAssignedConst – получает значение константы и проверяет, что оно определено. В случае, если константы не существует, или её значение не определено, то будет сгенерировано соответствующее исключение.
  1. Функции проверки наличия констант

  • ConstantExists – проверяет наличие константы. Возвращает логическое значение (если указанная константа существует, то возвращает ДА, иначе возвращает НЕТ). Русскоязычное имя функции – КонстЕсть.
  • ПроверитьКонст – проверяет наличие константы, если ее нет, то выдается сообщение об ошибке из параметра.
  1. Функции установки констант

  • SetConstant – устанавливает новое значение константы. Примечание: Если не указан параметр Organization, то используется организация из контекста текущей организации. Для общих констант параметр Organization указывать не нужно. Создавать новые константы с помощью данной функции нельзя.
  • ShowConstantsInputDialog – отображает диалог, через который можно изменить значения констант и установок системы.

Какая информация хранится в Константах

  • Время последнего выполнения действий. Необходимо хранить время последнего выполнения действия в константе для избежания случаев повторной обработки данных. Например, повторной рассылки писем и повторного поиска задач, заданий и их дальнейшей обработки и т.д. Используется в сценариях Агент рассылки…
  • Настройки подключения. Информацию о настройках подключения нужно хранить в константе, для того чтобы при необходимости их изменения не нужно было искать настройки по всему коду, где они встречаются, а достаточно было внести нужные корректировки в значение константы в одном месте. Например, настройки для подключения к входящей/исходящей почты, подключения к 1С и другим системам
  • Имена ресурсов или файлов для описания сервиса нужно хранить в константе для удобного изменения в одном месте. Например, адреса WSDL-описания сервиса извлечения штрих-кодов, сервиса интеграции, сервиса преобразование в HTML, сервис преобразования в PDF. Используется в сценариях установок: Установки служб ввода и преобразования DIRECTUM, Установки набора средств интеграции DIRECTUM, и т.д.
  • Пути. К лог-файлу, к папке для экспорта документов и прочим служебным каталогам. Используется в сценариях установок: Установки текущего сервера системы, и т.д.
  • Коды типовых маршрутов. Для программного поиска, создания/прекращения задач по конкретному типовому маршруту в рамках процесса или в рамках другого подпроцесса рекомендуется хранить значения кодов типовых маршрутов в константах. Используется в сценариях установок: Установки модуля Обращения граждан и организаций, Установки модуля Интеграция с системой обмена, Установки РКК и поручений по РКК, и т.д.
  1. Настройки системы

  • Числовые значения. Значения редко изменяемых числовых настроек системы должны храниться в константах. Это обеспечивает быструю их корректировку (в одной компоненте). Например, значение минимальной длины наименования электронных документов, Таймаут (в миллисекундах) выполнения запроса к веб-сервису интеграции или выполнения запроса к службам ввода и преобразования, Крайний срок, Максимальное время выполнения оповещения. Используется в сценариях установок Установки модуля Управление деловыми процессами и эл. документами, Установки модуля Обращения граждан и организаций, Установки служб ввода и преобразования DIRECTUM, и т.д.
  • Определенные значения из списка (значения признака). Информацию о настройках системы необходимо хранить в константах, необходима для гибкой настройки системы, возможности быстрой ее корректировки.

Примеры:

  • состав полей для поиска дублей;
  • номер префикса;
  • запрет на удаление подписанных версий электронного документа;
  • режим интеграции с календарями Outlook;
  • тип прав по умолчанию в задачах;
  • Признак Да/Нет (признак принудительной фильтрации справочников по текущему периоду; запретить инициаторам задач выполнять задания по задачам; автоматическое назначение замещения работников руководителем подразделения).

Используется в сценариях установок Установки модуля Обращения граждан и организаций, Установки общих справочников, Установки модуля Канцелярия, Установки РКК и поручений по РКК, и т.д.

  1. Настройки бизнес-процессов

  • Коды записей справочников необходимо хранить коды записей справочников в константах для корректного переноса разработки с одной БД на другую.

Примеры:

  • Виды электронных документов - для программного создания, поиска документов с определенными ВЭД;
  • Работники (главный бухгалтер, руководитель организации, кассир) -  для автоматического заполнения значений полей типа «Справочник» в бизнес-процессе;
  • Группы типовых маршрутов -  для модуля Обращения граждан и организаций;
  • Код главной нашей организации (напр., для параметров системы) из НОР;
  • Код категории РПО "Заказные";
  • Код национальной валюты;
  • Код результата исполнения обращений, с которым нужно закрывать анонимные обращения.

Используется в сценариях установок Установки модуля Обращения граждан и организаций, Установки модуля Интеграция с системой обмена, Установки модуля Канцелярия. Общие установки, Установки РКК и поручений по РКК, и т.д.

  • Заполнения полей по умолчанию. Необходимо хранить значения кодов записей справочников, которыми заполняются поля с типом «Справочник» по умолчанию в константах.

Примеры:

  • Тип обращения - для автоматического заполнения значений полей по умолчанию;
  • Подразделение, к которому относится Дело, если в нем не указано подразделение и т.д.;
  • Код места регистрации, которое указывается для автоматически создаваемых РКК.
  1. Настройка прав доступа

  • Имена групп пользователей. Используется для указания групп пользователей, которым назначаются права и/или у которых изменяются доступность/обязательность реквизитов и действий в типах справочников и в типах карточек электронных документов. Используется в сценариях установок: Установки РКК и поручений по РКК, и т.д.
  • Имена пользователей. Используется для указания пользователей, которым назначаются права и/или у которых изменяются доступность/обязательность реквизитов и действий в типах справочников и в типах карточек электронных документов. А также, имена ответственных - за рабочее время, назначение прав на вложения в задачи и задания, настройку взаимодействия с удаленными системами и т.д. Используется в сценариях установок: Установки модуля Управление деловыми процессами и эл. документами, и т.д.
  1. Прочие настройки

  • ИД документов. Используется для указания ИД шаблонов документов, макетов документов, прочих «уникальных» документов, используемых в вычислениях. Используется в сценариях установок: Установки модуля Управление совещаниями и заседаниями, и т.д.
  • Настройка почты. Указываются - имя отправителя, электронный адрес, программа, от имени которой отправляется почта, порт для отправки почты, SMTP-сервер, задается в виде IP-адреса или в виде имени компьютера. Используется в сценариях установок: Установки обмена эл. документами между системами, Установки работы с почтой, и т.д.
  • Настройки обмена эл. документами: Время ожидания повторной отправки пакета при обмене электронными документами между системами (м), Адрес ящика электронной почты, который используется для обмена  эл. документами между системами, Количество попыток отправки при обмене электронными документами между системами, Типовой маршрут, используемый для обработки полученных документов при обмене эл. документами между системами. Используется в сценариях установок: Установки обмена эл. документами между системами, и т.д.
Максим Кошарный

При работе с константами также следует учитывать, что на длину значения накладывается ограничение в 255 символов. Об этом почему-то не написано в справке.

Григорий Шапошник

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

Авторизуйтесь, чтобы написать комментарий