[Практика программирования] Управляемые формы 1С 8: как программно добавить поле флажка в форму объекта и форму списка
 
Программное добавление элементов на управляемую форму отличается от добавления на форму обычного интерфейса. При этом синтакс-помощник не очень то изобилует конкретикой и примерами в некоторых вопросах.

Общее условие, что все элементы формы программно добавляются на стороне сервера, а не на клиенте, как можно решить изначально, учитывая архитектуру платформы 1С: Предприятие 8.2 и 8.3. Да, "&НаСервере" и преимущественно в процедуре "ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)" формы документа или элемента справочника или формы списка.

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

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

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

По старой привычке, но уже понимая разницу типов можно по ошибке указать Тип("ПолеФлажкаФормы") второго параметра метода, но это будет неправильно и вызовет ошибку:

Нажатие на изображении увеличит его
1C 8, управляемые формы, УФ, как программно добавить флажок на форму

Недопустимое значение параметров
{ЗаказКлиента.Форма.ФормаДокумента.Форма(16)}: ФлажокДеньгиПолучены = Элементы.Добавить("_ДеньгиПолучены", Тип("ПолеФлажкаФормы"), ГруппаСтатусПриоритет);
по причине:
Недопустимое значение параметров

Поэтому надо учесть, что во второй параметр помещается "Тип("ПолеФормы")". А потом определяется "Вид" - "ВидПоляФормы.ПолеФлажка". Не забыть связать флажок с реквизитом объекта конфигурации через свойство "ПутьКДанным".

1 | ФлажокДеньгиПолучены = Элементы.Добавить("_ДеньгиПолучены", Тип("ПолеФормы"), ГруппаСтатусПриоритет);
2 | ФлажокДеньгиПолучены.Вид = ВидПоляФормы.ПолеФлажка;
3 | ФлажокДеньгиПолучены.ПутьКДанным = "Объект.ДопМФ_ДеньгиПолучены";

Так же справочно добавлю код по тому, как программно разместить на управляемой форме колонку с флажком в табличной части формы. Где "Таблицаформы" - табличная часть, в которую добавляется программно новая колонка. Для колонки исходно тип определяется как "ПолеФормы", потом через свойство вид определяется "ПолеФлажка". "ПутьКДанным" - указывается с учетом названия табличной части объекта (справочник или документ) конфигурации, в примере название табличной части "Табличная часть".

1 | ТаблицаФормы = Форма.Элементы.ТаблицаФормы;
2 | КолонкаВставки = ТабЧасть.ПодчиненныеЭлементы.Найти("ТабличнаяЧастьТовары");
3 | КолонкаФлажок = Форма.Элементы.Вставить("_Флажок", Тип("ПолеФормы"), ТаблицаФормы, КолонкаВставки);
4 | КолонкаФлажок.Вид = ВидПоляФормы.ПолеФлажка;
5 | КолонкаФлажок.Заголовок = "Ф.";
6 | КолонкаФлажок.ПутьКДанным = "Объект.ТабличнаяЧасть._Флажок";

И еще пример вывода колонки с флажком для реквизита документа типа "Булево" формы списка. Колонка вставляется передо колонкой "Номер", которая на форме носит имя "СписокНомер". Так же как и в предыдущем примере - при добавлении элемента формы определяется кодом, что флажок - это "поле формы", потом с помощью свойства уточняется вид поля формы. Связь через свойство "ПутьКДанным", где "Список" - название основного реквизита управляемой формы.

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

1 | ТаблицаФормы = Элементы.Список;
2 | КолонкаВставки = ТаблицаФормы.ПодчиненныеЭлементы.Найти("СписокНомер");
3 |
|
КолонкаДеньгиПолучены = Элементы.Вставить("_ДеньгиПолучены", Тип("ПолеФормы"), ТаблицаФормы, КолонкаВставки);
4 | КолонкаДеньгиПолучены.Вид = ВидПоляФормы.ПолеФлажка;
5 | КолонкаДеньгиПолучены.Заголовок = "Д.";
6 | КолонкаДеньгиПолучены.Подсказка = "Деньги получены";
7 | КолонкаДеньгиПолучены.ПутьКДанным = "Список.ДопМФ_ДеньгиПолучены";

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

Оцените, оказалась ли эта публикация полезна для Вас?

© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

04-10-2021

Журавлев А.С. (Сайт azhur-c.ru)

Назад

 
 

Здесь можно
приобрести лицензии

1С 8
​ и типовые решения

ural-rosaudit.ru - Аудит в сфере ЖКХ, www.ural-rosaudit.ru
azhur-blog.ru - мошенничество в интернете, www.azhur-blog.ru
info-compas.ru - каталог, инфокурсы, видеокурсы, видео курсы, обучение он-лайн, www.info-compas.ru
https://vk.com/effective_ideas - Группа вКонтакте Методы заработка и работы при помощи Интернет

 

Проверить аттестат
Cистема приема платежей, касса для сайта
Cистема управления контентом Santafox&trade. Санкт-Петербург, Ленинский проспект, д. 23 (812) 545-47-48
Яндекс.Метрика