Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

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

Posted on 22 июля 22 г.19 августа 24 г. By Алексей 5 комментариев к записи Программное добавление реквизитов на форму через расширение

Содержание:

  • Файлы материала
  • Описание
  • Программное добавление реквизита на форму
  • Программное добавление реквизита в табличную часть формы
  • Программное добавление табличной части на форму
Файлы материала
Расширение «Способ отражение в штатном расписании»Скачать
Расширение «Вредные факторы по профессии»Скачать
Описание

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

Полный список реквизитов и их связи в статье — Шпаргалка по программному созданию реквизитов и элементов (УФ).

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

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

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

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

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

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

1С (Код)
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С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&После("ПриСозданииНаСервере")
Процедура АВ_ПриСозданииНаСервере(Форма, ДополнительныеПараметры)
Если Форма.ИмяФормы = "Документ.РезультатыСпецоценкиУсловийТруда.Форма.ФормаДокумента" Тогда
#Область ДобавлениеЭлементовФормы
ИмяЭлемента = "АВ_ЕстьСпецжиры";
Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
ЭлементФормы = Форма.Элементы.Добавить("Спецжиры", Тип("ПолеФормы"), Форма.Элементы.РабочиеМеста);        
ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
ЭлементФормы.ПутьКДанным = "Объект.РабочиеМеста.АВ_ЕстьСпецжиры";
//ЭлементФормы.ТолькоПросмотр = Истина;
КонецЕсли;
#КонецОбласти
КонецЕсли;
КонецПроцедуры

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

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

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

Табличная часть добавленная через расширение
Добавление табличной части на форму
1С (Код)
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
&После("ПриСозданииНаСервере")
Процедура АВ_ПриСозданииНаСервере(Форма, ДополнительныеПараметры)
Если Форма.ИмяФормы = "Справочник.ПрофессииРабочих.Форма.ФормаЭлемента" Тогда
#Область ДобавлениеЭлементовФормы
ИмяГруппы = "ГруппаДополнительныеРеквизиты";
ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);
Если ГруппаФормы <> Неопределено Тогда
ИмяЭлемента = "АВ_ВредныеФакторы";
Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда   
ЭлементФормыТаблица = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ТаблицаФормы"), ГруппаФормы);  
ЭлементФормыТаблица.ПутьКДанным = "Объект.АВ_ВредныеФакторы";
ЭлементФормы = Форма.Элементы.Добавить("ВредныйФактор", Тип("ПолеФормы"), ЭлементФормыТаблица);
ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
ЭлементФормы.ПутьКДанным = "Объект.АВ_ВредныеФакторы.ВредныйФактор";    
КонецЕсли;
КонецЕсли;
#КонецОбласти
КонецЕсли;
КонецПроцедуры

Рекомендации

  • Расширение "Фото в карточке сотрудника ЗУП 3.1"
  • Шпаргалка по программному созданию реквизитов и элементов управляемой формы
  • Расширение "Блокировка изменения иерархии подразделений ЗУП 3.1"
Расширения, Типовые приемы, Шаблоны и заготовки

Навигация по записям

Previous Post: Расширение «Фото в карточке сотрудника ЗУП 3.1»
Next Post: Представления «Кадровые данные»

Комментарии (5) on “Программное добавление реквизитов на форму через расширение”

  1. Аноним:
    29 января 24 г. в 11:42

    Спасибо. Помогло.

    Ответить
  2. Игорь:
    8 июля 25 г. в 06:17

    методика не работает для справочника ХарактеристикиНоменклатуры в унф — не понимаю почему

    Ответить
  3. Дмитрий:
    24 сентября 25 г. в 13:15

    Очень хорошая шпаргалка, но не пойму почему в каких-то примерах есть #Область ДобавлениеРеквизитовФормы (с содержимым), а в каких-то сразу #Область ДобавлениеЭлементовФормы. Подскажите, пожалуйста.

    Ответить
    1. Алексей:
      25 сентября 25 г. в 11:45

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

      Ответить
  4. Аноним:
    28 ноября 25 г. в 09:07

    Спасибо! Работает

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты