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

Наполнение платформы программами на внутреннем языке

Зачем нужны программы на внутреннем языке? Прикладные решения создается путем наполнения платформы программами на внутреннем языке. Программы на внутреннем языке могут различными способами взаимодействовать с платформой. В простейшем случае платформа осуществляет запуск программы и более не взаимодействует с ней. Платформа может передавать значения входных параметров программам на внутреннем языке и получать значения выходных параметров.

Простой запуск программ

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

Самая простая программа может быть записана следующим образом:

ВЫЧИСЛИТЬ
    СООБЩЕНИЕ("Самая простая программа")
КОНЕЦ

Простая программа с получением строкового параметра будет выглядеть не намного сложнее:

ВЫЧИСЛИТЬ(СТРОКА: парам)
    СООБЩЕНИЕ("Принят параметр: " + парам)
КОНЕЦ

Получение параметра позволяет организовывать похожие действия в виде одной программы.

С помощью функции ВЫПОЛНИТЬ можно осуществить запуск одной программы из другой:

ВЫПОЛНИТЬ(["ПростаяПрограмма.ibx"])
На платформе Инфо-Бухгалтер 8 простой запуск программ известен как запуск ibx-программ из меню и с помощью функции СТАРТ_ПРОГ. Специальные случаи вызова бланка или типовой операции из меню в Инфо-Бухгалтер 10 отсутствуют, есть просто запуск программ. Если программа показывает бланк – это бланк, если таблицу отчета – то отчет и т.д.

Обработчики на сервере и клиентском месте

Платформа Инфо-Бухгалтер 10 содержит широкие возможности настройки своего поведения, основанные на программировании обработчиков различных действий. Такие действия можно разделить на две группы: клиентские и серверные. Инфо-Бухгалтер 10 использует трехзвенную архитектуру. Сервер – это отдельная программа, которая может в процессе своей работы исполнять программы на внутреннем языке.

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

В клиентской программе многие обработчики работают по аналогии с диалоговыми окнами. На вход им подается информация об элементе списка (элементе справочника, операции из журнала и т.п.), выбранного пользователем. Программный код обработчика может изменить редактируемую информацию и передать ее обратно платформе с признаком сохранения или отмены. Это в большой степени напоминает редактирование информации в диалоговом окне с кнопками "ОК" и "Отмена". Обычно такие программы-обработчики как раз показывают диалоговые окна, внешний вид и возможности которых ориентированы на конкретную прикладную задачу. Уровень специализации таких диалоговых окон не оставляет платформе ни единого шанса, заменить их стандартным диалогом без использования обработчиков на внутреннем языке. Подробнее об клиентских обработчиках журналов и справочников см. Настройка внешнего вида и поведения журналов и справочников на клиентском месте.

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

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

В Инфо-Бухгалтер 8 есть обработчики на вход/выход и для замены стандартных диалогов операции и счета – это аналогия некоторых клиентских обработчиков. Отображение информации в стандартных окнах в Инфо-Бухгалтер 8 никак не программируется, а при изменении данных ничего не вызывается.