Визуальный шаблон окна типовой операции
Шаблон окна типовой операции задается после заголовка типовой операции перед ключевым словом ВЫЧИСЛИТЬ. Здесь может содержаться обычная текстовая информация, а также графы ввода, кнопки и опции, задаваемые при помощи специальных конструкций. Форматирование текста в окне типовой операции полностью соответствует заданному в шаблоне.
Пример:
Число :&число&&&&&&&&&&&&& Строка :*строка************ Дата :~дата Код счета :^код_счета^^^^^^^^^ Опция :*%опция: "Опция" Кнопка :*#кнопка("My.ibl", "ОбрНаж"): "Кнопка"
Размер окна вычисляется в зависимости от содержимого. Пустые строки в конце шаблона не учитываются. Временно не используемые графы или текст можно закомментировать с помощью фигурных скобок.
Пример:
Дата 1 :~дата1 {Код счета :^код_счета^^^^^^^^^} Дата 2 :~дата2
Графа ввода счета будет отсутствовать в окне типовой операции.
Если в последней строке шаблона расположены только кнопки, то дополнительная строка не добавляется, а кнопки помещаются в одну линию с кнопками "ОК" и "Отмена". При этом разработчик должен убедиться, что дополнительные кнопки не перекрывают стандартные, т.е. находятся на достаточном расстоянии от них слева или справа.
В шаблоне типовой операции может использоваться специальный управляющий символ "|" (вертикальная черта). При обработке шаблона типовой операции этот символ заменяется пробелом, но перед этим позволяет подавить нежелательные эффекты, возникающие из-за похожести синтаксиса граф и кнопок на выражения внутреннего языка. Например, вертикальная черта может использоваться для разделения следующих одной за другой кнопок:
*#кноп1("My.ibl", "ОбрНаж"): "Кнопка 1" *#кноп2("My.ibl", "ОбрНаж"): "Кнопка 2"
Такой фрагмент шаблона даст ошибку, т.к. текст кнопок вычисляется как выражение. В соответствии с правилами внутреннего языка фрагмент:
"Кнопка 1" *
является строковой константой и операцией умножения, после которой ожидается второй операнд. Для устранения такого нежелательного эффекта один из пробелов, разделяющих кнопки заменим вертикальной чертой:
*#кноп1("My.ibl", "ОбрНаж"): "Кнопка 1" | *#кноп2("My.ibl", "ОбрНаж"): "Кнопка 2"
Теперь обработка шаблона произойдет без ошибки. При этом, вертикальная черта не добавляет в строку к кнопкам каких-то дополнительных элементов. Если такие кнопки заданы в последней непустой строке шаблона, то кнопки будут расположены в одну линию со стандартными. Также избежать подобных нежелательных эффектов позволяют строковые подстановки.
Другая возможность, связаная с использованием вертикальной черты – принудительное добавление пустых строк в конце шаблона. Например, это может потребоваться, чтобы кнопки последней строки располагались выше стандартных кнопок "ОК" и "Отмена".
Пример:
Дата :~дата Код счета :^код_счета^^^^^^^^^ *#кноп1("My.ibl", "ОбрНаж"): "Кнопка 1" | *#кноп2("My.ibl", "ОбрНаж"): "Кнопка 2" |
Для добавления дополнительных строк снизу вертикальная черта должна указываться строго в первой позиции. Для добавления нескольких дополнительных строк вертикальная черта может указываться в начале каждой или только последней строки - эффект будет одинаковый. Дополнительные строки участвуют в прокрутке содержимого типовой операции наряду с другими элементами и текстом. Эта возможность поддерживается начиная с версии 8.893.
Не рекомендуется использовать в шаблоне типовой операции символы табуляции (ASCII 9) и неразрывного пробела (ASCII 160), т.к. визуально они не отличимы от обычных пробелов, но создают текстовые блоки, влияющие на размер окна типовой операции.