Как реквизит на форме привязать к реквизиту объекта

Содержание:

1.       Формы в системе 1С

2.       Привязка к элементам 

1.    Формы в системе 1С

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

Формы в системе 1С

Рис. 1 Формы в системе 1С

Также прилагается пример нахождения в системе 1С общих форм, не принадлежащих объектам внутри конфигурации, смотреть скриншот ниже:

 Общие формы в 1С

Рис. 2 Общие формы в 1С

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

2.    Привязка к элементам

В системе 1С готовые формы вывода и элементы для управления отделены от объектов конфигурации. Как раз из этого «вытекает» необходимость привязки формы к справочнику для их корректной работы. Чаще всего связку делают при помощи режима конструктора для форм, но следует понимать, как именно это происходит. Благодаря этому можно будет самим сделать коррекцию привязки и «подогнать» ее под себя:

1.     есть стандартные объекты внутри конфигурации, которые имеют реквизиты и таблицы;

2.     есть объекты вида «Форма» с элементами, которые ею управляют (например, поля таблиц, вводные поля и так далее).

Эти два аспекта показаны на скриншоте ниже, можно наглядно сравнить:

Сравнение стандартных объектов внутри конфигурации и форм в системе 1С

Рис. 3 Сравнение стандартных объектов внутри конфигурации и форм в системе 1С

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

Для обеспечения отображения списка с элементами из табличного поля в форме демонстрации это поле обязано быть связано с объектом вида «СправочникСписок.ИмяСправочника». Рассмотрим, как реализовать привязку к элементам.

Данная привязка обеспечивается при помощи создания реквизитов. Далее устанавливаем свойства в «Данные», элементы по управлению, а также саму форму. Рассмотрим пример: пусть необходимо сделать форму для справочника, а также форму для элемента, которую будем создавать вручную, без режима конструктора форм. Делаем новую форму в справочнике «Номенклатура»:

Рис. 4 Новая форма справочника и элемента

Избираем у формы тип «Произвольная», перед нами появится самостоятельная форма, без привязки к данным, у которой не будет реквизитов:

Самостоятельная форма в системе 1С

Рис. 5 Самостоятельная форма в системе 1С

Замечание: не стоит спутывать реквизиты внутри объекта в конфигурации и реквизиты в форме.

Создаём новый реквизит формы: «СпрСписок», у которого будет тип «СправочникСписок.Номенклатура»:

Новый реквизит формы

Рис. 6 Новый реквизит формы

Стоит заметить, что данный реквизит – не основной реквизит формы.

Замечание: при наличии в форме основного реквизита меняется её поведение – в данном случае она будет главной формой в списке или в элементе.

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

 Главная форма при наличии в форме основного реквизита

Рис. 7 Главная форма при наличии в форме основного реквизита

Когда указываем свойство «Данные», автоматом меняется «Тип значения».

При переходе на вкладку «Реквизиты» в форме видно, что данный реквизит теперь основной (выделяется жирным шрифтом):

Основной реквизит в форме

Рис. 8 Основной реквизит в форме

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

Появление новый свойств формы в системе 1С

Рис. 9 Появление новый свойств формы в системе 1С

В диалоге у формы поместим элемент по управлению «Табличное поле»:

Табличное поле формы в системе 1С

Рис. 10 Табличное поле формы в системе 1С

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

Табличное поле формы в 1С

Рис. 11 Привязка поля к новому реквизиту в форме

Меняем название элемента на «тпСписок». Это ни на что не влияет, но в дальнейшем будет удобнее читать.

Замечание: свойство «Тип значения» теперь недоступно, это значит, что в свойствах у элемента не получится сменить тип значения у реквизита.

Также можем пронаблюдать, что произошли такие перемены:

· появились столбцы «Код» и «Наименование», они привязаны к реквизитам справочника по умолчанию;

· командная панель наверху теперь заполнена: имеет набор кнопок по умолчанию;

· в форме «ТабличноеПоле1» удалён реквизит.

Перемены в форме системы 1С

Рис. 12 Перемены в форме системы 1С

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

 Основная форма в системе 1С

Рис. 13 Основная форма в системе 1С

Запускаем систему 1С и сверяем корректность формы и ее работы:

форма в системе 1С

Рис. 14 Корректность работы формы

Следующим этапом станет добавление формы элемента справочника. Всё создаётся вручную, не используя конструктор. Создаём форму, которая будет принадлежать справочнику. По аналогии указываем тип «Произвольная», название дадим «ФормаЭлементаНовая»:

Добавление формы элемента справочника

Рис. 15 Добавление формы элемента справочника

Переходим во вкладку «Реквизиты», делаем новый реквизит формы, под названием «СпрОбъект», у него обязательно должен быть тип «СправочникОбъект.Номенклатура»:

Добавление формы элемента

Рис. 16 Создание нового реквизита формы в системе 1С

Данный реквизит ещё не принадлежит форме, так как не записан в свойстве «Данные» внутри формы. Исправим это, как показано на скриншоте ниже:

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

Рис. 17 Добавление принадлежности к форме нового реквизита

Замечание: при изменении «Тип значений» поменяется тип реквизита из формы, этого делать не стоит на данном этапе.

Теперь реквизит с названием «СпрОбъект» – главный внутри формы. Из-за его типа поменялись такие элементы формы:

·        кнопки на командных панелях;

·        увеличилось количество методов и свойств.

Далее стоит поместить свойства управления, чтобы в дальнейшем редактировать элемент формы после создания. Создаём в форме поле ввода и около него пишем «Наименование»:

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

Рис. 18 Свойства управления при создании элемента формы

Установим свойство «Данные» и привяжем его к реквизиту «Наименование» (из объекта «СпрОбъект»):

Привязка формы к реквизиту в 1С

Рис. 19 Привязка формы к реквизиту в 1С

После этой процедуры видим, что тип в поле ввода не может быть изменён, тип значения находится в структуре справочника:

Тип в поле ввода не может быть изменен

Рис. 20 Тип в поле ввода не может быть изменен

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

Замечание: учитывая то, что существует главный реквизит внутри формы, то кликнем на «Размещение данных», данная кнопка настроит связь элементов, появится такое окно:

Окно Размещение формы в 1С

Рис. 21 Окно Размещение формы в 1С

В данном окне находится перечень реквизитов и таблиц из объекта конфигурации, который является основным реквизитом в форме. В «Данные» ставим отметку для реквизитов, которые станут находится внутри формы. А в «Элементы формы» выбираем тип элемента по управлению.

При помощи верного размещения элементов формы имеем такой вид формы:

Размещение формы в 1С

Рис. 22 Правильное размещение элементов формы

Последний шаг – назначение данной формы основной формой у элемента из справочника, после чего можно все проверить:

Проверка работы формы в системе 1С


Рис. 23 Проверка работы формы в системе 1С

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Ну, вроде руки дошли за посмотреть.

Цитата
Сообщение от Raptor80
Посмотреть сообщение

мало совсем

Да, мало, но общую тенденцию можно увидеть.

Значит комментарии:
— Если есть масло и мясо, значит надо сразу предполагать, что будет неизвестное количество других ингредиентов. Поэтому нельзя для них выделять отдельные поля, а надо запихать их в табличную часть.
— Если граммовка различается для разных корпусов, и можно предположить, что она будет различаться по времени (например, директор может сказать, что первому корпусу с ноября по апрель больше класть крупы, потом вернуть обратно), то логично её организовать в виде документа. Назовём его ТТК (Технико-технологическая карта), и искать на момент расчёта последнюю, но не позднее этого момента, чтобы можно было заранее предусматривать изменения на будущее.
— ТТК составляется обязательно с указанием выхода готового продукта в граммах. Некоторые продукты во время готовки сильно теряют в весе (вода), а некоторые вообще потом изымаются (кости для бульона).
— Сразу нужно предусмотреть, что в состав блюда могут входить уже составные элементы (Заготовки), тогда при расчете они тоже должны разбираться, причём с учётом выхода блюда, выхода заготовки и количества заготовки в блюде. Выходит, рекурсия.

Теперь по наваяному:
Справочники.
— Корпус. Ну, тут понятно.
— Номенклатура. В нём и блюда, и заготовки, и ингредиенты. Справочник иерархический, так что одно от третьего отделить можно. Есть реквизит ЭтоБлюдо. Ставится вручную, или при проведении евоного ТТК с указанием количества порций в выходе. В документ Меню попадают только блюда с этим признаком.
Документы.
— ТТК.
Дата. С какого момента начинает действовать. И до момента следующей ТТК. ТТК можно задавать заранее, передним числом.
Корпус. Можно не указывать. Тогда действует на все корпуса.
Номенклатура. Какое собсно блюдо или заготовку делаем.
Выход. Обязательно. Масса готового блюда из всех указанных ингредиентов.
Порций. Только для блюд. Не для заготовок. На сколько порций делится указанный выход.
— Меню.
По реквизитам понятно. Считает общую граммовку на указанное количество порций всех указанных блюд. Результат не хранит, т.к. к следующему расчету граммовки могут измениться.

Всё проверил. Граммовки рассчитал вручную, вроде совпадает.
Порядок действий: Заводим ингредиенты, заготовки, блюда. Заводим ТТК для заготовок и блюд с учётом даты документа. Заводим меню по аналогии. Жмём кнопку Рассчитать. Поминаем меня незлым тихим словом.
Предупреждаю. Оптимизацию кода и запросов не делал. Есть смертные грехи вроде запроса в цикле. На взаимовложенность заготовок не проверяю (если заготовка А вложена в заготовку Б, а та в заготовку А, то зациклится). Но работает, и уже надоело возиться.

Знакомство с управляемой формой 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

Привязать реквизит объекта к его дополнительному реквизиту как владельцу

Я
   DCKiller

05.04.15 — 12:42

Дано: Бухгалтерия 3.0, справочник договоров контрагентов, у справочника — дополнительный реквизит типа «Номенклатура» и реквизит типа «Справочник.Спецификации» (объект метаданных), подчиненный справочнику «Номенклатура». Вопрос: как прописать подчинение реквизита-объекта МД дополнительному реквизиту по владельцу? Т.е. чтобы было так: пользователь в форме договора выбирает в доп. реквизит номенклатуру, потом выбирает значение в реквизит «Спецификация», и при открытии формы выбора справочника спецификаций у него там все записи отфильтрованы по владельцу (выбранной номенклатуре)? Или такое замутить не получится?

  

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

   GROOVY

1 — 05.04.15 — 12:52

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

   zak555

2 — 05.04.15 — 12:59

GROOVY рассказал бы лучше про Метаданные незаписанного объекта

   GROOVY

3 — 05.04.15 — 13:01

(2)  Это тебе к Нуралиеву, я тут не помогу.

   GROOVY

4 — 05.04.15 — 13:02

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

   zak555

5 — 05.04.15 — 13:05

(4) не помогло

   DCKiller

6 — 05.04.15 — 14:18

(1) Нет такого. Есть «ПараметрыВыбора» и «СвязиПараметровВыбора».

  

GROOVY

7 — 05.04.15 — 14:28

(6)  Ну извини, нет под рукой платформы, думаю, что ТС по наводке нашел все.

TurboConf — расширение возможностей Конфигуратора 1С

Как привязать изменение одного реквизита другому?

Входные данные на форме:
Реквизит1
Реквизит2

При изменении Реквизит1.Наименование необходимо автоматическое изменение Реквизит2.Наименование. Чтобы их значения были одинаковыми.

На примере справочника «Номенклатура поставщиков». Есть привязка к справочнику «Номенклатура». В это поле указывается наименование номенклатуры. При изменении наименования должно автоматически меняться поле «Наименование» для справочника «Номенклатура поставщиков».

Как это сделать в конфигураторе?


  • Вопрос задан

    более года назад

  • 407 просмотров

На примере справочника «Номенклатура поставщиков» такой кейс вообще странный, потому что оно для того и сделано разными справочниками, чтобы решить проблему, когда одна и та же номенклатура, у нас и у поставщика по разному называется.
Если формально решать задачу; «при изменении реквизита изменить другой», то решение зависит от того, обычные у вас формы или управляемые. Предположу что управляемые, поскольку они используются практически во всех современных конфигурациях. Тогда нужно для реквизита1 добавить обработчик события ПриИзменении, и в нем описать алгоритм заполнения реквизита2. Чтобы в управляемых формах добавить обработчик события, нужно вызвать контектное меню реквизита1 и в пункте «События» выбрать <ПриИзменении> После чего выбрать, какой обработчик события вам нужен, на клиенте, или на клиенте с обработкой на сервере.

Пригласить эксперта


  • Показать ещё
    Загружается…

23 мар. 2023, в 23:49

1000 руб./за проект

23 мар. 2023, в 23:46

2000 руб./за проект

23 мар. 2023, в 23:39

5000 руб./за проект

Минуточку внимания

Файлы материала
Описание

Новый реквизит на форму, можно добавить программно через расширение, при этом не забирать саму форму в расширение (это удобно тем, что последующие обновления внешнего вида формы не смогут сломать наше расширение). В типовых конфигурациях, данный способ можно реализовывать в процедуре “ПриСозданииНаСервере” общего модуля “УправлениеСвойствами” .

Программное добавление реквизита на форму

Для примера, стоит задача в конфигурации ЗУП 3.1 добавить реквизит «Способ отражения зарплаты в БУ» для позиции штатного расписания в группе “Дополнительные данные”.

Способ отражение в позиции штатного расписания

Создадим расширение и выполним следующую последовательность действий:

  1. Добавим в расширение справочник “Штатное расписание” и создадим реквизит “АВ_СпособОтражения” с типом данных “СправочникСсылка.СпособыОтраженияЗарплатыВБухУчете”

добавление реквизита АВ_СпособОтражения в расширение

2. Заберем в расширение процедуру “ПриСозданииНаСервере” из общего модуля “УправлениеСвойствами”, программно добавим поле в форму и свяжем его с реквизитом объекта добавленного на первом шаге.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

&После(«ПриСозданииНаСервере»)

Процедура АВ_ПриСозданииНаСервере(Форма, ДополнительныеПараметры)

Если Форма.ИмяФормы = «Справочник.ШтатноеРасписание.Форма.ФормаЭлемента» Тогда

#Область ДобавлениеЭлементовФормы

ИмяГруппы = «ГруппаДополнительныеРеквизиты»;

ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);

Если ГруппаФормы <> Неопределено Тогда

ИмяЭлемента = «АВ_СпособОтражения»;

Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда

ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип(«ПолеФормы»), ГруппаФормы);

//Вместо Добавить() можно использовать метод Вставить()

//в 4-й параметре указывается Элемент перед которым должен быть вставлен новый элемент.

//ЭлементФормы = Форма.Элементы.Вставить(ИмяЭлемента, Тип(«ПолеФормы»), ГруппаФормы, Форма.Элементы.Найти(«ИмяСледующегоЭлементаФормы»));

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

ЭлементФормы.ПутьКДанным = «Объект.АВ_СпособОтражения»;

//ЭлементФормы.МногострочныйРежим = Истина;

//ЭлементФормы.Высота = 3;

КонецЕсли;

КонецЕсли;

#КонецОбласти

КонецЕсли;

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

Образец расширения для скачивания в начале описания.

Программное добавление реквизита в табличную часть формы

Например, таким же способом, добавим в табличную часть “Рабочие места” реквизит “Спецжиры” с типом “Булево”.

Результат спецоценки условий труда с  колонкой спецжиры

Добавление реквизита в табличную часть

&После(«ПриСозданииНаСервере»)

Процедура АВ_ПриСозданииНаСервере(Форма, ДополнительныеПараметры)

Если Форма.ИмяФормы = «Документ.РезультатыСпецоценкиУсловийТруда.Форма.ФормаДокумента» Тогда

#Область ДобавлениеЭлементовФормы

ИмяЭлемента = «АВ_ЕстьСпецжиры»;

Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда

ЭлементФормы = Форма.Элементы.Добавить(«Спецжиры», Тип(«ПолеФормы»), Форма.Элементы.РабочиеМеста);        

ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;

ЭлементФормы.ПутьКДанным = «Объект.РабочиеМеста.АВ_ЕстьСпецжиры»;

//ЭлементФормы.ТолькоПросмотр = Истина;

КонецЕсли;

#КонецОбласти

КонецЕсли;

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

В результате получим табличную часть с новой колонкой.

Программное добавление табличной части на форму

Аналогично добавим табличную часть “АВ_ВредныеФакторы” на форму справочника “Профессии”.

Табличная часть добавленная через расширение

Добавление табличной части на форму

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

&После(«ПриСозданииНаСервере»)

Процедура АВ_ПриСозданииНаСервере(Форма, ДополнительныеПараметры)

Если Форма.ИмяФормы = «Справочник.ПрофессииРабочих.Форма.ФормаЭлемента» Тогда

#Область ДобавлениеЭлементовФормы

ИмяГруппы = «ГруппаДополнительныеРеквизиты»;

ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);

Если ГруппаФормы <> Неопределено Тогда

ИмяЭлемента = «АВ_ВредныеФакторы»;

Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда   

ЭлементФормыТаблица = Форма.Элементы.Добавить(ИмяЭлемента, Тип(«ТаблицаФормы»), ГруппаФормы);  

ЭлементФормыТаблица.ПутьКДанным = «Объект.АВ_ВредныеФакторы»;

ЭлементФормы = Форма.Элементы.Добавить(«ВредныйФактор», Тип(«ПолеФормы»), ЭлементФормыТаблица);

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

ЭлементФормы.ПутьКДанным = «Объект.АВ_ВредныеФакторы.ВредныйФактор»;    

КонецЕсли;

КонецЕсли;

#КонецОбласти

КонецЕсли;

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

Связь реквизитов формы с элементами формы

Кроме того, реквизиты формы можно создавать программно и связывать их с элементами формы

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#Область ДобавлениеРеквизитовФормы

// Массив для новых реквизитов

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

// Опишем ревизиты формы

Реквизит_РабочееМесто = Новый РеквизитФормы(«АВ_РабочееМесто», Новый ОписаниеТипов(«СправочникСсылка.РабочиеМестаОхраныТруда»), , «Рабочее место»);

// Заполним массив после описания реквизитов формы

ДобавляемыеРеквизиты.Добавить(Реквизит_РабочееМесто);

// Добавим новые реквизиты в форму

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

#КонецОбласти

#Область ДобавлениеЭлементовФормы

...

#КонецОбласти

#Область ЗаполнениеДанных

Форма.АВ_РабочееМесто = Форма.Объект.АВ_РабочееМесто;

#КонецОбласти


Расширения, Типовые приемы, Шаблоны и заготовки

Понравилась статья? Поделить с друзьями:
  • Как реквизиты являются обязательными в доверенности
  • Как сбербанк онлайн посмотреть реквизиты сберкнижки
  • Как сдавать отчетность через сбербанк бизнес онлайн
  • Как скачать приложение россельхозбанк бизнес онлайн
  • Как скачать приложение сбербанк бизнес на компьютер