Управление системой бланков
При помощи методов и объектных типов в модуле LOCCFG существует возможность управлять системой бланков. Структура системы бланков состоит из разделов и бланков. Бланк хранится внутри раздела. Для бланков и разделов во внутереннем языке предусмотрены специальные типы ЛКФ_БЛАНК и ЛКФ_РАЗДЕЛ, а для совокупности всех бланков внутри одного раздела используется тип ЛКФ_СПИСОК_БЛАНКОВ.
В системе бланков разделы могут быть вложенными. По умолчанию существует корневой раздел, имя которого во внутреннем языке обозначается пустой строкой. Обязательно в системе раздел и бланк должны иметь строковые имя и идентификатор, для бланка также указываются параметры. В качестве параметров бланка выступают ссылка на алгоритм и, опционально, строковый параметр запуска. Имена бланков могут повторяться в одном разделе. Имена разделов должны быть уникальными. Бланк в разделе идентифицируется по позиции, соответственно предусмотрены методы определяющие позиции разделов и блакнов: ПОЗ_БЛАНКА и ПОЗ_РАЗДЕЛА.
Изменения внесенные из внутреннего языка сразу же отображаются в редакторе бланков.
Управление системой бланков заключается в добавлении, редактировании и удалении бланков и разделов. Методы добавления разделов и бланков:
Редактирование раздела подразумевает изменение его имени и идентификатора, а редактирование бланка - его имени, идентификатора и параметров. Методы редактирования разделов и бланков:
Метод УДАЛИТЬ удаляет раздел по имени со всем его содержимым. Метод УДАЛИТЬ_ПОЗ производит удаление раздела по его позиции. При удалении раздела происходит удаление всех содержащихся в нем бланков.
В примере ниже демонстрируется создание бланка в корневом разделе системы бланков, если бланка с именем "Бланк1" еще не существует. Если бланк с именем "Бланк1" существует, то происходит его редактирование.
ВЫЧИСЛИТЬ ПЕРЕМ ЛКФ_СПИСОК_БЛАНКОВ: список список.раздел = "" ПЕРЕМ ЛКФ_БЛАНК: бланк ЕСЛИ список.ПОЗ_БЛАНКА("Бланк1") = 0 ТО бланк = [имя = "Бланк1", идент = "бланк_тест", парам = "показать справочник.ibx"] список.ДОБАВИТЬ_БЛАНК(бланк) ИНАЧЕ бланк = [имя = "Бланк1", идент = "бланк_тест", парам = "справочник.ibx"] список.ЗАПИСАТЬ_БЛАНК(список.ПОЗ_БЛАНКА("Бланк1"), бланк) КОНЕЦ_ЕСЛИ КОНЕЦ