как узнать в редакторе управляемых форм что реквизит используется элементом управления
Программирование в 1С для всех
Знакомство с управляемой формой 1С лучше всего начинать с реквизитов. Что такое реквизит управляемой формы? По своей сути, это данные, которые привязаны именно к форме: они создаются, хранятся, отображаются (по возможности) и редактируются на форме. Вне контекста формы эти данные не могут существовать. Сам по себе реквизит не может отображаться на форме. Для этого служат элементы формы, которые связаны с реквизитами форм.
Научимся создавать простые реквизиты формы и размещать их на форме.
Для этого в конфигураторе 1С создадим пустую форму. Пусть это будет форма некой внешней обработки. В этой форме нас интересует закладка Реквизиты
В этой закладке сейчас только один реквизит – основной. Он нас пока не интересует, работа с основным реквизитом эта тема отдельной статьи. Пока разберемся с простыми реквизитами.
Для того, чтобы добавить реквизит необходимо нажать на кнопку «Добавить реквизит» командной панели закладки «Реквизиты»
После этого будет добавлен реквизит управляемой формы 1С с типом по умолчанию (строка) и справа откроется палитра свойств этого реквизита.
В этой палитре мы можем установить имя, заголовок, а так же тип реквизита управляемой формы.
Для тренировки создадим четыре реквизита с типом строка: Фамилия, Имя, Отчество и ФИО. И один реквизит с типом дата: ДатаРождения.
Разместим реквизиты на форме. Сделать это просто: необходимо нужный реквизит мышкой «перетащить» из закладки «Реквизиты» на закладку «Элементы»
Перетащим все реквизиты на формы, и с помощью кнопок «Вверх», «Вниз» удобно расположим их на форме.
Сейчас мы сделали такую примитивную форму, на которой расположили реквизиты. После того, как мы «перетащили» реквизит в элементы, то на форме был создан элемент формы. В нашем случае это поле формы. Если мы сейчас зайдем в палитру свойств поля ввода, то увидим, что он связан с реквизитом посредством свойства ПутьКДанным.
Если нажать на кнопку «…» свойства ПутьКДанным, то у разработчика есть возможность поменять привязанный к этому элементу реквизит формы.
Сейчас научимся использовать реквизиты в программном коде. Из статьи, посвященной архитектуре управляемой формы 1С 8.3 Вы знаете, что выполнение кода на форме возможно под директивами &НаКлиенте &НаСервере и &НаСервереБезКонтекста. Доступ к реквизитам формы возможен только в процедурах и функциях, которые выполняются на &НаКлиенте и &НаСервере.
Для наглядности выполним небольшую задачу: создадим команду, при выполнении которой Фамилия, Имя, Отчество и дата Рождения будут складываться в ФИО + Дата рождения.
Создадим локальную команду формы. Для этого на закладке «Команды» в подзакладке «Команды формы» необходимо нажать на кнопку «Добавить»
После создания команды, справа откроется палитра свойств новой команды, где мы зададим её название.
Но команда – это выполнение некоторых действий на форме. Чтобы действия осуществились необходимо создать обработчик команды. Для создания обработчика команды нужно нажать на кнопку «Лупа» свойства действия. После этого откроется окно выбора места размещения обработчика.
Мы выберем расположение НаКлиенте, поскольку для тех действий, которые мы хотим осуществить вполне хватит клиентского контекста.
После выбора места расположения обработчика, в модуле формы будет создана процедура под директивой &НаКлиенте, в которой мы напишем несложный код. В этом коде к реквизитам формы мы будем обращаться просто как к переменным. Мы можем это делать в клиентском и серверном контексте.
В этом коде, я преобразовал дату в строку при помощи функции формат.
Обратите внимание, после создание процедуры в палитре свойств команды свойство Действие заполнилось названием нашей новой процедуры.
И последним шагом нам осталось нашу команду разместить на управляемой форме. Просто перетащим её мышкой в закладку Элементы
При этом на форме появится кнопка.
Сохраним обработку и попробуем выполнить нашу команду.
Как видите, к реквизитам формы в модуле формы можно обращаться напрямую, как к переменным, но только если процедура или функция выполняется под директивами &НаКлиенте и &НаСервере.
Подробно вопросы работы с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
Промо-код на скидку в 15% — 48PVXHeYu
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей
Редактор формы
Редактор формы используется для создания и редактирования форм объектов прикладного решения. Формы объектов используются системой для визуального отображения данных в процессе работы пользователя.
Редактор формы содержит несколько закладок, обеспечивающих редактирование всех составляющих формы.
В отдельном окне, в нижней части редактора, отображается внешний вид формы в режиме 1С:Предприятие.
Редактирование элементов
Редактор форм позволяет разработчику использовать широкий набор возможностей для изменения внешнего вида формы — того вида, который форма будет иметь в режиме 1С:Предприятие. Перечислим основные из этих возможностей:
Страницы, закладки
Редактор форм позволяет добавлять в форму специальные элементы, которые помогают придать форме собственный узнаваемый стиль, сделать доступ к данным простым и понятным, а также разместить большой объем информации на ограниченной площади.
Редактор позволяет добавить в форму несколько элементов Группа — Страницы, каждая из которых может содержать несколько элементов Группа — Страница.
Например, форма документа может содержать один элемент Группа — Страницы, которому подчинены несколько элементов Группа — Страница с заголовками Изображение, Характеристики и Описание:
Тогда в режиме 1С:Предприятие она будет выглядеть следующим образом:
Заголовок каждой группы — страницы отображается на отдельной закладке. Разработчик имеет возможность задать режим отображения закладок: снизу или сверху:
Например, закладки можно расположить снизу:
Элементы
Редактор позволяет добавлять в форму различные элементы. Добавлять элементы можно с помощью команды добавления или путем перетаскивания реквизитов формы в дерево элементов:
Все элементы формы представляются в виде иерархической структуры, корнем которой является сама форма. Это позволяет быстро перемещаться к нужному элементу формы:
Располагая элементы выше/ниже в дереве, подчиняя их другим элементам и задавая свойства элементов-групп можно задавать порядок, в котором пользователь будет обходить элементы управления формы при вводе и редактировании данных. В режиме 1С:Предприятие элементы формы будут обходиться в порядке их иерархии и в соответствии с тем, какой тип группировки выбран для групп: вертикальная или горизонтальная.
Разделители
Разделители являются специальными элементами, с помощью которых возможно перераспределение пространства формы без изменения ее размеров. Платформа в режиме 1С:Предприятие самостоятельно добавляет эти элементы в форму. Разделитель обладает способностью «захватываться» мышью и перемещаться внутри формы в ее пределах с учетом возможности расположения других элементов и ориентации разделителя:
При перемещении разделителя, все элементы, связанные с разделителем, будут изменять свои размеры или перемещаться.
Модуль формы
Для редактирования модуля формы конфигуратор вызывает редактор текстов и модулей. Этот редактор предоставляет разработчику большое разнообразие возможностей для создания и изменения текста модуля. Подробнее…
Реквизиты формы
Редактирование реквизитов формы выполняется в списке, который позволяет создавать новые реквизиты, изменять имеющиеся и удалять ненужные реквизиты. Свойства реквизитов задаются с помощью палитры свойств.
Если у формы существует основной реквизит, определяющий поведение формы, отличное от типового, — он выделяется жирным шрифтом.
Командный интерфейс формы
Командный интерфейс формы редактируется в дереве. Основные ветви дерева содержат команды, добавленные в панель навигации окна, в котором будет показана форма, и в командную панель формы. Внутри каждой из этих ветвей команды разделены по стандартным группам.
Часть команд в командный интерфейс платформа добавляет автоматически. Наряду с этим разработчик самостоятельно может добавить в командный интерфейс команды, перетащив их из списка команд формы или из списка доступных глобальных команд. Для всех команд, добавленных в командный интерфейс, разработчик может задать их видимость для различных ролей, определенных в конфигурации.
Команды формы
Команды формы редактируются в списке. Разработчик имеет возможность добавить, удалить команды формы и задать их свойства с помощью палитры свойств. В том числе назначить для команды процедуру, которая будет выполняться при вызове этой команды пользователем.
На закладках Стандартные команды и Глобальные команды разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы. Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме.
Параметры формы
Параметры формы редактируются в списке. Разработчик имеет возможность добавить, удалить параметры формы и задать их свойства с помощью палитры свойств.
Реквизиты управляемой формы (1Cv8)
Содержание
Реквизиты формы
Набор реквизитов формы описывает состав данных, которые отображаются, редактируются или хранятся в форме. При этом реквизиты формы сами по себе не обеспечивают возможности отображения и редактирования данных. Для отображения и редактирования служат элементы формы (смотрите раздел «Элементы формы» данной главы), связанные с реквизитами формы. Совокупность всех реквизитов формы будем называть данными формы.
Важно! Необходимо помнить, что, в отличие от обычных форм, все данные управляемой формы должны быть описаны в виде реквизитов. Не допускается использование переменных модуля формы в качестве источников данных для элементов формы.
Имеется возможность назначить Основной реквизит формы, т. е. реквизит, который будет определять стандартную функциональность формы (расширение формы). Следует помнить, что основной реквизит у формы может быть только один.
Расширение формы – это дополнительные свойства, методы и параметры формы объекта УправляемаяФорма, характерные для объекта, являющегося основным элементом формы.
В процессе разработки формы можно явно задать возможность просмотра и редактирования конкретных реквизитов формы, в разрезе ролей, с помощью свойств Просмотр и Редактирование (подробнее смотрите раздел «Ролевая настройка формы» главы «Редакторы»). Кроме того, доступность того или иного реквизита в самой форме можно настраивать с помощью функциональных опций (подробнее о функциональных опциях можно посмотреть в главе «Управление интерфейсом конфигурации»).
Свойство реквизита формы Сохраняемые данные является признаком того, что интерактивное изменение реквизита будет приводить к попытке блокировки данных формы для редактирования, а также к автоматической установке признака модифицированности формы.
Типы данных, доступные в управляемой форме
Управляемая форма отличается от обычной формы также и типами данных, с которыми она работает. Если обычная форма работает с большинством типов, которые предоставляет 1С:Предприятие (в том числе и вида СправочникОбъект, ДокументОбъект и т. д.), то в управляемой форме можно выделить следующие категории типов:
Преобразование прикладных объектов в данные формы
Некоторые прикладные типы (такие как СправочникОбъект и т. д.) не существуют на стороне тонкого и Веб-клиентов (подробнее см. главу «Концепция управляемого приложения»). Поэтому для представления в форме таких прикладных типов в платформе введены специальные типы данных, предназначенные для работы в управляемых формах. Эта особенность управляемого приложения обуславливает необходимость выполнять преобразование прикладных объектов в данные формы (и обратно).
Используются следующие типы данных:
Прикладной объект представлен либо одним, либо несколькими элементами данных формы. В общем виде иерархия и состав данных формы зависят от сложности и взаимосвязи прикладных объектов управляемой формы.
Например, документ, содержащий табличную часть, будет представлен объектом типа ДанныеФормыСтруктура (собственно документ), которому подчинен объект типа ДанныеФормыКоллекция (табличная часть документа).
Важно! Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.
Передача данных между клиентской и серверной частями управляемой формы
Фактически можно сказать, что данные формы – это унифицированное представление данных различных прикладных объектов, с которыми форма работает единообразно и которые присутствуют и на сервере, и на клиенте. То есть форма содержит некоторую «проекцию» данных прикладных объектов в виде своих собственных типов данных и выполняет преобразование между ними при необходимости. Однако в случае если разработчик конфигурации реализует свой алгоритм обработки данных, то преобразование данных (из специализированных типов в прикладные и обратно) он должен выполнять самостоятельно.
При редактировании реквизитов формы в специализированном редакторе (подробнее см. раздел «Реквизиты формы» главы «Редакторы») имеется возможность влиять на передачу данных между клиентом и сервером во время работы формы. Для этого служит колонка редактора реквизитов Использовать всегда. Действие этого свойства различается для трех типов реквизитов:
Примечание. Следует помнить, что свойство, установленное у родительского реквизита, действует на все подчиненные реквизиты. Например, если свойство Использовать всегда снято у табличной части документа, то система считает, что это свойство снято и у всех подчиненных реквизитов (несмотря на фактическое состояние свойства).
Методы для преобразования данных прикладных объектов в данные формы
Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:
Важно! Методы, работающие с прикладными объектами, доступны только в серверных процедурах. Метод для копирования значений между данными формы доступен на сервере и на клиенте, так как не требует прикладных объектов в качестве параметров.
Во время конвертирования данных формы в прикладной объект нужно учитывать их совместимость.
Примечание. При выполнении стандартных действий (открытие формы, выполнение стандартной команды Записать и т. д.) формы с основным реквизитом, преобразование выполняется автоматически.
Приведем пример, как использовать преобразование данных в собственных алгоритмах.
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
&НаКлиенте Процедура Записать()
&НаСервере Процедура ЗаписатьНаСервере()
Также у объекта УправляемаяФорма существуют методы, доступные на сервере:
Использование данных методов обычно удобнее, так как они, имеют, например, информацию о типе реквизита формы. Кроме того, метод РеквизитФормыВЗначение() выполняет установку соответствия данных формы и объекта, которая используется при формировании сообщений. Подробнее об этом можно прочитать в главе «Сервисные возможности навигации».
Приведем пример использования этих методов.
&НаСервере Процедура ПересчитатьНаСервере()
Программный интерфейс
ДанныеФормыДерево (FormDataTree)
Предназначен для моделирования дерева в данных управляемой формы.
ПолучитьЭлементы (GetItems)
Получает коллекцию элементов дерева верхнего уровня.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
НайтиПоИдентификатору (FindById)
Тип: Число. Идентификатор элемента дерева.
Получает элемент коллекции по идентификатору.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
ДанныеФормыЭлементДерева (FormDataTreeItem)
Элемент дерева данных формы.
ДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)
Элементы коллекции: ДанныеФормыЭлементДерева
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс элемента.
Коллекция элементов дерева.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
Особенности работы с деревом значений
Обновление дерева
Существует проблема падения платформы при обновлении дерева.
Если в дереве был развернут какой-либо узел и выбран подчиненный узел, то при обновлении дерева функцией ЗначениеВДанныеФормы происходит падение платформы.
Решение: перед обновлением нужно очищать дерево.
Как узнать в редакторе управляемых форм что реквизит используется элементом управления
3.62 Настройки редактора управляемых форм определяются.
3.63 Какие типы элементов можно добавить на форму в редакторе управляемых форм?
3.64 Как разместить в диалоге управляемой формы графические элементы, например, диаграмму?
1. Вызвать диалог вставки элементов управления и выбрать нужный элемент
3.65 Какие набор свойств соответствует реквизиту управляемой формы?
3.66 Серый цвет флажка в настройке видимости элемента по ролям на форме
3.67 Как узнать в редакторе управляемых форм, что реквизит используется элементом управления?
3.68 Почему элемент «Полное наименование» отсутствует в доступных полях при настройке формы в режиме исполнения, хотя в редакторе управляемой формы он есть?
3.69 Как осуществляется изменение размера элемента управления в диалоге управляемой форме?
3.70 Как в диалоге управляемой формы разместить элементы по горизонтали?
4. Конструкторы
4.1 Конструктор макета можно использовать.
4.2 Для открытия окна конструктора макета необходимо.
4.3 Макет какого типа может быть создан конструктором макетов?
4.4 Какие данные может содержать макет, созданный конструктором макетов?
4.5 При работе с конструктором макета необходимо выполнять загрузку из файла при работе с типами макета:
4.6 Выбор в конструкторе макетов типа «Табличный документ».
4.7 Для чего предназначен конструктор печати?
4.8 Если в конструкторе печати указано имя процедуры, которая будет выполнять построение печатной формы, и такая процедура уже присутствует в модуле.
4.9 Назовите инструмент визуального создания алгоритма заполнения объекта «на основании» и основное место его вызова?
4.10 Назовите основное назначение конструктора ввода документа «на основании»
4.11 Можно ли формулу заполнения поля «Состав.Цена» задать произвольным выражением?
4.12 Если процедура с именем «ОбработкаЗаполнения» уже определена в модуле документа, то возможно ли в этом случае использование конструктора ввода основании?
4.13 Какое предназначение имеет выделение «галочками» элементов списка «Реквизиты объекта основания»?
4.14 Назовите инструмент визуального создания алгоритма проведения документа и основное место его вызова
4.15 Назовите основное назначение конструктора движений документа
4.16 Процедуру с каким именем и в каком контексте определяет конструктор движений документа?
4.17 Если процедура с именем «ОбработкаПроведения» уже определена в модуле документа, то возможно ли в этом случае использование конструктора движений?
4.18 Можно ли произвести автозаполнение выражений и, если «да», то какими действиями?
4.19 Можно ли значение ресурса «Количество» задать произвольным выражением?
4.20 Конструктор форматной строки используется для составления текста форматной строки данных.
4.21 Конструктор форматной строки.
4.22 Для открытия окна конструктора форматной строки необходимо.
4.23 Форматная строка, сформированная в палитре свойств элемента управления формы при помощи конструктора форматной строки.
4.24 Каким образом можно задать текст надписей для элементов управления на выбранном языке?
4.25 Конструктор строк на разных языках может использоваться для.
4.26 Для открытия окна конструктора строк на разных языках необходимо.
4.27 Количество языков для конструктора строк на разных языках.
4.28 Конструктор форм предназначен для.
4.29 Как можно вызвать конструктор форм объектов конфигурации?
4.30 При создании формы конструктором формы был установлен флажок «Назначить форму основной». После сохранения этой формы можно ли будет назначить основной другую форму?
4.31 При создании формы конструктором формы количество размещаемых на форме командных панелей.
4.32 При построении формы конструктором с показанными на рисунке настройками.
4.33 После нажатия на кнопку «Далее», в соответствии с рисунком, на второй закладке конструктора общих форм можно будет:
4.34 Конструктор формы списка справочника на закладке «Далее».
4.35 Конструктор формы списка иерархического справочника при указании размещения дерева.
4.36 Можно ли в конструкторе формы элемента справочника на втором шаге (кнопка «Далее») указать размещение табличного поля, содержащего данные подчиненного справочника?
4.37 Можно ли в конструкторе формы документа на втором шаге (кнопка «Далее») указать размещение табличного поля, содержащего данные документа, на основании которого введен данный документ?
4.38 Можно ли в конструкторе формы документа на втором шаге (кнопка «Далее») указать размещение табличного поля, содержащего данные регистра, для которого данный документ может являться регистратором?
4.39 В конструкторе формы документа при необходимости нестандартного размещения элементов управления.
4.40 У документа уже определены все основные формы. При создании новой формы в конструкторе выставляют следующие флажки (см. рисунок). Что произойдет после того, как форма будет создана?
4.41 Использование конструктора запросов позволяет:
4.42 Использование конструктора запроса с обработкой результата позволяет:
4.43 При сохранении текста запроса, открытого повторно с помощью конструктора запроса, без внесения в этот текст изменений:
4.44 Конструктор запросов может быть вызван:
4.45 Кем может использоваться конструктор запросов?
4.46 На закладке «Таблицы и поля» конструктора запросов задают:
4.47 Для создания в конструкторе запросов вложенного запроса необходимо:
4.48 Для создания в конструкторе запросов вычисляемого поля необходимо: