A
Size: a a a
A
VP
VP
ВМ
ВМ
ВМ
ВМ
ВМ
A
ВМ
ВМ
ВМ
KZ
ВМ
KZ
ВМ
Процедура ПересоздатьДополнительныеРеквизитыДоговора()
УстановитьПривилегированныйРежим(Истина);
// пересоздаем реквизиты
мсвУдаляемыеРеквизиты = Новый Массив;
всеРеквизитыФормы = ПолучитьРеквизиты();
Для каждого выбРеквизит из ВсеРеквизитыФормы Цикл
Если Лев(выбРеквизит.Имя,4) = "дрд_" Тогда
мсвУдаляемыеРеквизиты.Добавить(выбРеквизит.Имя);
КонецЕсли;
КонецЦикла;
мсвДобавялемыеРеквизиты = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| тчДРД.ДопРеквизит КАК ДопРеквизит,
| тчДРД.Обязательный КАК Обязательный,
| тчДРД.ДопРеквизит.ТипЗначения КАК ТипЗначенияРеквизита,
| тчДРД.ДопРеквизит.Код КАК КодРеквизита,
| тчДРД.ДопРеквизит.Наименование КАК ПредставлениеРеквизита
|ИЗ
| Справочник.ТипыДоговоров.ДополнительныеРеквизиты КАК тчДРД
|ГДЕ
| тчДРД.Ссылка = &ТипДоговора";
Запрос.УстановитьПараметр("ТипДоговора", Объект.ТипДоговора);
тзДопРеквизиты = Запрос.Выполнить().Выгрузить();
Для каждого строкаДопРеквизита из тзДопРеквизиты Цикл
новыйРеквизиты = Новый РеквизитФормы("дрд_" + СокрЛП(строкаДопРеквизита.КодРеквизита), строкаДопРеквизита.ТипЗначенияРеквизита, , строкаДопРеквизита.ПредставлениеРеквизита, Истина);
мсвДобавялемыеРеквизиты.Добавить(новыйРеквизиты);
КонецЦикла;
ИзменитьРеквизиты(мсвДобавялемыеРеквизиты, мсвУдаляемыеРеквизиты);
// пересоздаем элементы и групы элементов
Для каждого строкаДопРеквизита из тзДопреквизиты Цикл
ИмяРеквизита = "дрд_" + СокрЛП(строкаДопРеквизита.КодРеквизита);
ИмяЭлемента = "пф_" + ИмяРеквизита;
полеНаФорме = УправлениеЭлементамиФормыВызовСервера.СоздатьПолеНаФорме(ЭтаФорма, ИмяЭлемента, ИмяРеквизита, Элементы.группаДопПараметры);
КонецЦикла;
КонецПроцедуры
VP
ВМ
ВМ