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

Программа на внутреннем языке

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

Проект

Проект – это набор данных, описывающий, как и из чего создается исполняемый код программы на внутреннем языке. Проект включает список исходных файлов, параметры компилятора, инструкции размещения исполнимого кода и др. Физически проект хранится в файле с расширением *.ibp. Создание проекта осуществляется на основе шаблона.

В Инфо-Бухгалтер 8 нет файлов проектов. Неявно роль проектов исполняют бланки. В файле бланка хранится информация о режиме интерпретатор/компилятор и опции компиляции. Для исходных файлов (*.src) и типовых операций индивидуальное хранение опций компиляции не предусмотрено.

Основной файл и библиотеки

Один из исходных текстов проекта является основным – с него начинается компиляция. Такой файл имеет расширение *.ipp. Основной файл должен содержать точку входа в программу, обозначаемую ключевым словом ВЫЧИСЛИТЬ:

// основной файл /////////////////////
...

ВЫЧИСЛИТЬ
  ...   
КОНЕЦ
//////////////////////////////////////

После ключевого слова ВЫЧИСЛИТЬ и до ключевого слова КОНЕЦ располагаются операторы тела программы. Эти операторы могут обращаться к переменным и функциям, объявленным вне тела, например до слова ВЫЧИСЛИТЬ. Если таких функций и других объявлений много или они используются в различных проектах, то их выносят в отдельные файлы, называемые библиотеками. Библиотеки являются файлами исходного текста с расширением *.ibl. Подключение библиотек осуществляется с помощью ключевого слова ИСПОЛЬЗОВАТЬ.

Простой пример показывает принцип взаимодействия основного файла и библиотеки:

// библиотека: Арифметика.ibl /////////
ФУНКЦИЯ ЧИСЛО: Квадрат(ЧИСЛО: арг)
  РЕЗУЛЬТАТ = арг * арг
КОНЕЦ_ФУНКЦИИ
///////////////////////////////////////

// основной файл: Пример.ipp //////////
ИСПОЛЬЗОВАТЬ("Арифметика.ibl")

ВЫЧИСЛИТЬ
  СООБЩЕНИЕ(СТР(Квадрат(2))) // 4
КОНЕЦ
///////////////////////////////////////
В Инфо-Бухгалтер 8 используется сходный способ организации исходного кода в виде библиотек. Тело программы между ключевыми словами ВЫЧИСЛИТЬ и КОНЕЦ сохранилось лишь в типовых операциях. Для бланков телом программы является формульный раздел, а для файлов *.src – все содержимое файла. В отличие от Инфо-Бухгалтер 8, в Инфо-Бухгалтер 10 применять ключевое слово ИСПОЛЬЗОВАТЬ можно только вне тела программы или функции.

Компиляция исполнимого файла

Компилятор обрабатывает основной файл и все подключенные библиотеки, при этом генерируется исполнимый байт-код. Исполнимый код записывается в файл с расширением *.ibx. Выполнением программы на внутреннем языке является обработка инструкций байт-кода специальным проигрывателем – виртуальной машиной.

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

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

Компиляция может осуществляться несколькими способами:

  1. для открытого в среде разработки проекта;
  2. для проекта в составе открытого пакетного проекта;
  3. при вызове функции ЛКФ_КОМПИЛЯЦИЯ для обычного или пакетного проекта.
В Инфо-Бухгалтер 8 общий принцип создания и исполнения байт-кода такой же. Для бланков и типовых операций компиляция выполняется автоматически при устаревании или отсутствии исполнимого файла. В текущей версии Инфо-Бухгалтер 10 такой режим отсутствует. Задача массовой компиляции проектов в Инфо-Бухгалтер 10 решается созданием пакетных проектов.

Шаблоны проектов

Шаблоны проектов – это специальные текстовые файлы, на основе которых среда разработки генерирует файл проекта и исходные файлы с заготовками кода. Например, шаблон "Диалог" создает проект с диалоговым окном, содержащим кнопки "ОК" и "Отмена". Можно создавать проект без использования шаблона. При этом создается исходный файл с пустым телом программы ВЫЧИСЛИТЬ/КОНЕЦ.

Шаблоны широко используются при создании проектов программ-обработчиков. Такие шаблоны создают тело программы со списком параметров, соответствующих типу обработчика. В настройки проекта добавляются необходимые опции. Программисту остается реализовать тело программы.

В Инфо-Бухгалтер 8 нет аналогов шаблонов проектов. Шаблоны документов хорошо известны по офисным программам.

Пакетные проекты

Для логической группировки обычных проектов используется специальный тип проектов – пакетный. Физически пакетный проект представлен файлом с расширением *.ibw. Он содержит список проектов: обычных или пакетных. Таким образом, можно организовать логическую иерархию проектов путем вкладывания пакетных проектов нижнего уровня в пакетные проекты верхнего уровня.

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

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