Форма

Форма – это элемент проекта, который определяет содержание, доступные действия и порядок отображения данных в виде карточки. Также формой называют интерфейсную компоненту, отображающую данные в виде карточки.

Формы можно описывать в разделе ‘Формы’ верхнего уровня любой библиотеки, либо внутри объектных разделов в разделе ‘Формы’. Раздел ‘Формы’ верхнего уровня библиотеки  содержит те формы, которые не используются для ввода какого-либо объекта. В объектные разделы помещают формы для ввода объектов. Например,  раздел ‘Документы’, раздел ‘Формы’ содержит формы документа. Другие примеры форм объектов приведены в главах, посвященных объектам.

Формы в дереве проекта обозначены иконкой image-1648036956119.png.

При создании новой формы будет предложено выбрать тип создаваемого элемента.

image-1648036971733.png

  • <Примитивы> - данный раздел используется системными администраторами проекта.
  • Группа форм – для создания папки, в которой могут быть сгруппированы несколько форм, объединенных по какому-либо признаку. Для группы указывается только наименование.
  • Форма – для создания новой формы на базе существующей.
  • Подстановка формы – для изменения свойств уже существующей формы.

При заведении формы заполняются наименование (поле ‘Имя’) и родитель (поле ‘Форма’).

image-1648036991563.png

Описание формы

Для формы можно указать следующие атрибуты:

image-1648037035077.png

  • Использование – условие доступа проектировщиков к виду просмотра.
  • HFile definition – используется программистами.
  • Размещение окна – для определения места расположения окна на экране.
  • Сценарий – определяет список кнопок, которые будут представлены на панели инструментов формы.
  • Закладки – для описания составных частей сложной формы.
  • Список полей формы – содержит описание полей формы.
  • Список горячих клавиш – определяет список горячих клавиш. За каждой горячей клавишей закреплено определенное действие (вызов команды, процедуры, сценария, вида просмотра), которое будет выполнено при нажатии на клавишу. Подробнее правила описания горячих клавиш можно посмотреть в главе, посвященной видам просмотра.
  • Заголовок –  определяет заголовок окна. Если заголовок окна не задан, то будет использовано наименование проектного элемента.
  • Локальные переменные – содержит список локальных переменных формы.
  • Только для просмотра (недопустимо для изменения), если – задает условие, при выполнении которого форма будет использоваться только для отображения данных. Ввод данных в форму будет невозможен.
  • Допускает наследование атрибутов – при установленном признаке в описании наследника можно будет переопределить атрибуты.
  • Добавление нескольких объектов в цикле – при установленном признаке следующая форма для ввода данных будет вызываться автоматически после утверждения предыдущей формы. Для прерывания цикла необходимо отказаться от утверждения формы. Данный признак применяется для организации массового ввода однотипных данных, например строк документа. После ввода одной строки документа пользователю не придется нажимать клавишу ‘Insert’, форма для ввода следующей строки будет вызвана автоматически.
  • Автоматический акцепт – используется в формах документа. После утверждения формы автоматически запускается процедура акцепта документа.
  • Набор печатных форм – для описания шаблона быстрой печати содержимого формы.
  • Автоматическое назначение КОДА при сохранении объекта БД – при установленном признаке код объекту будет присвоен автоматически в момент сохранения записи в БД. Такой алгоритм позволяет избежать пропусков в нумерации объектов. При запуске формы в поле будет высвечено слово ‘<АВТОНАЗНАЧЕНИЕ>’. Пользователь может ввести код самостоятельно. Если же пользователь не изменит значение этого поля, то в момент сохранения записи параметр ‘Код’ будет заполнен автоматически по установленным правилам.
  • Обработка команд интерфейса – изменяет действия, выполняемые по стандартным командам интерфейса.

Например. Для формы отчета изменена обработка команды ‘Назад’.

image-1648037078448.png

Сценарий

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

Список может как включать в себя как имеющиеся готовые сценарии (с добавлением к ним своих кнопок), так и быть составлен самостоятельно.

При описании сценария доступны все те атрибуты, которые рассматривались в главе ‘Сценарии’.

image-1648037161253.png

Если требуется, чтобы кнопка была подписана, то при описании кнопки необходимо ввести значение в поле ‘Имя’.

Рассмотрим пример панели инструментов. Библиотека ‘! Товародвижение’, раздел ‘Продукт’, раздел ‘Формы’, папка ‘Торговля’, форма ‘Товар’.

image-1648037205484.png

От родителей добавляются следующие пункты к сценарию:

image-1648037214267.png

В итоге пользователь увидит вот такую панель инструментов:

image-1648037231164.png

При описании вызова команды, вида просмотра, отчета или процедуры для пункта сценария можно указать атрибут ‘Сохранить изменения перед вызовом’. Наличие этого атрибута означает, что перед выполнением указанных действий вся введенная в форму информация будет записана в БД.

image-1648037247223.png

Перед вызовом видов просмотра для заполнения штриховых кодов и кодов для весов введенные в форму товара данные будут сохранены. Это позволит пользователю сразу перейти к вводу дополнительных кодов после заполнения полей формы. В противном случае, сначала необходимо сохранить введенную в форму информацию (по кнопке ‘Сохранить’), затем повторно вызвать форму и выбрать интересующий вид просмотра.

Закладки

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

Закладка объединяет в группу отдельные поля формы. Группа полей отображается на экране при нажатии клавиши, соответствующей закладке.

Все закладки формы регистрируются в разделе ‘Закладки’.

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

image-1648037343641.png

  • Наследуемые поля, колонки – для наследования закладок из родителя формы.
  • Закладка – для задания имени закладки.

Форма описания закладки содержит только одно поле ‘Имя’.

Распределение полей формы по закладкам происходит при описании полей с помощью атрибута ‘Закладка’.

Пример формы с закладками:

image-1648037383701.png

Для формы указаны четыре закладки: ‘Осн. данные’, ‘Адрес’, ‘Дополн.’, ‘Представитель’. Наименование текущей закладки отображается в заголовке формы.

Вот так выглядит распределение полей по закладкам для этой формы.

image-1648037407182.png

Поле ‘Код КПП организации’ отнесено к закладке ‘Осн. данные’. Поля ‘Почтовый индекс’ и ‘Страна’ распределены в закладку ‘Адрес’. Распределение остальных полей на рисунке не показано.

Список полей формы

Данный атрибут применяется для описания полей формы. В список полей можно включить поля из формы родителя.

При описании списка полей доступны следующие типы проектных элементов.

image-1648037593943.png

  • Наследуемые поля, колонки – для наследования полей из родителя формы.
  • Поле (колонка) для ввода данных – для описания поля, в которое можно будет ввести значение.
  • Поле (колонка), являющееся параметром объекта – для описания поля, которое предназначено только для отображения информации. В поле данного типа невозможно ввести информацию.
  • Выражение – для описания правил расчета какой-либо величины.
Поле (колонка), являющееся параметром объекта

Поля типа ‘Поле (колонка), являющееся параметром объекта’ обозначены в дереве проекта иконкойimage-1648037764657.png.

При описании поля данного типа требуется указать ‘Имя’ и ‘Класс’.

image-1648037638286.png

Имя будет высвечено перед значением поля в качестве подсказки. Класс определяет правило расчета значения. Можно выбрать либо параметр объекта, либо выражение, либо функцию.

Если не заполнить подсказку, то в качестве подсказки будет применено наименование того проектного элемента, ссылка на который находится в поле ‘Класс’.

Для каждого из полей можно задать следующие атрибуты.

image-1648037661577.png

Назначение большинства атрибутов совпадает с назначением подобных атрибутов колонки вида просмотра. Подробное описание таких атрибутов находится в главе ‘Виды просмотра’.

Рассмотрим остальные атрибуты.

  • Ширина – для задания ширины поля. Число символов для строк и число знаков для чисел.
  • Точность для числовых данных - задает число знаков после запятой для числовых полей.
  • Скрытое поле - при установленном признаке поле в форме не отображается. Подробное описание и пример использования находятся ниже в главе ‘Поле (колонка) для ввода данных’.
  • Закладка - для зачисления поля в группу полей, объединенных закладкой. Подробное описание и пример использования находятся ниже в главе ‘Поле (колонка) для ввода данных’.

Рассмотрим простой пример. В библиотеке ‘! Базовый набор’, в разделе ‘Партнер’, в папке ‘Оборудование’ имеется форма ‘Оборудование’. Для этой формы описаны два поля, являющиеся параметрами объекта Партнер.

image-1648037721139.png

В данной форме поля ‘Класс’ и ‘Тип’ имеют тип ‘Поле (колонка), являющееся параметром объекта’ и применены только для отображения данных. Значения в этих полях изменить нельзя.

Поле (колонка) для ввода данных

Поля данного типа обозначены в дереве проекта иконкойimage-1648037790619.png.

При описании поля требуется указать подсказку перед значением поля и вводимый параметр. Поле ‘Параметр’ заполняется либо ссылкой на параметр объекта, либо ссылкой на контекстную, глобальную или локальную переменную.

image-1648037807231.png

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

Для каждого из полей можно задать следующие атрибуты.

image-1648037825880.png

  • Обязательное для ввода поле – при установленном признаке значение данного поля должно быть обязательно введено.
  • Обязательно ненулевое значение (для числовых полей только) - при установленном признаке значение данного поля не может быть нулевым.
  • Обязательно неотрицательное значение (для числовых полей только) - при установленном признаке значение данного поля не может быть отрицательным.
  • Скрытое значение (пароль) – при установленном признаке значение данного поля отображается символами звездочка (*). Данный атрибут применяется при вводе паролей.
  • Не устанавливать фокус при входе в форму ввода – при установленном признаке курсор не будет установлен на данное поле.

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

image-1648037866166.png

В рассмотренном примере для поля ‘Весы’ задан признак ‘Не устанавливать фокус при входе в форму ввода’. При запуске формы курсор будет установлен на следующее поле - ‘PLU код’.

  • Только для просмотра – при установленном признаке значение поля изменить нельзя.
  • Скрытое поле – при установленном признаке поле в форме не отображается.

Данный признак применяется не только для маскировки отладочной информации. Иногда требуется записать введенное значение как в параметр объекта, так и в переменную. В этом случае для формы заводят два поля. Для второго поля задают правило расчета и объявляют его скрытым.

           Например.

image-1648037914913.png

Форма содержит два поля: ‘Поставщик’ и ‘Партнер: глобальная переменная’. Для дальнейшего алгоритма обработки формы проектировщику потребовалось занести в оба поля введенное пользователем значение контрагента документа. Первое поле применяется для ввода данных и заполняется в момент ввода. Для второго поля указано выражение для расчета, в соответствии с которым в данное поле копируется значение из первого поля. Отображать в форме второе поле не следует, поэтому для этого поля задан рассматриваемый признак.

  •  Доступно (видимо), если – задает условие отображения поля в форме.

Условие ссылается на выражение. Если выражение возвращает истинное значение, то поле будет отображено в форме.

image-1648037954598.png

Поле ‘Юридическое лицо’ появится в форме только в том случае, если выражение ‘Учет по Юридическим лицам’ вернет истинное значение.

  • Отображаемый текст для объектов БД – задает правило формирования отображаемого значения для полей, содержащих ссылку на какой-либо объект. Если правило не будет задано, то отображается параметр ‘Наименование’ объекта.

Например. Форма товара содержит поле ‘Товарная группа’. Это поле содержит ссылку на товарную группу. Требуется отобразить не только наименование подгруппы, но и код подгруппы. Это делается следующим образом.

image-1648038001261.png

Рассматриваемый атрибут  содержит ссылку на выражение ‘Код подгруппы + Полное наименование подгруппы’. Вот так описано в проекте данное выражение.

image-1648038035759.png

Выражение возвращает объединение кода подгруппы, наименования товарной группы и наименования подгруппы.

  • Выбор из списка – для ссылки на вид просмотра, содержащий список возможных значений поля. Для заполнения поля будет высвечен указанный вид просмотра.

image-1648038076723.png

Форма пользователя содержит поле для выбора сотрудника. При заполнении этого поля будет применен вид просмотра ‘Выбор сотрудника’.

  • Начальное значение – для описания начального значения поля. Начальное значение рассчитывается при запуске формы. Можно указать константу, переменную, выражение, функцию или параметр объекта. Атрибут используется только при вводе новой записи. В случае редактирования записи атрибут игнорируется.

image-1648038112942.png

При создании нового региона в поле ‘Страна’ будет предварительно записан текст ‘Россия’. Это значение можно изменить на другое.

  • Поиск объекта по значению (Идентификация введенного значения) – для описания правила распознавания (идентификации) объекта по введенному в поле значению.

Например. При вводе строки документа в поле ‘Продукт’ должна быть записана ссылка на запись таблицы ‘Продукт’. Конечно, можно ограничить пользователя единственным способом заполнения поля - выбрать продукт из списка. Тогда достаточно указать атрибут ‘Выбор из списка’.

Можно предложить и другие варианты заполнения поля: ввод кода продукта, ввод или считывание сканером штрихового кода, ввод кода от поставщика. Для поддержки этих вариантов требуется указать атрибут ‘Поиск объекта по значению (Идентификация введенного значения)’. Функция, на которую ссылается данный атрибут, проверит, чем является введенное значение. Это код продукта, это штриховой код или это код продукта, назначенный поставщиком. В результате проверки будет найдена запись таблицы ‘Продукт’, соответствующая введенному значению. Функция вернет ссылку на эту запись, и данная ссылка будет занесена в поле.

image-1648038160178.png

Вот так выглядит описание используемой функции.

image-1648038184198.png

Сначала введенное в поле значение проверяется на принадлежность к кодам товаров. Затем – на принадлежность к штриховым кодам. И в конце проверяется, не находится  ли введенное значение среди тех кодов продуктов, которые назначил поставщик.

  • Только для просмотра (недопустимо для изменения), если – задает условие, при котором невозможно изменить значение поля.

image-1648038212620.png

Если заполнено поле ‘Наименование’, то изменить код каталога уже нельзя. В данном случае смысл такого запрета состоит в следующем – нельзя изменять код для уже введенных записей. 

  • Выражение – задает правило расчета значения поля.

Например. При вводе продукта значение процента наценки требуется скопировать из одноименного поля товарной группы, к которой будет отнесен вводимый товар.

image-1648038243481.png

Для расчета значения поля ‘Процент наценки’ применяется выражение, которое возвращает значение параметра  ‘Процент наценки’ таблицы ‘Каталог’. Ссылка на запись таблицы ‘Каталог’ находится в поле ‘Товарная группа’. При описании данного выражения был применен уточняющий параметр. Подробнее об уточняющих параметрах написано в главе ‘Виды просмотра’.

При описании атрибута ‘Выражение’ доступны следующие типы проектных элементов.

image-1648038272961.png

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

Выражения рассчитываются при изменении полей формы ‘сверху вниз’. Т.е. после изменения значения какого-нибудь поля будут рассчитаны выражения только для тех полей, которые расположены ниже.

Будьте внимательны в расположении полей, поскольку именно порядок полей в форме определяет последовательность вычисления выражений.

Можно изменить указанное правило расчета, если для выражения указать атрибутРассчитывать при изменении полей’.

  • Набор условий (ОБЯЗАТЕЛЬНЫХ) для проверки введенного значения на корректность – задает список условий, которым обязательно должно соответствовать введенное значение поля. Если какое-либо из условий не выполняется, то введенное значение в поле не записывается. При описании атрибута можно указать сообщение для пользователя.

Пример. При вводе документа возврата товаров на склад для поля ‘Получатель’ указаны два обязательных условия. Если какое-либо условие не выполняется, то пользователь увидит соответствующее сообщение.

image-1648041449182.png

  • Набор условий (ЖЕЛАТЕЛЬНЫХ, в режиме ‘ПРЕДУПРЕЖДЕНИЕ’) для проверки введенного значения на корректность – задает список условий, которым желательно должно соответствовать введенное значение поля. Независимо от выполнения условий введенное значение записывается в поле. При описании атрибута можно указать сообщение для пользователя.

Пример. При вводе строк документа заказа для поля ‘Количество’ указана проверка введенного значения. Если значение поля будет больше остатка товара, то пользователь увидит соответствующее сообщение. 

image-1648041486404.png

  • Закладка – для зачисления поля в группу полей, объединенных закладкой. При заполнении атрибута будет отображен список зарегистрированных для формы закладок. Все закладки формы регистрируются в разделе ‘Закладки’.

           Пример.

Для формы ‘Банк’ указаны две закладки: ‘Основные данные’ и ‘Адрес’. Т.е. все поля формы распределены на две группы. Для зачисления поля в группу необходимо выбрать соответствующую закладку.

image-1648041528841.png

На следующем рисунке показано назначение атрибута Закладка для четырех полей. Для остальных полей атрибут задается аналогичным образом.

image-1648041561095.png

Все поля формы разделены на две группы. ‘Код’ и ‘Наименование’ отнесены к группе (закладке) ‘Основные данные’. Группа ‘Адрес’ содержит поля ‘Страна’ и ‘Город’. В какие группы зачислены другие поля на рисунке не показано для экономии места.

            Вот так выглядят закладки в форме

image-1648041612107.png

  • Формат – задает формат отображения значения поля. Может принимать одно из зарегистрированных в проекте значений формата.
  • Точность для числовых данных – задает число знаков после запятой для числовых полей. Числа отображаются и вводятся в форме с указанной точностью. Если в базе данных число записано с большей точностью, то при отображении в форме число будет обрезано до указанного числа десятичных знаков.
  • Ширина – для задания ширины поля. Число символов для строк и число знаков для чисел.

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

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

image-1648041704608.png

Поскольку в аналитику могут быть записаны разные объекты, то затруднительно придумать единое название поля для всех возможных случаев. Данный атрибут позволяет в качестве названия использовать наименование того объекта, который записан в поле документа ‘Аналитика 1 -Кредит’.

  • Внешний редактор поля объекта БД – задает специальную функцию для ввода значения поля. Указанную функцию можно запустить либо по щелчку правой кнопкой мыши, либо по клавише ‘Серый плюс’, либо нажав иконку с лупой, расположенную справа от значения поля.

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

Ввод больших текстов: 

image-1648041935025.png

Ввод даты с помощью календаря:

image-1648041961080.png

Выбор файла или директории

image-1648042032026.png

Создание группы форм, объединенных в одной папке

Группа форм создается для объединения в одной папке (под одним названием) нескольких форм. Это делается для того, чтобы было легче ориентироваться в многообразии элементов одного вида в дереве проекта.

image-1648042067456.png

Группа форм может содержать неограниченное число форм, Групп форм и Подстановок форм.

Подстановка формы

Подстановка применяется для изменения атрибутов формы.

Например. В библиотеке ‘!Товародвижение’ имеется форма ‘Товар’.

image-1648042104320.png

Найдем подстановку данной формы. Если в проект подключена библиотека ‘Торговая сеть’, то подстановку можно обнаружить в этой библиотеке.

image-1648042122807.png

В подстановке изменен список полей формы и сценарий. Добавлено описание атрибутов ‘Закладки’ и ‘Локальные переменные’.