Для создания экранной формы элемента данных в системе 1С:Предприятие используется специализированный редактор диалогов.
Диалог — это специально созданная экранная форма для ввода и просмотра какой-либо информации. При помощи диалогов программа запрашивает у пользователя ту информацию, которая необходима ей для дальнейшей работы, либо выдает какую-либо информацию пользователю для просмотра.
Окно диалога представляет собой прямоугольную область экрана, которая, в самом общем случае, содержит поясняющие надписи, поля для ввода информации и управляющие элементы (кнопки).
Можно сказать, что диалог является компьютерным аналогом бумажного документа. Как правило, документ получается путем заполнения специально подготовленного бланка. На таком бланке в типографии уже отпечатан поясняющий текст, который не может быть изменен. Бланк заполняется путем записи в специально отведенных местах требуемого текста.
Назначение диалога — предоставить пользователю удобную форму для ввода и просмотра информации. Как и бумажный документ. диалог позволяет быстро ввести необходимую информацию и запомнить ее для последующей обработки, а при необходимости — вновь вернуться к ранее введенным данным для просмотра или корректировки.
Для создания всего многообразия форм для ввода информации в документы и справочники редактор диалогов использует элементы следующих типов:
• текст; |
• поле ввода; |
• многострочная часть (таблица); |
• дерево; |
• список; |
• таблица значений; |
• поле со списком; |
• флажок; |
• кнопка; |
• картинка; |
• рамка. |
Краткие характеристики каждого элемента приведены ниже.
Элемент диалога типа «текст» позволяет отображать в окне диалога произвольный текст.
Текстовое поле может быть статическим или информационным.
Содержимое статического текстового поля не изменяется в процессе ввода информации в диалог. При создании в диалоге элемента этого типа сразу должен быть задан текст, который будет выдаваться в этом поле при работе с диалогом.
В информационных текстовых полях может выдаваться различная информация, причем содержимое поля может изменяться в процессе работы с диалогом. Для вывода текста в таком элементе используется символьная неременная, содержимое которой может из меняться из модуля диалога.
Поле ввода служит для ввода информации, которая затем будет запоминаться и (или) обрабатываться. В процессе работы с диалогом в таком поле ввода появляется курсор, и в него можно вводить информацию.
Редактор диалогов позволяет создавать поля ввода двух типов: реквизит диалога и реквизит, связанный с соответствующим реквизитом того объекта метаданных, к которому «прикреплен» диалог. Эти два типа реквизитов диалога отличаются способами создания и набором своих свойств. Подробнее об этом будет рассказано в п. «Создание элементов диалога», стр. 6, и п. «Свойства элементов диалога», стр. 11.
Многострочная часть (таблица) — специальный элемент диалога, который организует ввод информации в таблицу. Может быть создан, только когда связанный с диалогом вид данных имеет табличную часть: это может быть справочник, журнал документов или документ.
Элемент типа «многострочная часть» в диалоге может быть только один. Имеется возможность вставки в диалог элементов типа табличного типа, однако у них другие функции — см. ниже «Таблица значений».
Специальный элемент, который связан с таблицей, и используется тогда, когда представляемый таблицей список данных может иметь иерархическую структуру. Подобным списком данных может быть, например, многоуровневый справочник товаров. В таких случаях, наряду с обязательным элементом типа «многострочная часть», в диалог может быть введен элемент «дерево». Использование элемента типа «дерево», наряду с многострочной частью, позволяет более наглядно отображать структуру справочника.
Элемент типа «дерево» в диалоге может быть только один.
Элемент диалога типа «список» позволяет показать пользователю список значений и предоставляет возможность выбрать одно из этих значений.
Элемент диалога типа «список» тесно связан с агрегатным типом данных СписокЗначений (см. книгу «Описание встроенного языка»). Так, все действия по управлению списком значений (добавление значения в список, удаление значения из списка, сортировка списка и другие) выполняются только средствами встроенного языка. Можно сказать, что элемент диалога типа «список» служит для визуализации агрегатного типа данных СписокЗначений.
Элемент диалога типа «таблица значений» позволяет показать пользователю таблицу значений и предоставляет возможность выбрать одно из этих значений.
Элемент диалога типа «таблица значений» тесно связан с агрегатным типом данных ТаблицаЗначений (см. книгу «Описание встроенного языка»). Все действия по управлению таблицей значений (добавление значения в таблицу, удаление значения из таблицы, сортировка значений в таблице и другие) выполняются только средствами встроенного языка. Можно сказать, что элемент диалога типа «таблица значений» служит для визуализации агрегатного типа данных ТаблицаЗначений.
Назначение элемента диалога типа «поле со списком» аналогично элементу типа «список». Разница между ними заключается в их визуальном представлении: для доступа к списку значения элемента типа «поле со списком» следует нажать кнопку , расположенную в правой части поля.
В отличие от элементов диалогов других типов, элемент «поле со списком» может частично располагаться вне границ шаблона окна диалога. В этом случае в пределах шаблона окна диалога должна располагаться верхняя часть элемента, содержащая поле ввода.
Элемент типа «флажок» предоставляет пользователю возможность управления типа «Включено/Выключено». В зависимости от состояния элемента типа «флажок» может быть выбран тот или иной путь обработки введенной пользователем информации.
Элемент типа «Переключатель» предоставляет пользователю возможность выбора одного из нескольких значений. По своему назначению этот элемент похож на элементы типа «Таблица значений», «Список» и «Поле со списком», с той лишь разницей, что значения переключателя жестко задаются при создании диалога, а у перечисленных выше типов элементов могут формироваться динамически в процессе работы с диалогом.
В зависимости от выбранного значения переключателя, может быть выбран тот или иной путь обработки информации, указанной пользователем.
Элемент типа «кнопка» позволяет создать в окне диалога стандартную Windows-кнопку. С кнопкой обычно связана процедура на встроенном языке, которая будет выполняться при нажатии на кнопку.
Элемент типа «картинка» служит для размещения в окне диалога картинки. Такой элемент не несет никакой функциональной нагрузки и используется только для оформления.
Элемент типа «рамка» позволяет создать вокруг группы любых других элементов диалога рамку с поясняющим заголовком. Никакой функциональной нагрузки данный элемент не несет, он используется только для рациональной организации других элементов диалога.
Кроме перечисленных выше элементов, которые, собственно, и образуют сам диалог, существует еще один элемент, который является объединяющим по отношению к остальным. Это шаблон окна диалога — прямоугольная область, на которой располагаются все остальные элементы диалога. Этот элемент имеет особые свойства, о них будет рассказано ниже.
Если какой-либо элемент данных имеет визуальное представление, то в диалоге для редактирования свойств этого элемента данных обязательно будет присутствовать кнопка для вызова редактора форм.
Диалог создается автоматически после того, как определен новый элемент данных. В окне диалога могут размещаться реквизиты и управляющие элементы, задаваемые по умолчанию. Например, для диалога ввода записей в справочник автоматически создаются реквизиты для ввода кода элемента справочника и его наименования, а также кнопки «ОК» и «Отмена». В дальнейшем при формировании диалога на него помещаются реквизиты для ввода информации, поясняющий текст и кнопки. Таблица помещается в окне диалога ав тематически, если связанный с диалогом элемент данных имеет табличную часть.
Шаблоном окна диалога называется прямоугольная область, в пределах которой должны размещаться все элементы, образующие диалог. Шаблон окна создается для нового диалога и в дальнейшем только редактируется.
По своим свойствам шаблон окна похож на прочие элементы диалога, однако имеет некоторые отличия.
Шаблон окна всегда создается автоматически.
Шаблон окна диалога нельзя перемещать и копировать — он имеет фиксированное положение в окне редактора диалогов.
И, наконец, шаблон окна нельзя удалить.
Для шаблона окна диалога доступны только операция изменения его размеров. Размеры шаблона окна определяют размеры диалога в целом.
Для редактирования шаблона окна диалога его следует выбрать. Для этого щелкните мышью в любом месте шаблона окна диалога, свободном от элементов диалога. Если шаблон окна выбран, вдоль нижней и правой сторон шаблона появятся линии с небольшими квадратными маркерами на середине каждой линии и в месте пересечения этих линий.
Для изменения размеров шаблона окна диалога следует мышью перетащить один из маркеров в новое положение. Для изменения ширины шаблона окна диалога следует перетаскивать маркер, расположенный на середине линии, проходящей вдоль правой границы шаблона; для изменения высоты шаблона следует перетаскивать маркер, расположенный на середине линии, проходящей вдоль нижней границы шаблона окна диалога; для изменения обоих размеров перетаскивайте маркер, расположенные на пересечении линий, в правом нижнем углу шаблона окна диалога.
В процессе перемещения любого маркера тонкая рамка будет обозначать новые размеры шаблона окна диалога. При включенной привязке к разметочной сетке размеры шаблона окна диалога будут меняться скачкообразно, в соответствии с установленным шагом разметочной сетки (см. ниже, п. «Разметка»).
Процесс редактирования диалога заключается в размещении в пределах шаблона окна диалога элементов описанных выше типов и редактировании их свойств. Подробно об этом будет рассказано ниже в соответствующих параграфах.
Для редактирования окна диалога вы можете использовать мышь или клавиатуру. При появлении на экране редактируемого диалога становятся доступными кнопки панели инструментов «Редактор диалогов».
Для удобства размещения и установки размеров элементов диалога можно использовать разметку. Разметка представляет собой сетку из горизонтальных и вертикальных линий, ориентируясь на которые, можно задавать точное положение реквизитов в окне диалога и устанавливать их размеры. Вы можете управлять шагом разметочной сетки, включать и выключать привязку элементов диалога к сетке, а также показывать сетку или прятать ее.
Если включен режим показа разметочной сетки, разметка вне шаблона окна диалога показывается как сетка линий. Внутри шаблона окна диалога разметка изображается точками, расположенными в местах пересечения линий разметки.
Для управления разметочной сеткой служит пункт «Разметка» меню «Диалог» главного меню программы. При выборе этого пункта на экран будет выдан запрос для установки режимов разметочной сетки.
Прежде всего, вы можете задать шаг сетки — размер ячеек сетки по горизонтали и вертикали. Для этого в соответствующие поля запроса следует ввести целое число от 3 до 50. Единица шага сетки по ширине равна 1/4, а по высоте — 1/8 размера шрифта диалога (см. п. «Свойства шаблона окна», стр. 13).
Числа, задающие размер ячеек по горизонтали и вертикали, могут быть разными.
Переключатель «Ориентироваться по разметке» позволяет включить автоматическую привязку элементов диалога к разметочной сетке. В этом случае, при перемещении элемента диалога или изменении его размеров, линии, ограничивающие элемент диалога, буду! автоматически располагаться вдоль ближайших к ним линий разметочной сетки.
И, наконец, переключатель «Показать разметку» позволяет сделать разметочную сетку видимой (если переключатель включен) или спрятать ее.
Одним из свойств, присущих элементу диалога, является свойство видимости (см. п. «Свойства элементов диалога», стр. 11). Встроенный язык системы 1С:Предприятие включает средства управления этим свойством. Это позволяет создавать диалоги, динамически меняющие состав своих элементов в зависимости от действий пользователя.
Например, при создании диалога для ввода документ;) «Счет-фактура», помимо реквизита «Покупатель», можно предусмотреть элемент типа «Флажок» с текстом «Грузополучатель — он же», который по умолчанию будет включен. При отключении этого флажка будет появляться поле ввода для выбора организации-грузополучателя.
При недостатке места в пределах шаблона окна диалога «появляющиеся» элементы диалога могут накладываться друг на друга. В этом случае редактирование диалога в редакторе форм становится непростой задачей.
Для облегчения редактирования таких диалогов в редакторе диалогов существует механизм слоев. Слой — это воображаемая поверхность, параллельная плоскости шаблона окна диалога, предназначенная для размещения элементов диалога.
В процессе редактирования диалога может быть создано необходимое количество слоев. Элементы диалога при создании помещаются на один из существующих слоев, назначенный активным слоем. Любой слой может быть «спрятан» (сделан невидимым), тогда расположенные на этом слое управляющие элементы не будут мешать при редактировании управляющих элементов диалога, расположенных на других слоях. Редактирование элементов диалога выполняется «сквозь слои», то есть для редактирования доступен любой элемент из любого видимого слоя.
Для управления слоями используется диалог, который вызывается командой «Слои» из меню «Диалог» главного меню Конфигуратора или кнопкой панели инструментов «Редактор диалогов».
Диалог «Слои» содержит окно со списком слоев и кнопки для управления слоями. По умолчанию в списке присутствует слой с именем «Основной».
Окно со списком слоев содержит 3 колонки.
В правой колонке (самой широкой) выдаются идентификаторы существующих слоев.
В средней колонке значком обозначается активный слой. Этот значок можно поставить двойным щелчком мыши в этой колонке напротив наименования нужного слоя. Он может быть проставлен только у одного из слоев. При постановке значка у какого-либо слоя он автоматически снимается с предыдущего активного слоя.
При редактировании диалога новые элементы помещаются на активном слое.
В крайней левой колонке списка значком обозначены видимые слои. Эти значки можно ставить или снимать двойным щелчком мыши в этой колонке напротив наименования нужного слоя. В отличие от признака активного слоя, видимость слоев можно включать произвольно, однако видимость нельзя снять у активного слоя, а при назначении активным невидимого слоя он автоматически становится видимым.
Если дважды щелкнуть мышью на идентификаторе слоя, выбранный слой станет видимым и активным, а у всех остальных слоев видимость будет принудительно отключена. Этой возможностью удобно пользоваться для просмотра содержимого слоев или для быстрого «включения» нужного слоя.
Видимостью слоев можно управлять также из встроенного языки системы 1С:Предприятие, для этого предусмотрен метод ИспользоватьСлой.
Для создания слоя следует нажать кнопку («Новый слой») и диалоге «Слои». На экран будет выдан диалог для ввода идентификатора нового слоя.
Идентификатор слоя представляет собой произвольную строку символов. В отличие от идентификатора объекта метаданных, может содержать пробелы и специальные символы.
Видимый, Активный. Используя эти флажки, можно при создании слоя сделать его видимым и активным, или отключить одно или оба этих свойства. Если свойство «Активный» у нового слоя включено, оно будет автоматически отключено у текущего активного слоя.
Новый слой всегда добавляется в конец списка слоев.
Любой слой в списке можно переименовать, для этого необходимо в диалоге «Слои» выделить идентификатор слоя и нажать кнопку («Редактировать слой»). В выданном на экран диалоге можно отредактировать идентификатор слоя, а также установить или снять флажки видимости и активности.
Любой слой может быть удален из диалога. Для удаления слоя необходимо в диалоге «Слои» выделить его наименование и нажать кнопку («Удалить слой»). После подтверждения необходимости удаления слоя на экран будет выдан диалог «Удаление слоя». В этом диалоге необходимо выбрать одну из двух опций. Если выбрана опция «Удалить элементы слоя», то вместе со слоем будут удалены также элементы диалога, расположенные на этом слое.
Если выбрана опция «Переместить элементы», то в списке «Доступные слои» необходимо выбрать наименование одного из слоев. В этом случае управляющие элементы удаляемого слоя будут перемещены на указанный слой.
Если удаляется активный слой, то активным автоматически становится первый по порядку слой в списке.
Замечание. Из диалога не удаляется последний оставшийся слой.
Порядок расположения слоев в списке диалога «Слои» соответствует их реальному положению в диалоге: чем выше слой расположен в списке, тем «ближе» он находится к пользователю. Выражается это, например, в том, что элементы, расположенные на ближнем слое, будут закрывать собой элементы на более «дальних» слоях.
Взаимное положение слоев в списке диалога «Слои» можно менять, аналогичным образом изменяется и положение слоев в диалоге.
Чтобы изменить положение слоя, следует выделить его наименование в списке слоев и использовать кнопки («Переместить вверх») и («Переместить вниз»).
При создании элементов диалога они автоматически помещаются на активный слой (тот, который обозначен значком в списке слоев). Однако, механизм слоев позволяет перемещать элементы диалога между слоями.
Для перемещения элемента диалога в другой слой необходимо выделить его и выбрать пункт «Поместить» в меню «Диалог» главного меню Конфигуратора. В выданном подменю следует указать, в какой слой будет перемещен выбранный элемент диалога.
Элементы диалога можно разделить на 2 группы. В первую группу входят элементы, которые несут, в основном, оформительские и управляющие функции. Это все элементы, о которых шла речь в п. «Элементы диалога» на стр. 1 — текст, рамка, кнопка, реквизит и т. д.
Вторую группу элементов диалога составляют реквизиты диалога, связанные с объектами метаданных — реквизитами справочника, реквизитами шапки и табличной части документа, дополнительными графами журнала и подобными. Реквизиты этой группы служат, в основном, для ввода, просмотра и редактирования значения соответствующего объекта метаданных.
Приемы создания несколько различаются для элементов диалога этих двух групп.
Когда диалог открывается для редактирования в первый раз, он, как правило, содержит элементы, создаваемые по умолчанию. Состав этих элементов зависит от типа объекта метаданных, для которого создается диалог. Прочие элементы могут быть добавлены в процессе редактирования диалога.
Кроме того, при открытии или создании новой формы активизируется диалог автоматического размещения реквизитов диалога. Это описанный ниже диалог «Размещение реквизитов», в котором уже выбраны для вставки в форму все реквизиты и включены опции «Разместить в диалоге автоматически» и «Вставить имя». Остается нажать кнопку «Вставить» или нажать Enter, и все реквизиты будут вставлены. Этот режим можно отключить (опция есть в диалоге).
Создание элемента диалога. Для создания элемента диалога нужного типа необходимо воспользоваться меню «Вставить» главного меню программы или кнопками панели инструментов «Элементы диалога». Из этого меню (или панели) следует выбрать тип создаваемого элемента диалога. Можно также вызвать диалог «Создание нового элемента диалога» (см. ниже).
Теперь следует в пределах шаблона окна диалога обвести предполагаемую область размещения создаваемого элемента. Указатель мыши при этом будет иметь вид перекрестия, возле которого расположен символ вставляемого элемента. Элемент диалога будет создан после отпускания кнопки мыши.
Расположение и размеры созданного элемента диалога определяются обведенной областью, однако элемент диалога не может быть меньше минимального размера (см. ниже п. «Перемещение, копирование и изменение размеров элементов диалога», стр. 8).
Вместо обведения области размещения можно просто поместить указатель мыши на нужное место и щелкнуть. При таком способе создания элемента диалога он будет иметь размеры, задаваемые по умолчанию.
Расположение и размеры созданного элемента диалога можно изменить. Как это сделать — рассказывается в последующих параграфах данной главы.
Новый элемент диалога всегда создается в активном слое.
Создание реквизита объекта метаданных. Чтобы вставить элементы диалога, связанные с объектами метаданных, используется диалог «Размещение...» (реквизитов документа, справочника, граф журнала — конкретное наименование диалога зависит от объекта метаданных, форма которого редактируется).
Этот диалог может вызываться двумя способами: «вручную» — из главного меню Конфигуратора, или автоматически — при первом открытии новой формы объекта метаданных.
Для вызова диалога «вручную» необходимо выбрать пункт «Реквизиты» из меню «Вставить» главного меню Конфигуратора.
Вид диалога различается в зависимости от типа редактируемого объекта метаданных и вида редактируемой формы (форма элемента или формы списков), однако, назначение диалога от этого не меняется
Для тех реквизитов, которые уже размещены в диалоге, слева от наименования реквизита будет стоять отметка , сами наименования будут даны серым цветом, и такие наименования нельзя выбрать.
В этом диалоге можно отметить те реквизиты, которые необходимо вставлять в редактируемый диалог, для этого следует поставить отметки возле этих реквизитов. При этом также можно использовать опции «Разместить в диалоге автоматически» и «Вставить имя». Для вставки реквизитов следует нажать кнопку «Вставить».
Для вставки в редактируемый диалог конкретного реквизита следует дважды щелкнуть его мышью.
Если установлен флажок «Разместить в диалоге автоматически», вставляемый элемент (или элементы) диалога появится в форме без указания курсором области размещения. При этом он будет иметь установленные ему по умолчанию размеры. Эти размеры, например, у поля ввода, зависят от типа значения, которое будет туда помещено, и от количества знаков, определенного для данного реквизита (строки, числа).
Если включить опцию «Вставлять имя», то в диалог будет помещен не только реквизит — как поле ввода, но и его наименование — как реквизит типа «Текст».
При выборе реквизита числового типа в диалоге «Размещение...» появляется дополнительная опция «Редактировать флажком». Если ее включить (опция «Вставить имя» делается при этом недоступной), при вставке реквизита будет создан реквизит типа «Флажок». В этом случае числовой реквизит, который представлен флажком, может принимать только 2 значения: 1 — если флажок установлен, и 0 — если снят.
При вставке реквизитов табличной части автоматически создается элемент диалога типа «Таблица», содержащий колонки, соответствующие выбранным реквизитам. Ширина колонок таблицы по умолчанию также зависит от типа и длины значения, для которого они предназначены.
Наконец, можно выбрать для вставки сразу все еще не вставленные реквизиты специальными кнопками справа от списков.
Флажок «Вызывать для новых форм» позволяет отключить вызов диалога «Размещение...» для новых форм объектов метаданных.
Создание элемента диалога типа «Таблица». Отдельно следует остановиться на создании элемента типа «Таблица».
Этот элемент автоматически создается в том случае, если диалог связан с объектом метаданных, имеющим табличную часть. Например, для справочника элемент «Таблица» создается при редактировании форм списка, для документа — если в диалог вставляется хотя бы один реквизит табличной части, для журнала таблица создастся всегда. Наряду с общими для прочих элементов диалога свойствами, элемент «Таблица» обладает также рядом особенностей. Подробно работа с элементом этого типа рассматривается в параграфе «Работа с элементом типа «Таблица», стр. 20.
Диалог «Создание нового элемента диалога». Для вызова диалога «Создание нового элемента диалога» нужно выбрать в меню «Вставить» пункт «Элемент диалога».
Диалог содержит список возможных типов элементов диалога, в котором необходимо выбрать тип создаваемого элемента, и, кроме того, предоставляет возможность сразу указать идентификатор, заголовок, формулу, тип (для элементов типа «Реквизит диалога»).
При создании элементов типа «Реквизит диалога» можно установить флажок «Вставить кнопку «Очистить», тогда при вставке реквизита справа от него будет добавлена кнопка «X» для очистки содержимого реквизита.
При создании элементов диалога, имеющих формулу, можно установить флажок «Создать процедуру», тогда при вставке такого элемента диалога в модуле формы будет создана процедура с именем, указанным в поле «Формула».
Наконец, в списке создаваемых элементов имеется строка «Выбор периода». Выбор это строки создает сразу пять элементов диалога, совместно обеспечивающих задание периода: два реквизита типа «Дата» (с кнопкой вызова календаря в каждом из них), их текстовые обозначения «Период с» и «по» и кнопку «...» для вызова системной функций ВвестиПериод(). Эта функция выдает диалог для интерактивного выбора периода.
Для того чтобы над элементом диалога можно было произвести какие-либо действия, его необходимо некоторым образом отметить.
Выделение одного элемента. Для выделения одного элемента необходимо щелкнуть на элементе левой кнопкой мыши.
Выбранный элемент окаймляется пунктирной рамкой, на которой расположены восемь небольших квадратных маркеров: четыре из них расположены в середине каждой из четырех сторон рамки и четыре — в ее углах. Эти маркеры служат для изменения размеров элемента диалога.
Для выделения любого другого элемента диалога достаточно щелкнуть мышью на этом элементе.
Выделение группы смежных элементов. Для выделения группы элементов, расположенных друг возле друга, поместите указатель мыши вне группы, и, нажав левую кнопку мыши, обведите элементы диалога пунктирной рамкой.
Выделение группы несмежных элементов. Для выделения группы произвольно расположенных элементов диалога необходимо щелкать по выбранным элементам левой кнопкой мыши при нажатой клавише Shift.
Для исключения выделенного элемента диалога из группы выбранных элементов следует повторно щелкнуть на этом элементе левой кнопкой мыши, держа при этом нажатой клавишу Shift.
Выбор элемента-образца. Для выполнения ряда групповых операций над элементами диалога — например, выравнивания или изменения размеров — среди выделенных элементов должен быть выбран элемент-образец.
Образцом считается элемент, у которого на пунктирной рамке расположены маркеры изменения размера. Обычно это будет последний выделенный элемент диалога. Чтобы выбрать в качестве образца для установки размеров какой-либо другой элемент диалога, следует щелкнуть его мышью при нажатой клавише Ctrl.
Элементы диалога можно копировать, перемещать и изменять их размеры.
Перемещение. Для перемещения элемента диалога перетащить его мышью на новое место.
Если включена функция «Ориентировать по разметке», то перемещение элемента диалога будет осуществляться «скачкообразно» — левая и верхняя сторона пунктирной рамки, ограничивающей элемент диалога, будут автоматически располагаться вдоль ближайших линий разметочной сетки.
Координаты выделенных элементов диалога отображаются в статусной строке внизу экрана, позволяя точно отслеживать перемещение элементов. Координаты выдаются в виде 65, 78. В этом примере 65 — отсчитанная от левого края шаблона окна диалога горизонтальная координата левого края рамки элемента (если выделена группа элементов, то это координата того из них, у которого левая сторона рамки выделения расположена левее, чем у всех остальных в группе), 78 — отсчитанная от верхнего края шаблона окна диалога вертикальная координата верхнего края рамки элемента (если выделена группа элементов, то это координата того из них, у которого верхняя сторона рамки выделения расположена выше, чем у всех остальных в группе).
Перемещение выделенного элемента диалога (или группы выделенных элементов) происходит также при нажатии курсорных стрелок клавиатуры. При этом способе разметка не влияет на перемещение элемента: оно происходит с единичным шагом по горизонтали или вертикали.
Копирование. Копирование элементов диалога может быть полезным, когда требуется создать много однотипных элементов диалога (например, реквизитов для ввода данных).
Для копирования можно использовать команды «Запомнить» и «Вставить» меню «Действия» главного меню Конфигуратора или соответствующие им комбинации клавиш Ctrl+Ins (или Ctrl+C), Shift+Ins (или Ctrl+V).
Удобно выполнять копирование элементов диалога при помощи мыши, для этого достаточно перетащить выбранный элемент диалога мышью при нажатой клавише Ctrl. После отпуска кнопки мыши будет создана копия элемента-образца.
Копирование в другую конфигурацию. Элементы диалога можно копировать не только в пределах шаблона окна диалога, но и между конфигурациями. При копировании используются возможности Буфера Обмена MS Windows.
Порядок и правила копирования элементов диалога между конфигурациями в основном совпадают с теми, которые были изложены в гл. «Работа с конфигурацией».
При копировании элемента диалога типа «Реквизит», связанного с объектом метаданных, сам объект метаданных не копируется. Копируемый реквизит преобразуется в элемент типа «Реквизит диалога» и пытается сохранить все свойства (идентификатор, тип значения, длину и точность значения, и пр.), которые были у исходного реквизита. Привязка скопированного реквизита выполняется по общим правилам.
Изменение размеров. Вокруг выделенного элемента диалога помещается пунктирная рамка, на которой расположены восемь маркеров: четыре из них расположены в середине каждой из четырех сторон рамки и четыре — в ее углах.
Маркеры, расположенные на сторонах рамки, предназначены для изменения одного размера элемента (длины или ширины). Маркеры, находящиеся в углах, служат для изменения сразу обоих размеров. Для изменения размеров элемента диалога перетащите мышью один из маркеров.
Если включена функция «Ориентировать по разметке», то изменение размеров реквизита будет осуществляться «скачкообразно» — стороны рамки, ограничивающей элемент диалога, которые «тянутся» мышью, будут автоматически располагаться вдоль ближайшей линии разметочной сетки.
Размеры выделенных элементов диалога отображаются в статусной строке внизу экрана, что позволяет точно отслеживать изменения размеров. Размеры выдаются в виде 367 x 201. Это габаритные размеры рамки выделения элемента или группы выделенных элементов.
Для изменения размеров выделенного элемента диалога можно также нажимать курсорные стрелки клавиатуры при нажатой клавише Shift. При этом нижний правый угол рамки элемента перемещается в сторону, определяемую выбранной стрелкой, а верхний левый остается на месте, обеспечивая изменение размеров. При этом способе разметка не влияет на изменение размеров элемента. Оно происходит с единичным шагом по вертикали или горизонтали.
Автоматическая установка размеров. Для установки одинакового размера нескольких элементов можно ориентироваться по разметке. Однако редактор диалогов позволяет автоматически устанавливать размеры элементов диалога, используя в качестве образца один из элементов.
Для установки размера элементов диалога следует сначала выделить эти элементы (должны быть выбраны, как минимум, два элемента) и выбрать элемент-образец (см. выше).
Автоматическая установка размеров выполняется при помощи подменю «Одинаковый размер» из меню «Диалог» главного меню программы или кнопок панели инструментов «Редактор диалогов». Вы можете установить для выбранных элементов одинаковый размер по высоте (команда «По высоте»), по ширине (команда «По ширине»,) или установить одинаковый размер всех выбранных элементов (команда «Одинаковый размер»).
Минимальный размер. У всех элементов диалога существует минимальный размер по горизонтали и по вертикали (например, у кнопки и у текста - 8 x 8, у поля ввода - 13 x 13). Уменьшая размеры элемента, нельзя установить ему размеры меньше минимальных. Если при создании элемента обвести предполагаемую область размещения создаваемого элемента так, что какой-то из размеров этой области будет меньше минимального размера создаваемого элемента, данный размер также будет увеличен до минимального.
Аккуратное размещение элементов диалога в окне позволяет впоследствии удобно и эффективно с ним работать. Редактор диалогов предоставляет разнообразные возможности для выравнивания элементов диалога в окне диалога.
Можно использовать разметку для задания точного положения или одинакового размера элементов диалога в процессе их создания или размещения в окне диалога.
После того, как все необходимые элементы диалога уже размещены в окне, для автоматического выравнивания их положения или размеров можно пользоваться функциями из меню «Диалог» главного меню Конфигуратора или контекстного меню и соответствующими кнопками напели инструментов «Редактор диалогов». Они позволяют размещать элементы диалога, задав в качестве ориентира положение любого из них, автоматически помещать реквизит в центр окна диалога, задавать элементам диалога одинаковые размеры, а также автоматически устанавливать равные расстояния между ними.
Выравнивание по образцу. Вы можете значительно улучшить внешний вид созданного вами диалога, если его элементы, расположенные друг под другом, будут выровнены по вертикали, а элементы, расположенные в ряд, — по горизонтали. Функция «Выровнять» меню «Диалог» позволяет указать, какие стороны выбранных элементов диалога будут выровнены.
Элементы диалога, которые требуется выровнять, необходимо выделить и выбрать элемент-образец (см. в разделе «Выделение элементов диалога», стр. 7).
Затем следует воспользоваться одним из пунктов подменю «Выровнять» из меню «Диалог» главного меню Конфигуратора:
по левому краю |
выровнять левые стороны всех выделенных элементов по левой стороне элемента-образца; |
по правому краю |
выровнять правые стороны всех выделенных элементов по правой стороне элемента-образца; |
по верхнему краю |
выровнять верхние стороны всех выделенных элементов по верхней стороне элемента-образца; |
по нижнему краю |
выровнять нижние стороны всех выделенных элементов по нижней стороне элемента-образца; |
Равномерное распределение. Иногда нужно расположить несколько элементов диалога так, чтобы между ними были одинаковые расстояния по горизонтали или по вертикали. Это можно сделать с помощью команд подменю «Равномерно распределить» меню «Диалог» или кнопок панели инструментов «Редактор диалогов».
Нужно выделить по крайней мере три элемента диалога (команды и кнопки станут доступными) и выбрать п указанном подменю команду «По горизонтали» или «По вертикали».
При этом требуется, чтобы в результате распределения между элементами были хоть какие-то расстояния: если в итоге намеченного распределения элементы должны перекрыться, соответственно, по горизонтали или вертикали, то команда не работает (очевидно, в этом случае и в исходной ситуации они перекрываются, но это как раз неважно).
Если какие-то из выделенных элементов в исходной ситуации расположены одинаково, их порядок в полученном распределении будет определяться порядком, в котором они были выделены.
Центрирование элемента. Иногда возникает необходимость поместить какой-либо из элементов точно в центр окна диалога. Можно сделать это, используя разметку, а можно воспользоваться подменю «Центр» из меню «Диалог» главного меню программы или соответствующими кнопками панели инструментов «Редактор диалогов». Они позволяют автоматически переместить выбранный элемент диалога (или несколько элементов) в середину окна диалога:
по вертикали |
выбранный элемент будет передвинут по горизонтали и размещен так, чтобы его центр находился на одной вертикальной линии с центром окна диалога; |
по горизонтали |
выбранный элемент будет передвинут по вертикали и размещен так, чтобы его центр находился на одной горизонтальной линии с центром окна диалога. |
Для удаления элемента диалога его необходимо выделить и нажать клавишу Del.
Для отмены ошибочных действий следует воспользоваться функцией «Отменить» из меню «Действия» главного меню Конфигуратора. При выборе этой функции последняя выполненная операция — создание элемента диалога, его перемещение, копирование, изменение размеров и тому подобное — будет отменена. Для быстроты удобнее использовать горячие клавиши — комбинацию Ctrl+Z или ее аналог Alt+Backspace.
Однако, существует более простой способ отменить выполнение нежелательных действий. Предположим, вы перемещаете какой-либо элемент диалога мышью, и «по дороге» вдруг передумали это делать. Тогда, не отпуская левую кнопку мыши, нажмите клавишу Esc — тонкая рамка, отмечающая положение элемента диалога в процессе перемещения, пропадет. Теперь можно отпустить левую кнопку мыши — никаких изменений сделано не будет.
Этот прием срабатывает и для других операций, выполняемых мышью: создание элемента диалога, его копирование и изменение размеров.
Редактор диалогов позволяет установить порядок обхода элементов по нажатию клавиши Tab при работе пользователя с диалогом. Существует четыре способа установить порядок обхода.
Автоматический порядок обхода. Каждый элемент диалога имеет свой порядковый номер, в соответствии с которым осуществляется обход элементов диалога. По умолчанию номера расставляются слева направо сверху вниз по слоям, так же осуществляется обход элементов диалога.
После каких-либо изменений в диалоге этот порядок обхода можно восстановить, выбрав пункт «Автомат, порядок обхода» в меню «Диалог» главного меню Конфигуратора. Автоматический порядок обхода будет восстановлен после закрытия и открытия редактируемой формы.
Смена номера элемента в порядке обхода. Пункты «Предыдущая позиция», «Следующая позиция» из меню «Диалог» главного меню Конфигуратора или соответствующие «горячие клавиши» Ctrl+PgUp, Ctrl+PgDn позволяют переопределить автоматический порядок обхода элементов, задаваемый по умолчанию. Для этого необходимо выделить элемент диалога и выбрать пункт «Предыдущая позиция» или «Следующая позиция» или соответствующую комбинацию клавиш для перемещения элемента диалога соответственно на предыдущую или следующую позицию в порядке обхода.
Назначение порядка обхода «вручную». Редактор диалогов позволяет назначить порядок обхода элементов диалога «вручную» — просто указываю мышью последовательность обхода.
Для расстановки порядка обхода элементов диалога «вручную» следует в меню «Диалог» главного меню Конфигуратора отключить пункт «Автомат, порядок обхода» и выбрать пункт «Порядок обхода». После выбора этой функции у каждого элемента появится квадратная рамка с цифрой, соответствующей порядковому номеру элемента при обходе. Для задания порядка обхода необходимо выбирать мышью элементы диалога в нужной последовательности обхода. При этом нумерация элементов будет изменяться, показывая выбранную последовательность обхода. Для выхода из функции определения порядка обхода достаточно щелкнуть мышью в любом свободном месте окна редактора диалогов.
Описанный выше способ, хотя и позволяет быстро назначить порядок обхода, обладает рядом недостатков: например, каждый раз порядок обхода приходится назначать заново, последовательно выбирая все элементы диалога. Поэтому этот способ рекомендуется для диалогов, содержащих малое количество элементов и всего один слой.
Для диалогов, содержащих несколько слоев, данный режим имеет следующие особенности.
Порядок обхода вручную задается только для активного слоя. Если, помимо активного, видны другие слои диалога, рамки с номерами будут только у элементов активного слоя.
Чтобы задать порядок обхода для неактивного слоя, необходимо сделать его активным, воспользовавшись диалогом «Слои».
Каждый элемент диалога имеет уникальный номер в порядке обхода. При назначении порядка обхода номера элементов показываются с учетом слоя.
Например, диалог имеет 15 элементов, распределенных по трем слоям: элементы первого слоя имеют номера с 1 по 5, второго — с 6 по 10, и последнего — с 11 по 15. Тогда при назначении порядка обхода для элементов 3-го слоя пользователь будет видеть (и расставлять) номера с 11 по 15-й.
При создании нового элемента диалога он становится первым в порядке обхода этого слоя — этому элементу присваивается наименьший номер из номеров слоя, номера этого и последующих слоев сдвигаются на 1, но последовательность расстановки номеров при этом сохраняется.
При удалении элемента диалога номера последующих элементов уменьшаются на единицу, так же сохраняя последовательность номеров.
При изменении порядка слоев в диалоге «Слои» номера элементов диалога изменяются в соответствии с новым расположением слоев, последовательность номеров при этом сохраняется.
Настройка порядка обхода. Для «многослойных» диалогов, содержащих больше количество элементов, наиболее удобно использовать диалог «Настройка порядка обхода». Для вызова диалога необходимо отключить пункт «Автомат, порядок обхода» и выбрать пункт «Настройка порядка обхода» из меню «Диалог» главного меню Конфигуратора.
Диалог содержит список всех элементов редактируемого диалога в последовательности слоев; строки расположены в порядке, соответствующем порядку обхода. Выделив строку, соответствующую определенному элементу, можно кнопками и перемещать его в списке к началу или к концу, изменяя тем самым его очередность в порядке обхода.
Перемещения элементов в этом диалоге не перемещает их между слоями: если в процессе перемещения элемента он оказался среди элементов другого слоя, при закрытии и повторном открытии этого диалога элементы будут вновь отсортированы по слоям.
Основное преимущество этого способа назначения порядка обхода — возможность отредактировать ранее назначенный порядок обхода, не задавая его заново.
Каждый элемент диалога имеет определенный набор свойств, от которого зависит поведение элемента при работе пользователя с готовым диалогом и порядок обработки введенной в диалог информации.
Установка свойств элементов диалога производится в палитре свойств «Свойства...», которую можно вызвать на экран двойным щелчком мыши на нужном элементе диалога. Палитра свойств, используемая при редактировании свойств элементов диалога, по порядку использования аналогична той, которая применяется при редактировании свойств объектов метаданных. Порядок использования палитры свойств можно узнать в главе «Метаданные».
Ниже будет описано, какие свойства могут быть определены для каждого типа элементов диалога.
Существует ряд свойств элемента диалога, которые присущи всем или большинству типов элементов диалога. Обычно такие свойства имеют одинаковое назначение и редактируются одинаковым образом. Ниже будут описаны такие общие свойства, а в параграфах, посвященных отдельным типам элементов диалога, будет изложен порядок редактирования уникальных свойств элементов.
Для удобства описания свойства будут сгруппированы по закладкам палитры свойств.
В зависимости от типа элемента диалога отдельные управляющие элементы закладки могут отсутствовать или закрываться от использования. Отсутствие управляющего элемента означает' отсутствие данного свойства у элемента диалога. Если управляющий элемент закладки закрыт для использования, значит, данное свойство для этого типа элементов диалога не редактируется.
Управляющие элементы закладки «Общие» служат для редактирования основных свойств реквизита диалога.
Заголовок. В это поле вводится текст, который будет выдаваться в элементе диалога при его использовании. В зависимости от типа элемента диалога заголовок имеет различное назначение. Длина заголовка ограничена 255 символами.
Идентификатор. Поле «Идентификатор» может содержать условное имя элемента диалога. Идентификатор представляет собой строку длиной не более 128 символов, состоящую из букв, цифр и .таков подчеркивания. Идентификатор не должен содержать пробелов и начинаться с цифры.
Идентификатор используется для обращения к элементам диалога из встроенного языка системы 1С:Предприятие.
Сделать недоступным. Если флажок установлен, элемент диалога будет недоступен при использовании диалога. Недоступные элементы будут выводиться «серым» цветом.
Управление этим свойством доступно из встроенного языка системы 1С:Предприятие, что позволяет динамически устанавливать для элемента диалога атрибут «Сделать недоступным».
Сделать невидимым. Если флажок установлен, элемент не будет отображаться при использовании диалога.
Управление этим свойством доступно из встроенного языка системы 1С:Предприятие, что позволяет динамически управлять видимостью элемента диалога.
Запретить редактирование. Этот флажок становится доступным для элементов диалога типа «поле ввода», имеющих тип значения «число», «строка», «дата» и «счет» (бухгалтерский). Если флажок установлен, запрещено редактирование содержимого поля ввода с клавиатуры. Однако в такое поле можно вводить значение, используя выбор: например, ввести бухгалтерский счет, выбрав его из плана счетов.
Сохранять при сохранении настройки. Этот флажок появляется в палитре свойств при редактировании форм объектов метаданных типа «Отчет» («Обработка») и внешних отчетов (обработок). Если флажок установлен, значение элемента диалога будет сохраняться при сохранении настройки. Сохранение настройки — запоминание текущих значений реквизитов диалога отчета при работе с отчетом в режиме запуска «1С:Предприятие».
Подробнее о сохранении настройки можно прочитать ниже в н. «Свойства шаблона окна диалога».
Управляющие элементы закладки «Дополнительно» предназначены для установки различных вспомогательных свойств элемента диалога. Состав управляющих элементов этой закладки, кроме поля «Формула», различен для разных элементов диалога и описан ниже в соответствующих параграфах.
Формула. В зависимости от типа элемента диалога в это поле можно ввести:
· выражение на встроенном языке системы 1С:Преднриятие, результат вычисления которого будет выдаваться в элементе диалога;
· имя процедуры или функции, которая будет выполняться при щелчке мытью на элементе диалога или при переходе к следующему элементу диалога клавишей Tab или Enter.
Внимание. В выражениях формул элементов диалога не допускается вызов процедур (функций), открывающих или активизирующих другие окна (ОткрытьФорму, ОткрытьПодбор и подобные.), а также процедур, осуществляющих выбор активных строк или элементов диалога (Активизировать, АктивизироватьОбъект). Такие процедуры и функции следует использовать в предопределенных процедурах или в процедурах, вызываемых по кнопке формы.
Формулу невыбранного элемента диалога можно увидеть, если поместить указатель мыши над этим элементом диалога и подержать его 1...2 секунды.
Управляющие элементы закладки «Шрифт» предназначены для установки гарнитуры, размера, стиля и цвета шрифта, который будет использоваться для вывода элемента диалога. Эта закладка появляется в палитре свойств элемента диалога типа «Текст» и шаблона окна диалога.
Если включена опция «Шрифт по умолчанию», то будет использоваться шрифт, установленный для шаблона окна диалога в целом. Если и для шаблона окна диалога установлен шрифт по умолчанию, тогда вид шрифта будет определяться настройками, установленными в режиме «Параметры» (меню «Сервис» главного меню системы 1С:Преднриятие).
Цвет шрифта элемента диалога типа «Текст» может устанавливаться динамически средствами встроенного языка системы 1С:Предприятие.
Закладка «Картинка» является основной закладкой при редактировании свойств элемента диалога типа «Картинка», а также служит для управления свойствами картинок для шаблона окна диалога и для элементов диалога типа «Кнопка». Состав управляющих элементов закладки может изменяться в зависимости от типа редактируемого элемента диалога.
«Изменить картинку». Эта кнопка вызывает диалог «Библиотека картинок», который позволяет выбрать картинку из библиотеки для вставки ее в элемент диалога.
Чтобы выбрать картинку для вставки в элемент диалога, необходимо щелкнуть мышью картинке и нажать кнопку «Выбрать». Выбранная картинка помещается в палитру свойств в окно для просмотра картинки. Непосредственно в элемент диалога картинка будет помещена после нажатия кнопки «ОК» или «Обновить» палитры свойств.
Для удаления картинки из элемента диалога следует нажать кнопку «Очистить». Картинка будет удалена из палитры свойств. Непосредственно из элемента диалога картинка будет удалена после нажатия кнопки «ОК» или «Обновить» палитры свойств.
Подробнее работа с библиотекой картинок описана в главе «Метаданные».
Рисовать. Управляющие элементы этой группы управляют масштабированием картинки в пределах места, отведенного для нее:
растянуть картинка будет масштабирована таким образом, чтобы полностью поместиться в элемент диалога; пропорции картинки могут быть искажены;
по центру картинка будет помещена в центр элемента диалога, при этом сохраняется оригинальный размер картинки;
пропорционально картинка будет масштабирована таким образом, чтобы полностью поместиться в элемент диалога, при этом пропорции картинки будут сохранены.
Рамка. Список «Рамка» позволяет выбрать вид рамки, которая будет изображена вокруг картинки. Этот управляющий элемент доступен только при редактировании свойств элемента диалога типа «Картинка».
При работе с диалогом пользователь может вызвать подсказки, поясняющие назначение элементов диалога. Для ввода текста подсказок используются управляющие элементы закладки «Описание».
В многострочное поле ввода можно ввести текст подробного описания элемента диалога. Подробное описание элемента диалога можно получить, если нажать кнопку на панели инструментов диалога, и затем щелкнуть мышью по элементу диалога.
В поле «Подсказка» можно ввести краткое описание назначения данного элемента диалога. Этот текст будет выдаваться, если при использовании диалога подержать указатель мыши над данным элементом 1...2 секунды.
Если включена опция «Использовать описание», то в качестве подсказки (см. предыдущий абзац) будет использоваться текст описания.
В этом параграфе описаны специфические свойства шаблона окна диалога, в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.
Заголовок. В поле «Заголовок» можно ввести текст, который будет выводиться в заголовке окна диалога при работе с диалогом. Если заголовок не указан, будет выводиться название объекта метаданных, связанных с этим диалогом.
Панель инструментов. Флажок позволяет управлять показом панели инструментов диалога, которая в режиме запуска «1С:Предприятие» выдается в верхней части окна диалога, под заголовком окна. Снятие флажка отключает показ панели инструментов.
При отключенной панели инструментов все команды по работе с диалогом по-прежнему доступны в меню «Действия» главного меню программы.
Изменять размер. Этот флажок имеет смысл для диалогов, содержащих табличную часть (например, формы документов или журналов) или элемент диалога типа «Таблица значений». Назначение его следующее.
При работе с диалогом в режиме запуска «1С:Предприятие» пользователь может изменять размер окна диалога, перетаскивая мышью одну из сторон или угол диалога.
Если для диалога установлен флажок «Изменять размер», то размеры табличной части диалога (или элемента «Таблица значений») будут изменяться пропорционально изменению размеров окна диалога; при этом также будут перемещаться и элементы диалога, расположенные между таблицей и перемещаемой стороной или сторонами окна диалога.
Если флажок «Изменять размер» не установлен, размеры и относительное положение элементов диалога будут сохраняться такими же, какими они были заданы при редактировании диалога в Конфигураторе, независимо от изменения размера окна диалога.
Флажок «Изменять размер» присутствует и в палитре свойств диалогов, в которых пет таблиц, однако его установка или снятие не влияет на поведение элементов диалога
Режим сохранения настройки. Этот управляющий элемент появляется в закладке, когда редактируется форма объекта метаданных типа «Отчет» («Обработка») или внешнего отчета (обработки). Если этот флажок установлен, то при работе в режиме запуска «1С:Предприятие» для этого отчета будут доступны функции сохранения и восстановления настройки — текущих значений реквизитов диалога отчета.
Подробнее о сохранении настройки можно прочитать в главе «Отчеты и обработки».
Шрифт по умолчанию. Если для шаблона окна диалога установлена опция «Шрифт по умолчанию», то будет использоваться шрифт, установленный в режиме «Параметры» (меню «Сервис» главного меню системы 1С:Предприятие).
Картинка, которая может быть размещена в шаблоне окна диалога, будет служить фоном для остальных элементов диалога.
В этом параграфе описаны специфические свойства элемента диалога «Текст», в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.
В поле «Формула» можно ввести выражение па встроенном языке системы 1С:Предприятие (поле «Заголовок» в закладке «Общие» в этом случае следует оставить пустым). При редактировании диалога в элементе типа «Текст» будет выдаваться формула в двойных угловых скобках.
При работе с конфигурацией в режиме запуска «1С:Предприятие» результат вычисления выражения будет выдаваться в элементе диалога типа «Текст». При большой длине результата выражения выводится будут только первые 255 символов.
Метод встроенного языка Цвет() позволяет изменять цвет элемента диалога типа «Текст» из модуля формы.
Положение. Список «Положение» управляет выравниванием заголовка элемента диалога в пределах рамки, окаймляющей элемент диалога (это та рамка, которая рисуется вокруг выбранного элемента). Можно выбрать один из трех видов выравнивания:
прижать влево выравнивание текста по левой границе рамки элемента;
прижать вправо выравнивание текста по правой границе рамки элемента;
центр по горизонтали текст размещается вдоль вертикальной линии, проходящей через центр рамки элемента.
Центр по вертикали. Установка флажка «Центр по вертикали» размещает текст вдоль горизонтальной линии, проходящей через центр рамки элемента. Установка флажка не влияет на выбор, сделанный в поле «Положение».
Прозрачный фон. Если этот флажок установлен, то рамка, окаймляющая элемент типа «Текст», не будет закрашиваться фоновым цветом при редактировании и использовании диалога. Элемент диалога с прозрачным фоном можно накладывать на другие элементы диалога.
В этом параграфе описаны специфические свойства элемента диалога «Кнопка», в дополнение к общим свойствам элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.
Заголовок. В поле «Заголовок» закладки «Общие» палитры свойств кнопки вводится название кнопки, то есть текст, который будет выводиться на кнопке при использовании диалога в режиме запуска «1С:Предприятие».
Перед любым символом в заголовке кнопке можно поставить символ «&» («амперсант»). В этом случае при работе с диалогом в режиме запуска «1С:Предприятие» символ, перед которым поставлен амперсант, будет подчеркнут, и вместо нажатия на кнопку мышью можно использовать комбинацию клавиш Alt+«подчеркнутый символ». Такая комбинация клавиш носит название «горячие клавиши» или «акселератор».
Формула. В поле «Формула» закладки «Дополнительные» можно указать имя процедуры, которая будет выполняться при нажатии на эту кнопку.
В качестве формулы можно использовать имя специально созданной процедуры на встроенном языке системы 1С:Предприятие, либо задать имена следующих системных процедур (см. таблицу. В скобках после имени процедуры приведен его английский синоним):
Процедура |
Характеристика |
Записать (Write) |
Используется в диалогах документов или в диалогах элементов и групп справочника, выполняет запись документа, группы или элемента справочника. |
Провести (MakeActions) |
Используется в диалогах документов, выполняет проведение документа. |
Закрыть (Close) |
Закрывает диалог. |
Если после имени системной процедуры стоит знак «?», выполнение процедуры будет сопровождаться выдачей соответствующего запроса.
Можно указывать подряд несколько имен системных процедур, при этом они должны разделяться пробелами, а перед первым именем этой цепочки должен стоять знак «#». При таком указании процедуры будут выполняться последовательно. В одной формуле допускается смешивать русские и английские имена процедур.
Можно использовать совместно имена пользовательских и системных процедур. Имя пользовательской процедуры должно стоять первым, затем через пробел — знак «#» и имена системных процедур, разделяемые пробелами.
Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то кнопка будет пропускаться, если переход по элементам диалога при его использовании выполняется нажатием клавиши Enter.
Управляющие элементы этой закладки служат для постановке в соответствие кнопке клавиши или комбинации «горячих клавиш». Заданная клавиша или комбинация клавиш будет запускать выполнение той же процедуры, что и сама кнопка.
Для задания акселератора необходимо выбрать наименование клавиши в списке «Клавиша». Флажки «Ctrl», «Shift» и «Alt» позволяют задавать комбинации с использованием этих служебных клавиш.
Кнопка по умолчанию. Флажок позволяет назначить кнопку «кнопкой по умолчанию». Такая кнопка будет срабатывать при нажатии комбинации клавиш Ctrl+Enter независимо от того, на каком элементе диалога находится выделение.
Такая кнопка в диалоге может быть только одна: при назначении какой-либо кнопки «кнопкой по умолчанию» этот флажок снимается с текущей «кнопки по умолчанию».
Управляющие элементы этой закладки служат для выбора изображения, которое будет помещено на кнопку. Картинка размещается на кнопке прижатой к левому краю кнопки, занимая всю высоту кнопки и половину ее ширины (пропорции картинки изменяются соответственно размерам кнопки), а текст кнопки центрируется в свободной области между картинкой и правой границей кнопки.
В этом параграфе описаны специфические свойства элемента диалога «Переключатель», в дополнение к общим свойствам элементов диалога, о которых говорилось в и. «Общие свойства элементов диалога» на стр. 11.
Первый в группе. Для организации выбора при помощи элементов типа «Переключатель» в диалоге должна быть создана группа таких элементов. Один из элементов должен быть назначен начальным элементом группы, это выполняется установкой флажка «Первый в группе».
Остальные элементы группы задаются порядком обхода, начиная с первого элемента группы.
В основном, свойства элементов типа «Список» и «Поле со списком» совпадают с общими свойствами элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.
Основное назначение элементов диалога этих двух типов — визуализации агрегатного типа данных СписокЗначений (см. книгу «Описание встроенного языка»). Все действия по управлению списком значений (добавление значения в список, удаление значения из списка, сортировка списка и другие) выполняются только средствами встроенного языка.
Формула. Свойства формулы элемента диалога типа «Список» совпадают со свойствами формулы элемента диалога типа «Кнопка» (см. выше стр. 15): например, наряду с вызовом процедур на встроенном языке системы 1С:Предприятие, в поле «Формула» элемента типа «Список» можно указывать имена системных процедур Записать, Провести и Закрыть.
При использовании элементов диалога типа «Список» необходимо иметь в виду, что формула, заданная для этого элемента, выполняется при двойном щелчке мышью на строке списка.
Список с пометками. Если этот флажок установлен, при показе списка значений слева от каждого элемента списка будет добавлена рамка, в которой щелчком мыши можно ставить или снимать отметку . Расставляя отметки, можно выбрать несколько элементов списка для последующей обработки.
Заголовок. В поле «Заголовок» можно ввести текст, который будет выводиться вдоль верхней стороны рамки. Обычно это обобщающее название для элементов диалога, объединяемых рамкой.
Элемент типа «Реквизит» визуально является полем для ввода информации. Существует 2 типа реквизитов: «просто» реквизит и реквизит, связанный с объектом метаданных.
Основное различие между ними заключается в следующем.
Для реквизитов, связанных с объектами метаданных, основные свойства, определяющие поведение реквизита («Тип значения», «Длина», «Точность» и др.) задаются на этане редактирования объекта метаданных. При редактировании диалога для таких реквизитов определяются свойства, связанные с их визуальным представлением. Для таких реквизитов большинство управляющих элементов палитры свойств будет недоступно.
Для «просто» реквизитов определение их свойств происходит исключительно на этапе редактирования диалога.
В основном, реквизиты могут обладать таким же набором свойств, как и реквизиты объекта метаданных, и редактирование этих свойств в палитре свойств выполняется аналогичным образом.
В этом параграфе изложен порядок редактирования всех свойств реквизитов. Где это необходимо, будет указано, для какого типа реквизитов справедлив излагаемый материал.
Управляющие элементы этой закладки доступны, в основном, для «просто» реквизитов диалога.
Физический смысл и порядок редактирования свойств элемента диалога типа «Реквизит», в основном, совпадают со свойствами объекта метаданных, о которых говорилось в главе «Метаданные».
Многострочный. Эта опция становится доступной для «просто» реквизитов диалога с типом значения «строка неограниченной длины». Включение этой опции означает, что в соответствующем поле ввода текст будет вводиться с автоматическим переносом слов и прокручиванием по вертикали.
Состав управляющих элементов, которые могут помещаться на этой закладке, зависит от типа реквизита и от типа значения реквизита, который указывается в закладке «Тип». Кроме того, отдельные управляющие элементы могут становиться недоступными, в этом случае они выводятся серым цветом.
Ниже будет описано назначение всех возможных управляющих элементов и даны пояснения, в каких случаях эти управляющие элементы могут быть задействованы.
Формула. В поле «Формула» закладки можно указать последовательность операторов на встроенном языке системы 1С:Предприятие, которые будут выполняться при изменении значения реквизита.
Маска. Это поле доступно только для строковых реквизитов и позволяет назначить шаблон ввода строкового значения. Шаблон представляет собой последовательность символов, позиционно определяющих действия, которые будут выполняться при вводе строки в редактируемый реквизит.
При указании маски могут использоваться следующие управляющие символы:
Символ маски |
Назначение |
! |
Введенный символ преобразуется в верхний регистр. |
9 |
Любая цифра. |
# |
Любая цифра, знак «-» («минус»), знак «+» («плюс») или пробел. |
N |
Любые алфавитно-цифровые символы (буквы или цифры). |
Х |
Любой символ. |
@ |
Любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре. |
Например, для ввода 7-значного телефонного номера можно указать маску «999-99-99».
При использовании диалога поле ввода будет выглядеть так: « - - ».
Символы «-» автоматически проставлены в поле ввода, так как они указаны в маске. В это поле пользователь может ввести только цифры, другие символы вводиться не будут.
Маска может быть установлена динамически из встроенного языка системы 1С:Предприятие.
Связан с. Поле «Связан с» используется для реквизитов типа «Справочник», если используемый в качестве типа значения справочник является подчиненным справочником. Это поле может содержать идентификатор реквизита диалога, который имеет в качестве типа значения справочник-хозяин. В этом случае выбор элемента подчиненного справочника будет производиться без запроса элемента справочника-хозяина и только среди элементов, подчиненных элементу, выбранному при вводе значения указанного реквизита.
Форма. Поле «Форма» доступно только для реквизитов типа «Справочник» и позволяет выбрать форму, которая будет использоваться при выдаче справочника на экран для выбора из него значения. Различные формы выдачи справочника создаются при разработке справочника в процессе настройки конфигурации задачи.
Быстрый выбор. Опция «Быстрый выбор» может быть установлена для реквизитов типа «Справочник». Если она включена, то для выбора значения реквизита справочник будет выдаваться в виде выпадающего списка, а не в отдельном окне. Независимо от количества уровней, в выпадающем списке все элементы справочника будут располагаться на одном уровне.
Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то реквизит будет пропускаться, если переход по элементам диалога выполняется нажатием клавиши Enter.
Авто. выбор. Флажок «Авто. выбор» присутствует в закладке при редактировании свойств реквизитов типа «Документ», «Справочник» и «Перечисление». Если флажок установлен, то при помещении курсора в такой реквизит будет автоматически открываться соответствующий список для выбора значения реквизита.
Отрицательное красным. Этот флажок присутствует в закладке при редактировании свойств числовых реквизитов. Если флажок установлен, то отрицательное значение реквизита будет выдаваться красным цветом.
Флажок недоступен, если для реквизита установлено свойство «Не отрицательный».
Для ввода пароля. Этот флажок присутствует в закладке при редактировании свойств реквизитов типа «Строка». Если флажок установлен, содержимое реквизита при его редактировании в процессе работы с диалогом будет отображаться в виде последовательности звездочек (символов «*»).
Имеет кнопку выбора. Флажок «Имеет кнопку выбора» доступен для реквизитов типа «Неопределенный», «Число», «Строка» и «Дата». Если флажок установлен, то при работе с диалогом в режиме запуска «1С:Предприятие» в правой части поля реквизита появится кнопка, вид и свойства которой зависят от типа реквизита.
Для реквизитов типа «Число» в поле появляется кнопка («Калькулятор»). При нажатии на эту кнопу вызывается калькулятор, который можно использовать для ввода реквизита или для выполнения каких-либо промежуточных расчетов.
Для реквизитов типа «Дата» в поле появляется кнопка («Календарь»). При нажатии на эту кнопку вызывается календарь, при помощи которого можно ввести дату, выбрав ее мышью.
Для реквизитов типа «Текст» кнопка имеет общий вид . Нажатие этой кнопки вызывает выполнение предопределенной процедуры ПриНачалеВыбораЗначения() , если эта процедура существует в модуле формы (о предопределенных процедурах подробнее см. в книге «Описание встроенного языка»).
Для реквизитов других типов флажок «Имеет кнопку выбора» установлен и недоступен для редактирования. Кнопка в поле реквизита вставляется автоматически и служит для ввода значения реквизита путем выбора из списка объектов метаданных соответствующего типа.
Реквизиту типа «Неопределенный» средствами встроенного языка (метод НазначитьТип()) может быть назначен любой тип из числа существующих в системе 1С:Предприятие. В зависимости от назначенного типа значения, кнопка выбора приобретает соответствующие этому типу вид и свойства.
Диалог для настройки свойств элемента «Таблица» содержит только одну закладку — «Общие».
Автонастройка ширины колонок. Если включена опция «Автонастройка ширины колонок», колонки табличной части диалога, независимо от того, все ли они уже вставлены в форму, займут все место, предназначенное для таблицы.
Если эта опция выключена, то будут использоваться установки ширины колонок, сделанные в процессе редактирования диалога. При изменении ширины окна диалога будут сохраняться и относительные размеры колонок.
Автоматический ввод новой строки. Если включена опция «Автоматический ввод повой строки», то новая строка вводится в таблицу автоматически после окончания редактирования последнего элемента предыдущей строки. В противном случае для ввода новой строки в таблицу следует нажать клавишу Ins.
Помимо общих свойств, которые можно устанавливать для элемента типа «Таблица» в целом, для каждой колонки таблицы могут быть установлены индивидуальные свойства. Чтобы вызвать палитру свойств для колонки табличной части, необходимо дважды щелкнуть левой кнопкой мыши на заголовке колонки (при этом должна быть выделена таблица или какая-нибудь из се колонок).
В основном, набор свойств колонки определяется типом значения, которое будет вводиться в эту колонку, и совпадает со свойствами элемента типа «реквизит».
Элементы этой закладки предназначены для управления взаимным расположением ячеек табличной части, которое будут занимать эти ячейки при работе пользователя с диалогом в режиме «1С:Предприятие».
На закладке справа расположено окно предварительно просмотра. В нем иллюстрируется изменение взаимного расположения ячеек текущей строки табличной части в зависимости от опции, выбранной слева. Положение редактируемой колонки задастся относительно левой соседней колонки.
Новая колонка. Редактируемая колонка будет располагаться рядом с левой соседней колонкой (получается «обычная» таблица).
На следующей строке. При работе с табличной частью для каждой ее строки ячейка редактируемой колонки и ячейка колонки, расположенной слева, будут объединяться в одну колонку, и располагаться друг под другом. При показе содержимое ячеек будет разделено тонкой горизонтальной чертой.
Такие «объединенные» ячейки, например, при прокручивании табличной части вправо или влево ведут себя как одна колонка.
В той же колонке. При работе с табличной частью для каждой се строки ячейка редактируемой колонки и ячейка колонки, расположенной слева, будут объединяться в одну колонку, и располагаться рядом друг с другом. При показе содержимое ячеек будет разделено тонкой вертикальной чертой.
Такие «объединенные» ячейки при прокручивании табличной части вправо или влево ведут себя как одна колонка.
Для элемента диалога типа «Дерево» никаких свойств определять не требуется — диалог «Свойства» в этом случае не содержит ни одной закладки.
Если при создании экранной формы справочника в диалог были вставлены элементы типа «Дерево» и «Таблица», то при использовании справочника система 1С:Предприятие будет анализировать взаимное расположение этих элементов и, если такое окажется возможным, предоставит возможность перемещать область, разделяющую эти элементы, и изменять таким образом их относительные размеры.
В основном, свойства элемента типа «Флажок» совпадают с общими свойствами элементов диалога, о которых говорилось в п. «Общие свойства элементов диалога» на стр. 11.
Прижать текст влево. По умолчанию текст в поле типа «флажок», выдается справа от отметки . Установка флажка «Прижать текст влево» меняет их местами.
Пропускать при вводе. Если установлен флажок «Пропускать при вводе», то элемент диалога типа «Флажок» будет пропускаться, если переход по элементам диалога выполняется нажатием клавиши Enter.
Диалог для редактирования свойств элемента типа «Картинка» содержит закладку «Картинка», работа с которой была описана в п. «Общие свойства элементов диалога» на стр. 11.
У элемента диалога «Таблица значений» радикально отличается назначение картинки, которую можно указать в закладке «Картинка» палитры свойств этого элемента: картинка является библиотекой пиктограмм и используется для вывода пиктограмм в колонке элемента «Таблица значений».
Картинка, которая будет использоваться в качестве библиотеки пиктограмм, должна представлять собой горизонтальный набор «секций» размером 15 пикселей по высоте и 16 пикселей по ширине: каждая «секция» должна являться отдельной пиктограммой.
Управление выводом пиктограмм осуществляется средствами встроенного языка системы 1С:Предприятие. Описание работы с пиктограммами элемента «Таблица значений» приведено в книге «Описание встроенного языка».
В этом разделе излагаются особенности использования некоторых типов элементов диалога, а также работа с диалогом в целом.
Элемент диалога типа «Флажок» может принимать одно из 2-х значений: 1 — если флажок установлен, и 0 — если снят. Это свойство можно использовать для сохранения значения флажка, например, в реквизите документа или справочника, и его последующего восстановления. Для этого в модуле формы должны быть предусмотрены соответствующие команды.
Кроме того, числовые реквизиты документов, справочников, планов счетов, операции, можно связать с реквизитами типа «Флажок».
Такая «связь» устанавливается при вставке числового реквизита в диалог путем включения опции «Редактировать флажком».
При установке подобной связи в диалог помещается не поле ввода числового реквизита, а реквизит типа «Флажок», и редактирование числового реквизита выполняется путем установки или снятия флажка. Числовой реквизит в этом случае может принимать значение 0 или 1, но для сохранения значения никаких дополнительных команд в модуль формы помещать не требуется.
При вставке элемента «Переключатель» в диалог всегда вставляется только 1 элемент этого типа, однако эти элементы имеет смысл использовать только группами из двух и более элементов.
Создайте необходимое число элементов типа «Переключатель» и разместите их в диалоге в требуемом порядке. Как правило, элементы этого вида размещают по вертикали один под другим или по горизонтали рядом друг с другом. Часто группу таких элементов обводят рамкой, подчеркивая, таким образом, что элементы взаимосвязаны.
Для одного из элементов группы в палитре свойств должен быть установлен флажок «Первый в группе». Как правило, такой флажок устанавливается либо у самого верхнего, либо у первого слева элемента из группы. Этому же элементу должен быть назначен идентификатор.
Затем для элементов необходимо назначить правильный порядок обхода. Необходимо отключить автоматический порядок обхода элементов диалога и установить его вручную: первым должен быть элемент, помеченный как «Первый в группе», затем без пропусков — остальные элементы в группе. Конкретные номера элементов в порядке обхода в данном случае не важны, важно, чтобы они шли подряд.
Если выполнены все описанные выше действия, при работе с диалогом группа элементов «Переключатель» будет вести себя в соответствии со стандартами Windows: в группу элементов можно попасть, нажимая клавишу Tab; внутри группы выбор осуществляется клавишами перемещения курсора.
Выбранный элемент в группе переключателей определяется по значению первого элемента (обращение к элементу выполняется по его идентификатору). Для иллюстрации работы переключателей в нашем примере в диалог вставлен реквизит типа «Текст», в поле «Формула» которого указан идентификатор переключателя (см. рисунок).
Элемент может принимать числовое значение от 0 до числа, равного количеству элементов в группе: 0 означает, что ни один элемент в группе не выбран, 1 — выбран первый элемент (это элемент, помеченный как «Первый в группе»), 2 — выбран второй в группе элемент (в соответствии с заданным порядком обхода), и так далее (см. рисунок).
В диалоге может быть размещено несколько групп элементов типа «Переключатель». Они должны быть организованы по приведенным выше правилам, в этом случае каждая группа будет «работать» независимо.
Элемент типа «Таблица» используется для доступа к группе реквизитов, входящих в табличную часть элемента данных — журнала, справочника или документа.
По умолчанию таблица создается автоматически и помещается в форму диалога для любых форм списка.
Если объект метаданных типа документ имеет табличную часть, то для вставки в диалог таблицы необходимо вставить хотя бы один реквизит табличной части (см. п. «Создание элементов диалога» на стр. 6). Для документа, не имеющего реквизитов табличной части, вставить элемент диалога типа «Таблица» нельзя.
Составляющие таблицу реквизиты будут представлены в виде колонок с соответствующими заголовками. Для форм списков дополнительно в таблицу помещается служебная графа, она занимает крайнюю левую позицию и не может быть удалена. Информация, которая выводится в этой графе, зависит от контекста использования элемента «Таблица»: в табличной части документа в этой графе выводится номер строки, в журнале документов в этой графе выводятся служебные признаки состояния документа, в справочнике — признак элемента или группы справочника и т. д.
Работа с таблицей при редактировании диалога имеет ряд особенностей.
Вы можете перемещать таблицу по окну диалога, как и всякий другой элемент, и изменять се размеры. Однако таблицу нельзя скопировать, а для форм списков — нельзя удалить.
Если не определен иной порядок, колонки расставляются в соответствии с порядком соответствующих им реквизитов в списке — чем выше реквизит, тем левее расположена предназначенная для него колонка табличной части.
При редактировании диалога некоторые колонки могут быть скрыты за границами таблицы. В этом случае вдоль нижней границы таблицы появится горизонтальная полоса прокрутки. Но в этой ситуации она имеет, скорее, декоративный характер и не может использоваться для вывода на экран невидимых колонок таблицы, в отличие от «нормальных» линеек прокрутки. Чтобы вывести на экран скрытые колонки, используйте кнопки и , расположенные у левого и правого конца «декоративной» линейки прокрутки. Когда указатель мыши попадает на кнопки и , он принимает вид стрелки, тогда как в других местах табличной части — .
В пределах элемента «Таблица» можно работать с составляющими таблицу колонками. Для служебной колонки можно редактировать ее свойства, но ее нельзя удалять и перемещать.
Изменение порядка колонок. Вы можете менять порядок расположения колонок табличной части. Для этого необходимо выделить колонку, щелкнув мышью ее заголовок, и перетащить колонку на новое место.
Вставка колонок. Если элемент «Таблица» используется для создания экранного представления справочника, журнала или документа, имеющего табличную часть, можно расширять состав таблицы, вставляя в нее колонки, соответствующие дополнительным графам журнала, реквизитам справочника или документа. Для этого используется пункт «Графы» меню «Вставить» главного меню программы — при редактировании формы журнала, или пункт «Реквизиты» — при редактировании формы справочника или документа.
Удаление колонок. Для удаления колонки табличной части необходимо выбрать ее, щелкнув мышью по заголовку колонки, и нажать клавишу Del.
Для вставки колонки в табличную часть диалога следует использовать функцию «Реквизиты» из группы функций «Вставить» главного меню программы.
Изменение ширины колонок. Для изменения ширины колонок табличной части необходимо передвигать мышью разделитель между колонками. Однако следует помнить, что если включена опция «Автонастройка ширины колонок», ширина колонок при работе с диалогом будет определяться автоматически.
Редактирование свойств колонок. Большинство свойств той или иной колонки таблицы определяются свойствами связанного с ней реквизита документа, справочника или журнала. Однако, можно установить свойства колонке как элементу диалога. Чтобы вызвать палитру свойств для колонки табличной части, необходимо дважды щелкнуть левой кнопкой мыши на заголовке колонки. Порядок редактирования свойств колонки элемента типа «таблица» см. в п. «Свойства колонки элемента «Таблица» на стр. 18.
Вычисляемые колонки. В табличную часть можно вставить колонку, значение которой будет вычисляться по заданной формуле. Такие колонки называются «вычисляемыми».
Чтобы вставить вычисляемую колонку, выполните следующие действия:
· в меню «Вставить» главного меню программы выберите пункт «Текст»;
· поместите указатель мыши на табличную часть диалога, при этом курсор должен принять форму ;
· щелкните левой кнопкой мыши.
Новая колонка будет добавлена справа от существующих колонок. Затем ее можно переместить в нужное место и отредактировать ее свойства.
Модальный режим не дает пользователю возможности перейти к другом окну программы, не закончив работы с диалогом, открытым в этом режиме. В модальном режиме, например, в системе 1С:Предприятие выдаются сообщения и запросы: пока пользователь не ответит на запрос или не закроет сообщение, продолжать работу с системой нельзя.
Конфигуратор позволяет задавать возможность открывать форму объекта метаданных в модальном режиме. Такой режим устанавливается при редактировании пользовательских меню: в палитре свойств элемента пользовательского меню, в закладке «Параметры» присутствует флажок «Открывать форму модально». При установке этого флажка форма, которая открывается редактируемым элементом меню, будет открываться в модальном режиме.
Модальный режим открытия формы можно также задать при помощи метода встроенного языка системы 1С:Предприятие ОткрытьФормуМодально().
Вы можете просмотреть, как будет выглядеть разработанный вами диалог при его использовании. Для перехода к проверке следует выбрать функцию «Проверить» из меню «Диалог» главного меню программы.
На экран будет вызвано окно проверки, имитирующее работу созданного диалога. Для выхода из режима проверки следует закрыть это окно кнопкой закрытия окна «X».