1с управляемая форма реквизит использовать всегда

96-150 Okolokompa Форум

(@sadovod)

Сообщения: 258

Prominent Member

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

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

Если у реквизита данное свойство установлено, он будет передан на клиента независимо от того, связан ли с ним какой-либо элемент формы.

Размещено : 13/07/2021 9:49 дп

Как программно поставить галочку «использовать всегда»?

Я
   yesmax7

18.09.20 — 07:22

Конфигурация ЗУП 3.1 (3.1.14.55), хотя это не важно

Документ «Табель»

Основная форма документа

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

    
        ДобавляемыеРеквизиты = Новый Массив;

        НовыйРеквизитВремяИтогСтарое = Новый РеквизитФормы(«ВремяИтогСтарое», Новый ОписаниеТипов(«Строка»), «Объект.ДанныеОВремени», «ВремяИтогСтарое»);

    
    ДобавляемыеРеквизиты.Добавить(НовыйРеквизитВремяИтогСтарое);

    
    ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

Реквизит добавляется, видно даже по отладке

Затем добавляю его на форму в элементы

        НовыйЭлементВремяИтогСтарое = Элементы.Добавить(«ВремяИтогСтарое», Тип(«ПолеФормы»), Элементы.ДанныеОВремени);

    НовыйЭлементВремяИтогСтарое.Вид = ВидПоляФормы.ПолеВвода;

    НовыйЭлементВремяИтогСтарое.ПутьКДанным = «Объект.ДанныеОВремени.ВремяИтогСтарое»;    

    НовыйЭлементВремяИтогСтарое.ТолькоПросмотр = Истина;

На этой строчке

        НовыйЭлементВремяИтогСтарое.ПутьКДанным = «Объект.ДанныеОВремени.ВремяИтогСтарое»;

выходит ошибка:

        «Ошибка при установке значения атрибута контекста (ПутьКДанным)» по причине: Недопустимое значение

Нашел в интеренте причину: напротив таблицы «ДанныеОВремени» снята галочка «Использовать всегда». Если галочку нажать, ошибки не будет. Предполагаю, что вновь программно созданный реквизит-колонка «ВремяИтогСтарое» при добавлении заимствует значение этого флажка у своего родителя, т.е. флажок сброшен. Без этой галочки к колонке обратиться нельзя, следовательно нельзя и добавить на форму.

Нужно программно установить эту галочку для этой колонки

Нашел в интернете метод УстановитьОбязательноеИспользование(<Поле>, <Использование>), но не понятно где и как его использовать.

Во всех примерах он используется для динамического списка, а у меня табличная часть.

Пробывал писать так:

    Объект.ДанныеОВремени.УстановитьОбязательноеИспользование(…, …)

    Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование(…, …)

Везде пишет «Метод объекта не обнаружен»

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

  

Партнерская программа EFSOL Oblako

   sTOd

1 — 18.09.20 — 07:29

Глянь свойства элемента формы.

PS: Какое небо голубое…

   lucbak

2 — 18.09.20 — 08:06

(0) ЭтаФорма[«ИмяТаблицы»].УстановитьОбязательноеИспользование(ИмяКолонки, Истина);

   sTOd

3 — 18.09.20 — 08:21

А оплату за консультацию пришлите мне.

   yesmax7

4 — 30.09.20 — 06:29

(2) Нет, не работает.

ДанныеОВремени это табличная чать документа (Объект.ДанныеОВремени), которая также расположена на форме, а реквизит «СЗВ_ВремяИтогСтарое» я добавляю только на форму в эту табличную часть

Все перепробовал, везде вываливается в исключение, в комментарии ошибка, которая выходит

    Попытка

        Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«2: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

        
    Попытка

        Объект.ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«3: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

        
    Попытка

        ЭтаФорма.ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«4: » + ОписаниеОшибки());//Поле объекта не обнаружено (ДанныеОВремени)

    КонецПопытки;

        
    Попытка

        ЭтаФорма.Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«5: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

        
    Попытка

        ЭтаФорма.Объект.ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«6: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

        
    Попытка

        ЭтаФорма[«ДанныеОВремени»].УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«7: » + ОписаниеОшибки());//Поле объекта не обнаружено (ДанныеОВремени)

    КонецПопытки;

        
    Попытка

        ЭтаФорма[«Элементы.ДанныеОВремени»].УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«8: » + ОписаниеОшибки());//Поле объекта не обнаружено (Элементы.ДанныеОВремени)

    КонецПопытки;

        
    Попытка

        ЭтаФорма[«Объект.ДанныеОВремени»].УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«9: » + ОписаниеОшибки());//Поле объекта не обнаружено (Объект.ДанныеОВремени)

    КонецПопытки;

        
    Попытка

        ЭтаФорма[«Элементы»].ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«10: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

        
    Попытка

        ЭтаФорма[«Объект»].ДанныеОВремени.УстановитьОбязательноеИспользование(«СЗВ_ВремяИтогСтарое», Истина);

    Исключение

        Сообщить(«11: » + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование)

    КонецПопытки;

   hhhh

5 — 30.09.20 — 07:29

(4) должен быть Динамический список. Надо ваи его создать.

   yesmax7

6 — 30.09.20 — 11:17

(5) Документ типовой, там табличная чать

И к тому же, я же руками могу поставить эту галку, значит и программно должна ставиться

Когда я руками ставлю, все отрабатывает отлично

   Andreyyy

7 — 30.09.20 — 11:25

(6) Не все программно можно выполнить, например флажок «Автозаполнение» у командной панели не доступен программно.

Тут может быть аналогично.

Попробуйте перенести в расширение и там поставить флажок вручную.

   Андроны едут

8 — 30.09.20 — 11:33

(6) Вам же в (5) написали УстановитьОбязательноеИспользование — это метод динамического списка.

   yesmax7

9 — 01.10.20 — 06:33

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

  

yesmax7

10 — 01.10.20 — 06:35

(7) Походу сделаю так

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

Содержание

  • 1 Реквизиты формы
    • 1.1 Типы данных, доступные в управляемой форме
    • 1.2 Преобразование прикладных объектов в данные формы
    • 1.3 Передача данных между клиентской и серверной частями управляемой формы
    • 1.4 Методы для преобразования данных прикладных объектов в данные формы
  • 2 Программный интерфейс
    • 2.1 ДанныеФормыДерево (FormDataTree)
      • 2.1.1 ПолучитьЭлементы (GetItems)
      • 2.1.2 НайтиПоИдентификатору (FindById)
    • 2.2 ДанныеФормыЭлементДерева (FormDataTreeItem)
    • 2.3 ДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)
  • 3 Особенности работы с деревом значений
    • 3.1 Обновление дерева

Реквизиты формы

Набор реквизитов формы описывает состав данных, которые отображаются, редактируются или хранятся в форме. При этом реквизиты формы сами по себе не обеспечивают возможности отображения и редактирования данных. Для отображения и редактирования служат элементы формы (смотрите раздел «Элементы формы» данной главы), связанные с реквизитами формы. Совокупность всех реквизитов формы будем называть данными формы.

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

Имеется возможность назначить Основной реквизит формы, т. е. реквизит, который будет определять стандартную функциональность формы (расширение формы). Следует помнить, что основной реквизит у формы может быть только один.

Расширение формы – это дополнительные свойства, методы и параметры формы объекта УправляемаяФорма, характерные для объекта, являющегося основным элементом формы.

В процессе разработки формы можно явно задать возможность просмотра и редактирования конкретных реквизитов формы, в разрезе ролей, с помощью свойств Просмотр и Редактирование (подробнее смотрите раздел «Ролевая настройка формы» главы «Редакторы»). Кроме того, доступность того или иного реквизита в самой форме можно настраивать с помощью функциональных опций (подробнее о функциональных опциях можно посмотреть в главе «Управление интерфейсом конфигурации»).

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

Типы данных, доступные в управляемой форме

Управляемая форма отличается от обычной формы также и типами данных, с которыми она работает. Если обычная форма работает с большинством типов, которые предоставляет 1С:Предприятие (в том числе и вида СправочникОбъект, ДокументОбъект и т. д.), то в управляемой форме можно выделить следующие категории типов:

  • типы, которые непосредственно используются в форме – это те типы, которые существуют на стороне тонкого и Веб-клиента (например, Число, СправочникСсылка.Товары, ГрафическаяСхема, ТабличныйДокумент);
  • типы, которые будут преобразованы в специальные типы данных – типы данных управляемой формы. Такие типы отображаются в списке реквизитов формы в круглых скобках, например (СправочникОбъект.Товары);
  • динамический список (подробнее см. раздел «Динамический список» данной главы).

Преобразование прикладных объектов в данные формы

Некоторые прикладные типы (такие как СправочникОбъект и т. д.) не существуют на стороне тонкого и Веб-клиентов (подробнее см. главу «Концепция управляемого приложения»). Поэтому для представления в форме таких прикладных типов в платформе введены специальные типы данных, предназначенные для работы в управляемых формах. Эта особенность управляемого приложения обуславливает необходимость выполнять преобразование прикладных объектов в данные формы (и обратно).

Используются следующие типы данных:

  • ДанныеФормыСтруктура – содержит набор свойств произвольного типа. Свойствами могут быть другие структуры, коллекции или структуры с коллекциями. Таким типом представляется, например, в форме СправочникОбъект.
  • ДанныеФормыКоллекция – это список типизированных значений, похожий на массив. Доступ к элементу коллекции осуществляется по индексу или по идентификатору. Доступ по идентификатору может отсутствовать в некоторых случаях. Это обусловлено типом прикладного объекта, который представлен этой коллекцией. Идентификатором может быть любое целое число. Таким типом представляется, например, в форме табличная часть.
  • ДанныеФормыСтруктураСКоллекцией – это объект, который представлен в виде структуры и коллекции одновременно. С ним можно обращаться как с любой из этих сущностей. Таким типом представляется, например, в форме набор записей.
  • ДанныеФормыДерево – объект предназначен для хранения иерархических данных.

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

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

Важно! Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.

Передача данных между клиентской и серверной частями управляемой формы

Фактически можно сказать, что данные формы – это унифицированное представление данных различных прикладных объектов, с которыми форма работает единообразно и которые присутствуют и на сервере, и на клиенте. То есть форма содержит некоторую «проекцию» данных прикладных объектов в виде своих собственных типов данных и выполняет преобразование между ними при необходимости. Однако в случае если разработчик конфигурации реализует свой алгоритм обработки данных, то преобразование данных (из специализированных типов в прикладные и обратно) он должен выполнять самостоятельно.

При редактировании реквизитов формы в специализированном редакторе (подробнее см. раздел «Реквизиты формы» главы «Редакторы») имеется возможность влиять на передачу данных между клиентом и сервером во время работы формы. Для этого служит колонка редактора реквизитов Использовать всегда. Действие этого свойства различается для трех типов реквизитов:

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

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

Методы для преобразования данных прикладных объектов в данные формы

Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:

  • ЗначениеВДанныеФормы(),
  • ДанныеФормыВЗначение(),
  • КопироватьДанныеФормы().

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

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

  • ЗначениеВДанныеФормы() – преобразует объект прикладного типа в данные формы;
  • ДанныеФормыВЗначение() – преобразует данные формы в объект прикладного типа;
  • КопироватьДанныеФормы() – производит копирование данных формы, обладающих совместимой структурой. Возвращает значение Истина, если копирование произведено, или Ложь, если структура объектов несовместима.

Примечание. При выполнении стандартных действий (открытие формы, выполнение стандартной команды Записать и т. д.) формы с основным реквизитом, преобразование выполняется автоматически.

Приведем пример, как использовать преобразование данных в собственных алгоритмах.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  ОбъектТовар = Справочники.Товары.НайтиПоНаименованию(«Кофейник»).ПолучитьОбъект();
  ЗначениеВДанныеФормы(ОбъектТовар, Объект);
КонецПроцедуры
 
&НаКлиенте
Процедура Записать()
  ЗаписатьНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ЗаписатьНаСервере()
  ОбъектТовар = ДанныеФормыВЗначение(Объект, Тип(«СправочникОбъект.Товары»));
  ОбъектТовар.Записать();
КонецПроцедуры

Также у объекта УправляемаяФорма существуют методы, доступные на сервере:

  • ЗначениеВРеквизитФормы() – выполняет преобразование объекта прикладного типа в заданный реквизит формы.
  • РеквизитФормыВЗначение() – преобразует реквизит данных формы в объект прикладного типа.

Использование данных методов обычно удобнее, так как они, имеют, например, информацию о типе реквизита формы. Кроме того, метод РеквизитФормыВЗначение() выполняет установку соответствия данных формы и объекта, которая используется при формировании сообщений. Подробнее об этом можно прочитать в главе «Сервисные возможности навигации».

Приведем пример использования этих методов.

&НаСервере
Процедура ПересчитатьНаСервере()
 
  // Преобразует реквизит Объект в прикладной объект.
  Документ = РеквизитФормыВЗначение(«Объект»);
 
  // Выполняет пересчет методом, определенным в модуле документа.
  Документ.Пересчитать();
 
  // Преобразует прикладной объект обратно в реквизит.
  ЗначениеВРеквизитФормы(Документ, «Объект»);
КонецПроцедуры

Программный интерфейс

ДанныеФормыДерево (FormDataTree)

Методы:

  • НайтиПоИдентификатору (FindById)
  • ПолучитьЭлементы (GetItems)

Описание:

Предназначен для моделирования дерева в данных управляемой формы.

Доступность: клиент, сервер, тонкий клиент, веб-клиент. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту определяется в пространстве имен . Имя типа XDTO:

ПолучитьЭлементы (GetItems)

Синтаксис:

ПолучитьЭлементы()

Возвращаемое значение:

Тип: ДанныеФормыКоллекцияЭлементовДерева.

Описание:

Получает коллекцию элементов дерева верхнего уровня.

Доступность: клиент, сервер, тонкий клиент, веб-клиент.

НайтиПоИдентификатору (FindById)

Синтаксис:

НайтиПоИдентификатору(<Идентификатор>)

Параметры:

<Идентификатор> (обязательный)

Тип: Число. Идентификатор элемента дерева.

Возвращаемое значение:

Тип: ДанныеФормыЭлементДерева.

Описание:

Получает элемент коллекции по идентификатору.

Доступность: клиент, сервер, тонкий клиент, веб-клиент.

ДанныеФормыЭлементДерева (FormDataTreeItem)

Свойства:

<Имя свойства> (<Имя свойства>)

Методы:

  • ПолучитьИдентификатор (GetId)
  • ПолучитьРодителя (GetParent)
  • ПолучитьЭлементы (GetItems)
  • Свойство (Property)

Описание:

Элемент дерева данных формы.

Доступность: клиент, сервер, тонкий клиент, веб-клиент. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту определяется в пространстве имен . Имя типа XDTO:

ДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)

Элементы коллекции:
ДанныеФормыЭлементДерева

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора […]. В качестве аргумента передается индекс элемента.

Методы:

  • Вставить (Insert)
  • Добавить (Add)
  • Индекс (IndexOf)
  • Количество (Count)
  • Очистить (Clear)
  • Получить (Get)
  • Сдвинуть (Move)
  • Удалить (Delete)

Описание:

Коллекция элементов дерева.

Доступность: клиент, сервер, тонкий клиент, веб-клиент.

См. также:

  • ДанныеФормыЭлементДерева, метод ПолучитьЭлементы
  • ДанныеФормыДерево, метод ПолучитьЭлементы

Особенности работы с деревом значений

Обновление дерева

Существует проблема падения платформы при обновлении дерева.

Если в дереве был развернут какой-либо узел и выбран подчиненный узел, то при обновлении дерева функцией ЗначениеВДанныеФормы
происходит падение платформы.

Решение: перед обновлением нужно очищать дерево.

Например:

&НаСервере
Процедура ОчиститьДерево(элементы)
	Для каждого элемент из элементы Цикл
		ОчиститьДерево(элемент.ПолучитьЭлементы());
	КонецЦикла;
	элементы.Очистить();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьДеревоПонятий()
	дзПонятия = срСвойства.ПостроитьДеревоПонятий(НаДату, Мета.ТекущаяИБ());
	ОчиститьДерево(ДеревоПонятий.ПолучитьЭлементы());
	ЗначениеВДанныеФормы(дзПонятия, ДеревоПонятий);
КонецПроцедуры

&НаКлиенте
Процедура НаДатуПриИзменении(Элемент)
	ЗаполнитьДеревоПонятий();
КонецПроцедуры

Редактор управляемых форм имеет более сложную структуру, чем редактор обычных; это следствие того, что элементы и команды располагаются на форме автоматически:

Форма может содержать как реквизиты самого объекта, так и чисто реквизиты формы; реквизиты объекта можно отличить по опции Использовать всегда:

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

Также можно настроить отображение и для отдельных элементов:

***

Вопрос 03.61 экзамена 1С:Профессионал по платформе. Редактор управляемых форм содержит закладки…

  1. Диалог, Модуль, Реквизиты
  2. Форма, Модуль формы, Реквизиты
  3. Диалог, Модуль, Реквизиты, Команды формы
  4. Форма, Модуль, Элементы, Команды, Реквизиты, Параметры, Командный интерфейс
  5. Диалог, Модуль, Реквизиты, Элементы, Параметры, Команды формы, Командный
    интерфейс

Правильный ответ четвертый, см. первый скрин в посте.

***

Вопрос 03.62 экзамена 1С:Профессионал по платформе. Настройки редактора управляемых форм определяются…

  1. Для всех форм в настройках параметров конфигуратора
  2. Только в настройках самой формы
  3. Общие в настройках конфигуратора и индивидуальные в настройке формы
  4. Платформой без возможности их изменений

Правильный ответ четвертый — в случае режима работы конфигуратора «Управляемое приложение» в настройках параметров конфигурации нет закладки Формы:

***

Вопрос 03.63 экзамена 1С:Профессионал по платформе. Какие типы элементов можно добавить на форму в редакторе управляемых форм?

  1. Поле, Кнопка, Таблица, Картинка, Группа, Декорация
  2. Поле, Кнопка, Таблица, Картинка, Диаграмма, Декорация
  3. Поле, Кнопка, Таблица, Картинка, Группа, Декорация, Диаграмма
  4. Поле, Кнопка, Таблица, Картинка, Группа, Декорация, Разделитель

Правильный ответ первый:

***

Вопрос 03.64 экзамена 1С:Профессионал по платформе. Как разместить в диалоге управляемой формы графические элементы,
например, диаграмму?

  1. Вызвать диалог вставки элементов управления и выбрать нужный элемент
  2. Добавить элемент «Поле» и выбрать и определить у него тип «Диаграмма»
  3. Добавить элемент «Поле» и связать с реквизитом, у которого задан тип «Диаграмма»
  4. Использовать панель инструментов для размещения элементов заданного типа на
    форму

Правильный ответ третий. Создадим реквизит с этим типом:

и пропишем из формы связь с ним:

***

Вопрос 03.65 экзамена 1С:Профессионал по платформе. Какой набор свойств соответствует реквизиту управляемой формы?

  1. Имя, Тип
  2. Заголовок, Проверка заполнения
  3. Основной реквизит, Функциональные опции
  4. Просмотр, Редактирование
  5. Верны варианты 1 и 4
  6. Верны все варианты

Правильный ответ шестой — все эти варианты есть. 

Причем, по ссылкам Просмотри и Редактирование открывается список ролей, для которых и можно выставить просмотр или редактирование.

***

Вопрос 03.66 экзамена 1С:Профессионал по платформе. Почему элемент «Полное наименование» отсутствует в доступных полях при настройке формы в режиме исполнения, хотя в редакторе
управляемой формы он есть?

  1. Ограничена видимость элемента по ролям
  2. Ограничена видимость реквизита формы по ролям
  3. Ограничена видимость реквизита объекта по ролям

Правильный ответ третий — Полное наименование это явно реквизит объекта, о чем говорит галка Использовать всегда.

***

Вопрос 03.67 экзамена 1С:Профессионал по платформе. Серый цвет флажка в настройке видимости элемента по ролям на форме

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

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

***

Вопрос 03.68 экзамена 1С:Профессионал по платформе. Как узнать в редакторе управляемых форм, что реквизит используется
элементом управления?

  1. Выбрать реквизит формы и выполнить поиск ссылок на объект?
  2. Открыть палитру свойств реквизита и открыть свойство «Просмотр»
  3. Реквизиты, размещенные в форме, помечаются в редакторе реквизитов в колонке с
    пиктограммой в виде квадрата
  4. Открыть палитру свойств реквизита и открыть свойство «Редактирование»

Правильный ответ третий, выглядит это так:

***

Вопрос 03.69 экзамена 1С:Профессионал по платформе. Как осуществляется изменение размера элемента управления в диалоге управляемой форме?

  1. Средствами визуального редактирования диалога формы
  2. С помощью определенных свойств элемента управления
  3. С помощью макета размещения элементов на форме

Правильный ответ второй, см. выше.

***

Вопрос 03.70 экзамена 1С:Профессионал по платформе. Как в диалоге управляемой формы разместить элементы по горизонтали?

  1. Выбрать элементы и перетащить в нужное место на диалоге
  2. В свойстве элемента задать расположение относительно предыдущего
  3. Правила размещения могут быть заданы для всех элементов формы, либо на отдельные группы

Правильный ответ третий.

Знакомство с управляемой формой 1С лучше всего начинать с реквизитов. Что такое реквизит управляемой формы?  По своей сути, это данные, которые привязаны именно к форме: они создаются, хранятся, отображаются (по возможности) и редактируются на форме. Вне контекста формы эти данные не могут существовать. Сам по себе реквизит не может отображаться на форме. Для этого служат элементы формы, которые связаны с реквизитами форм.

Научимся создавать простые реквизиты формы и размещать их на форме.

Управляемое приложение 1С 8.3

Для этого в конфигураторе 1С создадим пустую форму. Пусть это будет форма некой внешней обработки. В этой форме нас интересует закладка Реквизиты

Пустая управляемая форма

В этой закладке сейчас только один реквизит – основной. Он нас пока не интересует, работа с основным реквизитом эта тема отдельной статьи. Пока разберемся с простыми реквизитами.

Для того, чтобы добавить реквизит необходимо нажать на кнопку «Добавить реквизит» командной панели закладки «Реквизиты»

Добавить реквизит управляемой формы

После этого будет добавлен реквизит управляемой формы 1С с типом по умолчанию (строка) и справа откроется палитра свойств этого реквизита.

Палитра свойств реквизита управляемой формы

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

Для тренировки создадим четыре реквизита с типом строка:  Фамилия, Имя, Отчество и ФИО. И один реквизит с типом дата: ДатаРождения.

Реквизиты на управляемой форме

Разместим реквизиты на форме. Сделать это просто: необходимо нужный реквизит мышкой «перетащить»  из закладки «Реквизиты» на закладку «Элементы»

Перетаскиваем реквизит в элементыПеретащим все реквизиты на формы, и с помощью кнопок «Вверх», «Вниз» удобно расположим их на форме.

Реквизиты на управляемой форме 1С

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

Свойство ПутьКДанным элемента формы

Если нажать на кнопку «…» свойства ПутьКДанным, то у разработчика есть возможность поменять привязанный к этому элементу реквизит формы.

Изменяем свойство ПутьКДанным элемента формы

Сейчас научимся использовать реквизиты в программном коде. Из статьи, посвященной архитектуре управляемой формы 1С 8.3 Вы знаете, что выполнение кода на форме возможно под директивами &НаКлиенте &НаСервере и  &НаСервереБезКонтекста.  Доступ к реквизитам формы возможен только в процедурах и функциях, которые выполняются на &НаКлиенте и &НаСервере.

Для наглядности выполним небольшую задачу: создадим команду, при выполнении которой Фамилия, Имя, Отчество и дата Рождения будут складываться в ФИО + Дата рождения.

Создадим локальную команду формы. Для этого на закладке «Команды» в подзакладке «Команды формы» необходимо нажать на кнопку «Добавить»

Добавление команды управляемой формы 1С

После создания команды, справа откроется палитра свойств новой команды, где мы зададим её название.

Название команды управляемой формы 1С

Но команда – это выполнение некоторых действий на форме.  Чтобы действия осуществились необходимо создать обработчик команды. Для создания обработчика команды нужно нажать на кнопку «Лупа» свойства действия. После этого откроется окно выбора места размещения обработчика.

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

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

После выбора места расположения обработчика, в модуле формы будет создана процедура под директивой &НаКлиенте, в которой мы напишем несложный код. В этом коде к реквизитам формы мы будем обращаться просто как к переменным. Мы можем это делать в клиентском и серверном контексте.

&НаКлиенте
Процедура СформироватьФИО(Команда)

    ФИО = Фамилия + " " +
               Имя + " " +
               Отчество + ", д.р. " +

    Формат(ДатаРождения, "ДЛФ=D");

КонецПроцедуры

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

Обратите внимание, после создание процедуры в палитре свойств команды свойство Действие заполнилось названием нашей новой процедуры.

Свойство Действие команды управляемой формы

И последним шагом нам осталось нашу команду разместить на управляемой форме. Просто перетащим её мышкой в закладку Элементы

Перетаскиваем команду в закладки Элементы

При этом на форме появится кнопка.

Сохраним обработку и попробуем выполнить нашу команду.

Работа команды на управляемой форме

Как видите, к реквизитам формы в модуле формы можно обращаться напрямую, как к переменным, но только если процедура или функция выполняется под директивами &НаКлиенте и &НаСервере.

Управляемое приложение 1С 8.3

Подробно вопросы работы с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.

Книга «Основы разработки в 1С: Такси»

Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

Промо-код на скидку в 15% — 48PVXHeYu

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Понравилась статья? Поделить с друзьями:
  • 1с управляемые формы получить реквизит на клиенте
  • 200 тысяч на открытие бизнеса от государства 2022
  • 200 часов исправительных работ это сколько в днях
  • 2021 реквизиты для платежей по несчастным случаям
  • 208 судебный участок санкт петербурга часы работы