Загрузка...

обратиться в техподдержку

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

Служба заботы
05 июня 2024

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

Шаг 1: Добавление реквизита в структуру данных документа

  1. Откройте конфигуратор 1С:Предприятие.
  2. Найдите нужный документ в дереве конфигурации.
  3. Откройте структуру документа.
  4. В разделе “Реквизиты” добавьте новый реквизит, задав его имя, тип данных и другие необходимые свойства.

Шаг 2: Добавление реквизита на управляемую форму

  1. Откройте управляемую форму документа.
  2. Найдите место, куда вы хотите добавить новый реквизит (например, на закладку “Основные”).
  3. Добавьте новое поле для вашего реквизита:
    • Выберите тип элемента управления (например, “Поле ввода”).
    • Свяжите поле с добавленным реквизитом (свойство “DataPath” или “Данные”).

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

Рассмотрим пример кода, который программно отображает его на форме. При этом это должен быть реквизит объекта и указан в поле ПутьКДАнным

// Процедура - Добавить реквизит на форму
//
// Параметры:
//  Форма				 - Управляемая форма	 - 
//  ИмяГруппыРодитель	 - Строка	 - например, ГруппаДополнительно
//  ИмяЭлемента			 - Строка	 - например, митЧан, должно быть уникально в пределах всей формы
//  ПутьКДАнным			 - Строка	 - Объект.Чан
//  ТолькоПросмотр		 - Булево	 - доступен ли реквизит для редактирования
//
Процедура ДобавитьРеквизитНаФорму(Форма, ИмяГруппыРодитель, ИмяЭлемента, ПутьКДАнным, ТолькоПросмотр = Ложь)
	// Группа Родитель
	ГруппаРодитель = Форма.Элементы.Найти(ИмяГруппыРодитель);
	НовыйЭлемент = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаРодитель);
	НовыйЭлемент.ПутьКДанным = ПутьКДАнным;
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
	НовыйЭлемент.Видимость = Истина;
	НовыйЭлемент.Доступность = Истина; 
	НовыйЭлемент.ТолькоПросмотр = ТолькоПросмотр;
КонецПроцедуры
				

Добавить кнопку в командную панель табличной части

 
Процедура ДобавитьКнопкуКомандыВКоманднуюПанельТабЧасти(Форма, ИмяКоманды, ОбработчикКоманды, ИмяТабличнойЧасти, ЗаголовокКоманды, КартинкаКоманды)
	
	НоваяКоманда		 = Форма.Команды.Добавить(ИмяКоманды);
	НоваяКоманда.Действие = ОбработчикКоманды;

	// Находим табличную часть
	ТабличнаяЧасть = Форма.Элементы.Найти(ИмяТабличнойЧасти);

	Если ТабличнаяЧасть = Неопределено Тогда
		Сообщить("Табличная часть не найдена.");
		Возврат;
	КонецЕсли;

	Кнопка				= Форма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), ТабличнаяЧасть.КоманднаяПанель);
	Кнопка.Заголовок	= ЗаголовокКоманды;
	Кнопка.ИмяКоманды	=ИмяКоманды;//"ФормаКоманднаяПанель_КомандаМояКоманда";
	Кнопка.Картинка = КартинкаКоманды;//МОЛ_ЗаказыНаПоставкуМолочнойПродукции;
	Кнопка.ПоложениеКартинки = ПоложениеКартинкиКнопкиФормы.Лево;
	Кнопка.Отображение = ОтображениеКнопки.КартинкаИТекст;
	
КонецПроцедуры

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

 
Процедура расш_ПрограммноеСозданиеРеквизитовФормы(Форма)
        
    ДобавляемыеРеквизиты = Новый Массив;
    
    // Таблица значений:
    НовРеквизит = Новый РеквизитФормы(
        "расш_ТаблицаШтрафов",
        Новый ОписаниеТипов("ТаблицаЗначений"),,
        "Таблица штрафов"
    ); 
    ДобавляемыеРеквизиты.Добавить(НовРеквизит);

    // Колонки таблицы значений:

    НовРеквизит = Новый РеквизитФормы(
        "Сотрудник",
        Новый ОписаниеТипов("СправочникСсылка.Сотрудники"),
        "расш_ТаблицаШтрафов",
        "Сотрудник"
    ); 
    ДобавляемыеРеквизиты.Добавить(НовРеквизит);

    НовРеквизит = Новый РеквизитФормы(
        "СуммаШтрафа",
        Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2, ДопустимыйЗнак.Любой)),
        "расш_ТаблицаШтрафов",
        "Сумма Штраф"
    ); 
    ДобавляемыеРеквизиты.Добавить(НовРеквизит);
    Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        
КонецПроцедуры

Эти шаги помогут вам добавить новый реквизит на управляемую форму документа в 1С:Предприятие. Если у вас возникнут конкретные вопросы или проблемы на каком-либо этапе, не стесняйтесь задавать уточняющие вопросы.


Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в МИТ

Наши сервисы по этой теме:


заполните, пожалуйста
укажите Ваш e-mail
укажите Ваш номер телефона для связи