Как сделать управляемую форму

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

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

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

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

В элементах управления данные не хранятся!

Для обычной формы полный список элементов можно открыть из меню "Форма" - "Список элементов управления формы" (рис. отсюда ):

  1. через пункт главного меню "Форма - Вставить элемент управления";
  2. с помощью командной панели "Элементы управления".

Элемент управления "Панель"

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

Особенности использования элемента управления "Панель":

  1. Если в форму вставлен элемент управления "Панель", то для этого элемента можно задать режим "Автоправила", отличный от одноименного режима формы, причем данный режим будет действовать на все страницы панели. Свойство "Автоправила" обеспечивает автоматическую привязку границ элементов управления. Для Панели автоправила можно выставить в значение, отличающееся от значения родительской формы.
  2. При размещении элементов управления в форме нельзя разместить один и тот же элемент управления на двух страницах.
  3. Многостраничная форма может не иметь закладок, если:
    • для свойства формы "Отображать закладки" установлено значение "Не отображать";
    • отображение закладок отключено программным способом.
  4. Закладки на форме могут быть расположены сверху, снизу, справа и слева.
    используя пункт контекстного меню формы "Добавить страницу";


Элемент управления "Поле HTML-документа"

Элемент управления "Поле HTML-документа" предназначен для просмотра или редактирования HTML-документов и позволяет:

  1. отобразить на форме веб-страницу;
  2. назначить обработчики для множества событий.

HTML-документ в элементе управления "Поле HTML-документа" может быть сформирован:

  1. программно;
  2. загружен из ресурса, указываемого через URL;
  3. загружен из макета типа HTML-документ.

Редактировать HTML-документ, отображаемый в элементе управления "Поле HTML-документа", можно в режиме 1С:Предприятие (в конфигураторе документ не редактируется).

Элементы формы для списочных значений

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

  1. "Поле выбора" (пользователь может выбрать значение из списка, который можно как связать с данными, так и определить произвольный для данной формы через опцию "Строки списка выбора");
  2. "Поле списка" (пользователю показывается полный список значений, список раскрывать не нужно);
  3. "Поле ввода" (можно выбрать из данных ссылочного типа).

Можно одновременно создать элемент управления "Поле ввода" вместе с поясняющей надписью, представляющей элемент управления "Надпись", для чего необходимо создавать поле ввода через пункт главного меню "Форма - Вставить элемент управления. ".

Особенности работы с элементами формы для списочных значений:

  1. Элемент управления "Поле ввода" предназначен для:
    • ввода значений непосредственно в поле, например, с клавиатуры;
    • выбора ссылок на объекты;
    • выбора значений из предварительно сформированного списка.
  2. Тонкая прерывистая линия красного цвета в поле ввода означает, что данное поле обязательно к заполнению.
  3. Состав кнопок, расположенных справа у элемента управления "Поле ввода", определяется:
    • значением свойства поля ввода "Тип значения";
    • выбором соответствующего свойства в окне свойств элемента управления.

Отсюда . Первая опция определяется тем, что не каждый тип данных можно открыть скажем на просмотр (например для перечислений). Вторая опция также существует:

Включение механизма внешних обработок в программе

включение в конфигурации 1С дополнительных отчетов и обработок

Установка данного флажка дает нам возможность использовать внешние обработки.

Создание новой внешней обработки в 1С 8.3 на примере

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

выбор вида документа

Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:

указание наименования новой обработки 1С

Добавим новую управляемую форму обработки. Указываем, что это форма обработки и она является основной:

создание формы обработки

На форме у нас будет два реквизита:

Расположение элементов на форме


В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:

В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:

Пока ВыбДетЗаписи.Следующий() Цикл

СпрНомОбъект = ВыбДетЗаписи.Ссылка.ПолучитьОбъект();
СпрНомОбъект.СтавкаНДС = ВыбСтавкаНДС;

добавление команды на форму

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

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

Функция СведенияОВнешнейОбработке() Экспорт


Вариант загрузки внешней обработки

Чтобы определить, какие поля структуры обязательны, можно сначала не описывать ее, просто создать пустую, а далее воспользоваться отладчиком. Если трассировать модули при регистрации обработки, сразу становится ясно, какие поля требуются, а какие нет.

Подключение внешней обработки в 1С 8.3

регистрация обработки в системе

дополнительная информация

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

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

В том месте кода, откуда нужно сделать открытие и заполнение формы нужно добавить приблизительно такой код:

фНовыйДокумент = ПолучитьФорму("Документ.ТестДокумент.Форма.ФормаДокумента", ПараметрыФормы, ЭтаФорма);

На этом все, надеюсь данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

(оценок: 12, средняя оценка: 4,67 из 5)

В статье будет рассказано о том, как в 1с открыть форму программно. Все описанное ниже, касается только управляемого приложения. Подробно рассмотрим метод глобального контекста ОткрытьФорму.

Также можете ознакомиться с более простыми, но менее гибкими способами открыть форму по ссылке: Как в 1с открыть ссылку.

Метод ОткрытьФорму по имени

Самый гибкий и настраиваемый способ программного открытия формы в 1с 8. Рассмотрим подробно его параметры, а также разберем несколько примеров его использования.

Следует заметить, что метод ОткрытьФорму является клиентским. Т.е его можно использовать либо в общих модулях с установленным флагом Клиент, либо в процедурах (функциях) форм с директивой &НаКлиенте.

Рассмотрим параметры метода и приведем необходимые примеры.

ИмяФормы

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

  • ТипОбъекта. Наименование типа объекта метаданных, например: Справочник, Документ, РегистрСведений и т. д.;
  • ИмяОбъекта. Наименование объекта метаданных. Например для справочника: Пользователи, Номенклатура;
  • ИмяФормыПоУмолчанию. Стандартное имя формы, набор имен по умолчанию различается для различных объектов метаданных. Например для документа: ФормаВыбора, ФормаОбъекта, ФормаСписка. Полный набор имен по умолчанию можно найти в синтаксис помощнике, в описании метода ОткрытьФорму;
  • ИмяФормы. Произвольное имя формы, заданное при ее создании. Например у справочника Пользователи, форма СменаПочты.

Пример 1. Путь к форме выбора по умолчанию, справочника Номенклатура.

Пример 2. Путь к форме СменаПочты справочника Пользователи, по ее имени.

Параметры

Содержит Структуру параметров, которые передаются в открываемую форму. Для каждого типа формы, существует набор стандартных параметров, которые не нужно дополнительно обрабатывать в самой форме. Также набор параметров может различаться и для объектов метаданных. Например, параметр Ключ, для форм объектов. В него можно передать ссылку на открываемый объект (если его не передать, будет открыта форма нового объекта).

Подробнее прочитать описание всех возможных стандартных параметров можно в синтаксис помощнике, в ветке Интерфейс (управляемый) -> Форма клиентского приложения (в старых версиях платформы Управляемая форма). Далее в ветках Расширение объектов, Расширение справочника и т. д., можно найти Параметры формы. Там дается полный список возможных стандартных параметров с описаниями.

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

Рассмотрим примеры открытия различных форм с использованием параметров.

Пример 3. Открыть форму объекта справочника Пользователи, используя ссылку на объект.

Пример 4. Открыть форму списка справочника Номенклатура с отбором по реквизиту ВидНоменклатуры и по списку родителей.

Здесь Отбор — это стандартный параметр для форм, использующих в качестве основного реквизита Динамический список. Например, это формы списка и выбора. Он представляет из себя Структуру, в которую можно добавить значения элементов отбора. В Ключ — имя реквизита, в Значение — значение отбора.

Данным способом можно отобрать значения, используя вид сравнения Равно или ВСписке. Для отбора ВСписке следует добавить в структуру Массив, ФиксированныйМассив, либо СписокЗначений. Следует заметить, что отбор ВИерархии установить данным способом не выйдет.

Владелец

В данный параметр передается элемент формы или форма клиентского приложения (управляемая форма) полностью. Используется для указания подчинения открываемой формы.

Это может потребоваться для многих целей, например для:

  • Анализа владельца и выполнения определенных действий в открываемой форме;
  • Корректной работы события ОбработкаЗаписиНового, в форме владельце;
  • Самостоятельной реализации выбора в поле формы.

Пример 5. Реализовать программный выбор элемента Номенклатура, в поле ввода.

В данном случае необходимо:

  • Создать обработчик события НачалоВыбора, для поля ввода;
  • Отменить стандартную обработку выбора;
  • В параметр Владелец передать элемент формы (поле).

Параметр ТекущаяСтрока, позволяет выделять ранее выбранный элемент в форме выбора. Стоит заменить, что в обычной ситуации такой метод выбора значений не применяется. Его применяют только тогда, когда нет возможности настроить форму выбора под условия задачи.

Уникальность

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

По умолчанию, платформа сама генерирует ключ уникальности. Поэтому помимо использования собственного ключа, в параметре Уникальность, можно регулировать использование стандартного. Если передать в него значение Ложь, то будет использован стандартный ключ, если значение Истина, то ключ не будет использоваться совсем. Т.е. будет создаваться новая форма, при каждом использовании метода ОткрытьФорму. Значением по умолчанию является Ложь, поэтому специально задавать его не требуется.

Пример 6. Одновременно открыть две формы объекта справочника Пользователи, по одной и той же ссылке.

В параметре можно указать окно, в котором будет открыта новая форма. Тип параметра ОкноКлиентскогоПриложения.

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

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

НавигационнаяСсылка

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

ОписаниеОповещенияОЗакрытии

В параметр передается описание процедуры, которая будет вызвана после закрытия открываемой формы. Тип параметра: ОписаниеОповещения.

Пример 8. В 1с открыть форму программно. Использовать форму объекта справочника Пользователи. После ее закрытия сообщить, что карточка пользователя закрыта.

Используемые в примере параметры описания оповещения:

  • Первый: имя процедуры;
  • Второй: модуль, в котором она расположена (в данном случае текущая форма);
  • Третий: структура дополнительных параметров, которая будет передана в процедуру;

Описанная процедура обязательно должна иметь два параметра:

  • Результат. Значение, которое возвращает форма при закрытии. Форма объекта не возвращает значений (если это специально не прописать), поэтому в данном случае значение параметра будет Неопределено. А вот форма выбора, например, вернет массив выбранных значений.
  • ДопПараметры. Структура параметров, созданная в описании оповещения.

Также описанная процедура должна быть экспортной.

РежимОткрытияОкна

Позволяет указать режим открытия управляемой формы. По умолчанию Неопределено, вручную можно задать одно из значений системного перечисления РежимОткрытияОкнаФормы:

  • БлокироватьВеcьИнтерфейс;
  • БлокироватьОкноВладельца;
  • Независимый.

Метод ОткрытьФорму по форме

Существует еще один вариант синтаксиса метода ОткрытьФорму.

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

Пример 9. Получить форму списка справочника Номенклатура, а затем в 1с открыть форму программно.

Читайте также: