viskvortsov / 1C-developer

Репозиторий курса "Программист 1С"
Apache License 2.0
6 stars 5 forks source link

Форма #145

Closed viskvortsov closed 6 years ago

viskvortsov commented 7 years ago
#Область РаботаСФормой

// Форма - управляемая форма объекта,
// ДобавляемыеРеквизиты - Массив,
// УдаляемыеРеквизиты - Массив,
// В массив должны добавляться элементы Структура:
// 1. Имя,
// 2. Тип,
// 3. Путь,
// 4. Заголовок,
// 5. СохраняемыеДанные.
Процедура ИзменитьРеквизитыФормы(Форма, ДобавляемыеРеквизиты = Неопределено, УдаляемыеРеквизиты = Неопределено, Отказ = Ложь) Экспорт

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

    Если ДобавляемыеРеквизиты <> Неопределено Тогда
        Для Каждого ДобавляемыйРеквизит из ДобавляемыеРеквизиты Цикл

            Реквизит = Новый РеквизитФормы(ДобавляемыйРеквизит.Имя, 
            ДобавляемыйРеквизит.Тип, 
            ДобавляемыйРеквизит.Путь, 
            ДобавляемыйРеквизит.Заголовок, 
            ДобавляемыйРеквизит.СохраняемыеДанные);

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

        КонецЦикла;
    КонецЕсли;

    Если УдаляемыеРеквизиты <> Неопределено Тогда
        Для Каждого УдаляемыйРеквизит из УдаляемыеРеквизиты Цикл

            Реквизит = "" + УдаляемыйРеквизит.Путь +"."+ УдаляемыйРеквизит.Имя; 

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

        КонецЦикла;
    КонецЕсли;

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

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

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

    Если Элемент.Свойство("Родитель") Тогда
        Родитель = Элемент.Родитель;
    Иначе
        Родитель = Форма;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Элемент.Имя, Элемент.Тип, Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Элемент.Имя, Элемент.Тип, Родитель, МестоРасположения);
    КонецЕсли;

    Если ТипЗнч(ДобавляемыйЭлемент) = Тип("ДекорацияФормы") Тогда

        Если Элемент.Свойство("Вид") Тогда 
            ДобавляемыйЭлемент.Вид                      = Элемент.Вид;
        КонецЕсли;
        Если Элемент.Свойство("Видимость") Тогда 
            ДобавляемыйЭлемент.Видимость                = Элемент.Видимость;
        КонецЕсли;
        Если Элемент.Свойство("Высота") Тогда 
            ДобавляемыйЭлемент.Высота                   = Элемент.Высота;
        КонецЕсли;
        Если Элемент.Свойство("Доступность") Тогда 
            ДобавляемыйЭлемент.Доступность              = Элемент.Доступность;
        КонецЕсли;
        Если Элемент.Свойство("Заголовок") Тогда 
            ДобавляемыйЭлемент.Заголовок                = Элемент.Заголовок;
        КонецЕсли;
        Если Элемент.Свойство("КонтекстноеМеню") Тогда 
            ДобавляемыйЭлемент.КонтекстноеМеню          = Элемент.КонтекстноеМеню;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПодсказки") Тогда 
            ДобавляемыйЭлемент.ОтображениеПодсказки     = Элемент.ОтображениеПодсказки;
        КонецЕсли;
        Если Элемент.Свойство("Подсказка") Тогда 
            ДобавляемыйЭлемент.Подсказка                = Элемент.Подсказка;
        КонецЕсли;
        Если Элемент.Свойство("ПропускатьПриВводе") Тогда 
            ДобавляемыйЭлемент.ПропускатьПриВводе       = Элемент.ПропускатьПриВводе;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоВертикали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоВертикали   = Элемент.РастягиватьПоВертикали;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоГоризонтали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоГоризонтали = Элемент.РастягиватьПоГоризонтали;
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.РасширеннаяПодсказка     = Элемент.РасширеннаяПодсказка;
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.СочетаниеКлавиш          = Элемент.СочетаниеКлавиш;
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекста") Тогда 
            ДобавляемыйЭлемент.ЦветТекста               = Элемент.ЦветТекста;
        КонецЕсли;
        Если Элемент.Свойство("Ширина") Тогда 
            ДобавляемыйЭлемент.Ширина                   = Элемент.Ширина;
        КонецЕсли;
        Если Элемент.Свойство("Шрифт") Тогда 
            ДобавляемыйЭлемент.Шрифт                    = Элемент.Шрифт;
        КонецЕсли;

    ИначеЕсли ТипЗнч(ДобавляемыйЭлемент) = Тип("ГруппаФормы") Тогда

        Если Элемент.Свойство("Вид") Тогда 
            ДобавляемыйЭлемент.Вид                      = Элемент.Вид;
        КонецЕсли;
        Если Элемент.Свойство("Видимость") Тогда 
            ДобавляемыйЭлемент.Видимость                = Элемент.Видимость;
        КонецЕсли;
        Если Элемент.Свойство("Высота") Тогда 
            ДобавляемыйЭлемент.Высота                   = Элемент.Высота;
        КонецЕсли;
        Если Элемент.Свойство("Доступность") Тогда 
            ДобавляемыйЭлемент.Доступность              = Элемент.Доступность;
        КонецЕсли;
        Если Элемент.Свойство("Заголовок") Тогда 
            ДобавляемыйЭлемент.Заголовок                = Элемент.Заголовок;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПодсказки") Тогда 
            ДобавляемыйЭлемент.ОтображениеПодсказки     = Элемент.ОтображениеПодсказки;
        КонецЕсли;
        Если Элемент.Свойство("Подсказка") Тогда 
            ДобавляемыйЭлемент.Подсказка                = Элемент.Подсказка;
        КонецЕсли;
        Если Элемент.Свойство("ПодчиненныеЭлементы") Тогда 
            ДобавляемыйЭлемент.ПодчиненныеЭлементы      = Элемент.ПодчиненныеЭлементы;
        КонецЕсли;
        Если Элемент.Свойство("РазрешитьИзменениеСостава") Тогда 
            ДобавляемыйЭлемент.РазрешитьИзменениеСостава= Элемент.РазрешитьИзменениеСостава;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоВертикали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоВертикали   = Элемент.РастягиватьПоВертикали;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоГоризонтали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоГоризонтали = Элемент.РастягиватьПоГоризонтали;
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.РасширеннаяПодсказка     = Элемент.РасширеннаяПодсказка;
        КонецЕсли;
        Если Элемент.Свойство("СочетаниеКлавиш") Тогда 
            ДобавляемыйЭлемент.СочетаниеКлавиш          = Элемент.СочетаниеКлавиш;
        КонецЕсли;
        Если Элемент.Свойство("ТолькоПросмотр") Тогда 
            ДобавляемыйЭлемент.ТолькоПросмотр           = Элемент.ТолькоПросмотр;
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекстаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ЦветТекстаЗаголовка      = Элемент.ЦветТекстаЗаголовка;
        КонецЕсли;
        Если Элемент.Свойство("Ширина") Тогда 
            ДобавляемыйЭлемент.Ширина                   = Элемент.Ширина;
        КонецЕсли;
        Если Элемент.Свойство("ШрифтЗаголовка") Тогда 
            ДобавляемыйЭлемент.ШрифтЗаголовка           = Элемент.ШрифтЗаголовка;
        КонецЕсли;

    ИначеЕсли ТипЗнч(ДобавляемыйЭлемент) = Тип("КнопкаФормы") Тогда

        Если Элемент.Свойство("АктивизироватьПоУмолчанию") Тогда 
            ДобавляемыйЭлемент.АктивизироватьПоУмолчанию= Элемент.АктивизироватьПоУмолчанию;
        КонецЕсли;
        Если Элемент.Свойство("Вид") Тогда 
            ДобавляемыйЭлемент.Вид                      = Элемент.Вид;
        КонецЕсли;
        Если Элемент.Свойство("Видимость") Тогда 
            ДобавляемыйЭлемент.Видимость                = Элемент.Видимость;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ВысотаЗаголовка          = Элемент.ВысотаЗаголовка;
        КонецЕсли;
        Если Элемент.Свойство("Доступность") Тогда 
            ДобавляемыйЭлемент.Доступность              = Элемент.Доступность;
        КонецЕсли;
        Если Элемент.Свойство("Заголовок") Тогда 
            ДобавляемыйЭлемент.Заголовок                = Элемент.Заголовок;
        КонецЕсли;
        Если Элемент.Свойство("ИмяКоманды") Тогда 
            ДобавляемыйЭлемент.ИмяКоманды               = Элемент.ИмяКоманды;
        КонецЕсли;
        Если Элемент.Свойство("Картинка") Тогда 
            ДобавляемыйЭлемент.Картинка                 = Элемент.Картинка;
        КонецЕсли;
        Если Элемент.Свойство("КнопкаПоУмолчанию") Тогда 
            ДобавляемыйЭлемент.КнопкаПоУмолчанию        = Элемент.КнопкаПоУмолчанию;
        КонецЕсли;
        Если Элемент.Свойство("Отображение") Тогда 
            ДобавляемыйЭлемент.Отображение              = Элемент.Отображение;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПодсказки") Тогда 
            ДобавляемыйЭлемент.ОтображениеПодсказки     = Элемент.ОтображениеПодсказки;
        КонецЕсли;
        Если Элемент.Свойство("Пометка") Тогда 
            ДобавляемыйЭлемент.Пометка                  = Элемент.Пометка;
        КонецЕсли;
        Если Элемент.Свойство("ПропускатьПриВводе") Тогда 
            ДобавляемыйЭлемент.ПропускатьПриВводе       = Элемент.ПропускатьПриВводе;
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.РасширеннаяПодсказка     = Элемент.РасширеннаяПодсказка;
        КонецЕсли;
        Если Элемент.Свойство("СочетаниеКлавиш") Тогда 
            ДобавляемыйЭлемент.СочетаниеКлавиш          = Элемент.СочетаниеКлавиш;
        КонецЕсли;
        Если Элемент.Свойство("ТолькоВоВсехДействиях") Тогда 
            ДобавляемыйЭлемент.ТолькоВоВсехДействиях    = Элемент.ТолькоВоВсехДействиях;
        КонецЕсли;
        Если Элемент.Свойство("ЦветРамки") Тогда 
            ДобавляемыйЭлемент.ЦветРамки                = Элемент.ЦветРамки;
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекста") Тогда 
            ДобавляемыйЭлемент.ЦветТекста               = Элемент.ЦветТекста;
        КонецЕсли;
        Если Элемент.Свойство("ЦветФона") Тогда 
            ДобавляемыйЭлемент.ЦветФона                 = Элемент.ЦветФона;
        КонецЕсли;
        Если Элемент.Свойство("Ширина") Тогда 
            ДобавляемыйЭлемент.Ширина                   = Элемент.Ширина;
        КонецЕсли;
        Если Элемент.Свойство("Шрифт") Тогда 
            ДобавляемыйЭлемент.Шрифт                    = Элемент.Шрифт;
        КонецЕсли;

    ИначеЕсли ТипЗнч(ДобавляемыйЭлемент) = Тип("ТаблицаФормы") Тогда

        Если Элемент.Свойство("АвтоВводНезаполненного") Тогда 
            ДобавляемыйЭлемент.АвтоВводНезаполненного   = Элемент.АвтоВводНезаполненного;
        КонецЕсли;
        Если Элемент.Свойство("АвтоВводНовойСтроки") Тогда 
            ДобавляемыйЭлемент.АвтоВводНовойСтроки      = Элемент.АвтоВводНовойСтроки;
        КонецЕсли;
        Если Элемент.Свойство("АвтоОтметкаНезаполненного") Тогда 
            ДобавляемыйЭлемент.АвтоОтметкаНезаполненного= Элемент.АвтоОтметкаНезаполненного;
        КонецЕсли;
        Если Элемент.Свойство("АктивизироватьПоУмолчанию") Тогда 
            ДобавляемыйЭлемент.АктивизироватьПоУмолчанию= Элемент.АктивизироватьПоУмолчанию;
        КонецЕсли;
        Если Элемент.Свойство("ВертикальнаяПолосаПрокрутки") Тогда 
            ДобавляемыйЭлемент.ВертикальнаяПолосаПрокрутки= Элемент.ВертикальнаяПолосаПрокрутки;
        КонецЕсли;
        Если Элемент.Свойство("ВертикальныеЛинии") Тогда 
            ДобавляемыйЭлемент.ВертикальныеЛинии        = Элемент.ВертикальныеЛинии;
        КонецЕсли;
        Если Элемент.Свойство("Видимость") Тогда 
            ДобавляемыйЭлемент.Видимость                = Элемент.Видимость;
        КонецЕсли;
        Если Элемент.Свойство("Вывод") Тогда 
            ДобавляемыйЭлемент.Вывод                    = Элемент.Вывод;
        КонецЕсли;
        Если Элемент.Свойство("ВыделенныеСтроки") Тогда 
            ДобавляемыйЭлемент.ВыделенныеСтроки         = Элемент.ВыделенныеСтроки;
        КонецЕсли;  
        Если Элемент.Свойство("ВыделенныеСтроки") Тогда 
            ДобавляемыйЭлемент.Высота                   = Элемент.Высота;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаВСтрокахТаблицы") Тогда 
            ДобавляемыйЭлемент.ВысотаВСтрокахТаблицы    = Элемент.ВысотаВСтрокахТаблицы;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ВысотаЗаголовка          = Элемент.ВысотаЗаголовка;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаПодвала") Тогда 
            ДобавляемыйЭлемент.ВысотаПодвала            = Элемент.ВысотаПодвала;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаШапки") Тогда 
            ДобавляемыйЭлемент.ВысотаШапки              = Элемент.ВысотаШапки;
        КонецЕсли;      
        Если Элемент.Свойство("ГоризонтальнаяПолосаПрокрутки") Тогда 
            ДобавляемыйЭлемент.ГоризонтальнаяПолосаПрокрутки= Элемент.ГоризонтальнаяПолосаПрокрутки;
        КонецЕсли;
        Если Элемент.Свойство("ГоризонтальныеЛинии") Тогда 
            ДобавляемыйЭлемент.ГоризонтальныеЛинии      = Элемент.ГоризонтальныеЛинии;
        КонецЕсли;
        Если Элемент.Свойство("Доступность") Тогда 
            ДобавляемыйЭлемент.Доступность              = Элемент.Доступность;
        КонецЕсли;
        Если Элемент.Свойство("ИзменятьПорядокСтрок") Тогда 
            ДобавляемыйЭлемент.ИзменятьПорядокСтрок     = Элемент.ИзменятьПорядокСтрок;
        КонецЕсли;
        Если Элемент.Свойство("КартинкаСтрок") Тогда 
            ДобавляемыйЭлемент.КартинкаСтрок            = Элемент.КартинкаСтрок;
        КонецЕсли;  
        Если Элемент.Свойство("КоманднаяПанель") Тогда 
            ДобавляемыйЭлемент.КоманднаяПанель          = Элемент.КоманднаяПанель;
        КонецЕсли;
        Если Элемент.Свойство("КонтекстноеМеню") Тогда 
            ДобавляемыйЭлемент.КонтекстноеМеню          = Элемент.КонтекстноеМеню;
        КонецЕсли;
        Если Элемент.Свойство("МножественныйВыбор") Тогда 
            ДобавляемыйЭлемент.МножественныйВыбор       = Элемент.МножественныйВыбор;
        КонецЕсли;
        Если Элемент.Свойство("НачальноеОтображениеДерева") Тогда 
            ДобавляемыйЭлемент.НачальноеОтображениеДерева       = Элемент.НачальноеОтображениеДерева;
        КонецЕсли;  
        Если Элемент.Свойство("НачальноеОтображениеСписка") Тогда 
            ДобавляемыйЭлемент.НачальноеОтображениеСписка       = Элемент.НачальноеОтображениеСписка;
        КонецЕсли;
        Если Элемент.Свойство("ОтметкаНезаполненного") Тогда 
            ДобавляемыйЭлемент.ОтметкаНезаполненного    = Элемент.ОтметкаНезаполненного;
        КонецЕсли;
        Если Элемент.Свойство("Отображение") Тогда 
            ДобавляемыйЭлемент.Отображение              = Элемент.Отображение;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПанелиПоиска") Тогда 
            ДобавляемыйЭлемент.ОтображениеПанелиПоиска  = Элемент.ОтображениеПанелиПоиска;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПодсказки") Тогда 
            ДобавляемыйЭлемент.ОтображениеПодсказки     = Элемент.ОтображениеПодсказки;
        КонецЕсли;
        Если Элемент.Свойство("Подвал") Тогда 
            ДобавляемыйЭлемент.Подвал                   = Элемент.Подвал;
        КонецЕсли;
        Если Элемент.Свойство("Подсказка") Тогда 
            ДобавляемыйЭлемент.Подсказка                = Элемент.Подсказка;
        КонецЕсли;
        Если Элемент.Свойство("ПодчиненныеЭлементы") Тогда 
            ДобавляемыйЭлемент.ПодчиненныеЭлементы      = Элемент.ПодчиненныеЭлементы;
        КонецЕсли;
        Если Элемент.Свойство("ПоискПриВводе") Тогда 
            ДобавляемыйЭлемент.ПоискПриВводе            = Элемент.ПоискПриВводе;
        КонецЕсли;
        Если Элемент.Свойство("ПоложениеКоманднойПанели") Тогда 
            ДобавляемыйЭлемент.ПоложениеКоманднойПанели = Элемент.ПоложениеКоманднойПанели;
        КонецЕсли;
        Если Элемент.Свойство("ПропускатьПриВводе") Тогда 
            ДобавляемыйЭлемент.ПропускатьПриВводе       = Элемент.ПропускатьПриВводе;
        КонецЕсли;
        Если Элемент.Свойство("ПутьКДанным") Тогда 
            ДобавляемыйЭлемент.ПутьКДанным              = Элемент.ПутьКДанным;
        КонецЕсли;
        Если Элемент.Свойство("ПутьКДаннымКартинкиСтроки") Тогда 
            ДобавляемыйЭлемент.ПутьКДаннымКартинкиСтроки= Элемент.ПутьКДаннымКартинкиСтроки;
        КонецЕсли;
        Если Элемент.Свойство("РазрешитьНачалоПеретаскивания") Тогда 
            ДобавляемыйЭлемент.РазрешитьНачалоПеретаскивания= Элемент.РазрешитьНачалоПеретаскивания;
        КонецЕсли;
        Если Элемент.Свойство("РазрешитьПеретаскивание") Тогда 
            ДобавляемыйЭлемент.РазрешитьПеретаскивание      = Элемент.РазрешитьПеретаскивание;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоВертикали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоВертикали       = Элемент.РастягиватьПоВертикали;
        КонецЕсли;
        Если Элемент.Свойство("РастягиватьПоГоризонтали") Тогда 
            ДобавляемыйЭлемент.РастягиватьПоГоризонтали     = Элемент.РастягиватьПоГоризонтали;
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.РасширеннаяПодсказка         = Элемент.РасширеннаяПодсказка;
        КонецЕсли;
        Если Элемент.Свойство("РежимВводаСтрок") Тогда 
            ДобавляемыйЭлемент.РежимВводаСтрок              = Элемент.РежимВводаСтрок;
        КонецЕсли;
        Если Элемент.Свойство("РежимВыбора") Тогда 
            ДобавляемыйЭлемент.РежимВыбора                  = Элемент.РежимВыбора;
        КонецЕсли;
        Если Элемент.Свойство("РежимВыделения") Тогда 
            ДобавляемыйЭлемент.РежимВыделения               = Элемент.РежимВыделения;
        КонецЕсли;
        Если Элемент.Свойство("РежимВыделенияСтроки") Тогда 
            ДобавляемыйЭлемент.РежимВыделенияСтроки         = Элемент.РежимВыделенияСтроки;
        КонецЕсли;
        Если Элемент.Свойство("СочетаниеКлавиш") Тогда 
            ДобавляемыйЭлемент.СочетаниеКлавиш              = Элемент.СочетаниеКлавиш;
        КонецЕсли;
        Если Элемент.Свойство("ТолькоПросмотр") Тогда 
            ДобавляемыйЭлемент.ТолькоПросмотр               = Элемент.ТолькоПросмотр;
        КонецЕсли;
        Если Элемент.Свойство("ЦветРамки") Тогда 
            ДобавляемыйЭлемент.ЦветРамки                    = Элемент.ЦветРамки;
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекста") Тогда 
            ДобавляемыйЭлемент.ЦветТекста                   = Элемент.ЦветТекста;
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекстаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ЦветТекстаЗаголовка          = Элемент.ЦветТекстаЗаголовка;
        КонецЕсли;
        Если Элемент.Свойство("ЦветФона") Тогда 
            ДобавляемыйЭлемент.ЦветФона                     = Элемент.ЦветФона;
        КонецЕсли;
        Если Элемент.Свойство("ЧередованиеЦветовСтрок") Тогда 
            ДобавляемыйЭлемент.ЧередованиеЦветовСтрок       = Элемент.ЧередованиеЦветовСтрок;
        КонецЕсли;
        Если Элемент.Свойство("Шапка") Тогда 
            ДобавляемыйЭлемент.Шапка                        = Элемент.Шапка;
        КонецЕсли;
        Если Элемент.Свойство("Ширина") Тогда 
            ДобавляемыйЭлемент.Ширина                       = Элемент.Ширина;
        КонецЕсли;
        Если Элемент.Свойство("Шрифт") Тогда 
            ДобавляемыйЭлемент.Шрифт                        = Элемент.Шрифт;
        КонецЕсли;
        Если Элемент.Свойство("ШрифтЗаголовка") Тогда 
            ДобавляемыйЭлемент.ШрифтЗаголовка               = Элемент.ШрифтЗаголовка;
        КонецЕсли;

    ИначеЕсли ТипЗнч(ДобавляемыйЭлемент) = Тип("ПолеФормы") Тогда

        Если Элемент.Свойство("АвтоВысотаЯчейки") Тогда 
            ДобавляемыйЭлемент.АвтоВысотаЯчейки         = Элемент.АвтоВысотаЯчейки;
        КонецЕсли;
        Если Элемент.Свойство("АктивизироватьПоУмолчанию") Тогда 
            ДобавляемыйЭлемент.АктивизироватьПоУмолчанию= Элемент.АктивизироватьПоУмолчанию;
        КонецЕсли;
        Если Элемент.Свойство("ВертикальноеПоложение") Тогда 
            ДобавляемыйЭлемент.ВертикальноеПоложение    = Элемент.ВертикальноеПоложение;
        КонецЕсли;
        Если Элемент.Свойство("Вид") Тогда 
            ДобавляемыйЭлемент.Вид                      = Элемент.Вид;
        КонецЕсли;
        Если Элемент.Свойство("Видимость") Тогда 
            ДобавляемыйЭлемент.Видимость                = Элемент.Видимость;
        КонецЕсли;
        Если Элемент.Свойство("ВысотаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ВысотаЗаголовка          = Элемент.ВысотаЗаголовка;
        КонецЕсли;
        Если Элемент.Свойство("ГиперссылкаЯчейки") Тогда 
            ДобавляемыйЭлемент.ГиперссылкаЯчейки        = Элемент.ГиперссылкаЯчейки;
        КонецЕсли;
        Если Элемент.Свойство("ГоризонтальноеПоложение") Тогда 
            ДобавляемыйЭлемент.ГоризонтальноеПоложение  = Элемент.ГоризонтальноеПоложение;
        КонецЕсли;
        Если Элемент.Свойство("ГоризонтальноеПоложениеВПодвале") Тогда 
            ДобавляемыйЭлемент.ГоризонтальноеПоложениеВПодвале  = Элемент.ГоризонтальноеПоложениеВПодвале;
        КонецЕсли;
        Если Элемент.Свойство("ГоризонтальноеПоложениеВШапке") Тогда 
            ДобавляемыйЭлемент.ГоризонтальноеПоложениеВШапке    = Элемент.ГоризонтальноеПоложениеВШапке;
        КонецЕсли;
        Если Элемент.Свойство("Доступность") Тогда 
            ДобавляемыйЭлемент.Доступность              = Элемент.Доступность;
        КонецЕсли;
        Если Элемент.Свойство("Заголовок") Тогда 
            ДобавляемыйЭлемент.Заголовок                = Элемент.Заголовок;
        КонецЕсли;  
        Если Элемент.Свойство("КартинкаПодвала") Тогда 
            ДобавляемыйЭлемент.КартинкаПодвала          = Элемент.КартинкаПодвала;
        КонецЕсли;
        Если Элемент.Свойство("КартинкаШапки") Тогда 
            ДобавляемыйЭлемент.КартинкаШапки            = Элемент.КартинкаШапки;
        КонецЕсли;      
        Если Элемент.Свойство("КонтекстноеМеню") Тогда 
            ДобавляемыйЭлемент.КонтекстноеМеню          = Элемент.КонтекстноеМеню;
        КонецЕсли;
        Если Элемент.Свойство("ОграничениеТипа") Тогда 
            ДобавляемыйЭлемент.ОграничениеТипа          = Элемент.ОграничениеТипа;
        КонецЕсли;      
        Если Элемент.Свойство("ОтображатьВПодвале") Тогда 
            ДобавляемыйЭлемент.ОтображатьВПодвале       = Элемент.ОтображатьВПодвале;
        КонецЕсли;
        Если Элемент.Свойство("ОтображатьВШапке") Тогда 
            ДобавляемыйЭлемент.ОтображатьВШапке         = Элемент.ОтображатьВШапке;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПодсказки") Тогда 
            ДобавляемыйЭлемент.ОтображениеПодсказки     = Элемент.ОтображениеПодсказки;
        КонецЕсли;
        Если Элемент.Свойство("ОтображениеПредупрежденияПриРедактировании") Тогда 
            ДобавляемыйЭлемент.ОтображениеПредупрежденияПриРедактировании   = Элемент.ОтображениеПредупрежденияПриРедактировании;
        КонецЕсли;      
        Если Элемент.Свойство("Подсказка") Тогда 
            ДобавляемыйЭлемент.Подсказка                = Элемент.Подсказка;    
        КонецЕсли;
        Если Элемент.Свойство("ПоложениеЗаголовка") Тогда 
            ДобавляемыйЭлемент.ПоложениеЗаголовка       = Элемент.ПоложениеЗаголовка;   
        КонецЕсли;      
        Если Элемент.Свойство("ПредупреждениеПриРедактировании") Тогда 
            ДобавляемыйЭлемент.ПредупреждениеПриРедактировании      = Элемент.ПредупреждениеПриРедактировании;  
        КонецЕсли;
        Если Элемент.Свойство("ПропускатьПриВводе") Тогда 
            ДобавляемыйЭлемент.ПропускатьПриВводе       = Элемент.ПропускатьПриВводе;   
        КонецЕсли;
        Если Элемент.Свойство("ПутьКДанным") Тогда 
            ДобавляемыйЭлемент.ПутьКДанным              = Элемент.ПутьКДанным;  
        КонецЕсли;      
        Если Элемент.Свойство("ПутьКДаннымПодвала") Тогда 
            ДобавляемыйЭлемент.ПутьКДаннымПодвала       = Элемент.ПутьКДаннымПодвала;   
        КонецЕсли;
        Если Элемент.Свойство("РасширеннаяПодсказка") Тогда 
            ДобавляемыйЭлемент.РасширеннаяПодсказка     = Элемент.РасширеннаяПодсказка; 
        КонецЕсли;
        Если Элемент.Свойство("РежимРедактирования") Тогда 
            ДобавляемыйЭлемент.РежимРедактирования      = Элемент.РежимРедактирования;  
        КонецЕсли;
        Если Элемент.Свойство("СочетаниеКлавиш") Тогда 
            ДобавляемыйЭлемент.СочетаниеКлавиш          = Элемент.СочетаниеКлавиш;  
        КонецЕсли;
        Если Элемент.Свойство("ТекстПодвала") Тогда 
            ДобавляемыйЭлемент.ТекстПодвала             = Элемент.ТекстПодвала; 
        КонецЕсли;
        Если Элемент.Свойство("ТолькоПросмотр") Тогда 
            ДобавляемыйЭлемент.ТолькоПросмотр           = Элемент.ТолькоПросмотр;   
        КонецЕсли;
        Если Элемент.Свойство("ФиксацияВТаблице") Тогда 
            ДобавляемыйЭлемент.ФиксацияВТаблице         = Элемент.ФиксацияВТаблице; 
        КонецЕсли;
        Если Элемент.Свойство("Формат") Тогда 
            ДобавляемыйЭлемент.Формат                   = Элемент.Формат;   
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекстаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ЦветТекстаЗаголовка      = Элемент.ЦветТекстаЗаголовка;  
        КонецЕсли;
        Если Элемент.Свойство("ЦветТекстаПодвала") Тогда 
            ДобавляемыйЭлемент.ЦветТекстаПодвала        = Элемент.ЦветТекстаПодвала;    
        КонецЕсли;
        Если Элемент.Свойство("ЦветФонаЗаголовка") Тогда 
            ДобавляемыйЭлемент.ЦветФонаЗаголовка        = Элемент.ЦветФонаЗаголовка;    
        КонецЕсли;
        Если Элемент.Свойство("ЦветФонаПодвала") Тогда 
            ДобавляемыйЭлемент.ЦветФонаПодвала          = Элемент.ЦветФонаПодвала;  
        КонецЕсли;
        Если Элемент.Свойство("ШрифтЗаголовка") Тогда 
            ДобавляемыйЭлемент.ШрифтЗаголовка           = Элемент.ШрифтЗаголовка;   
        КонецЕсли;
        Если Элемент.Свойство("ШрифтПодвала") Тогда 
            ДобавляемыйЭлемент.ШрифтПодвала             = Элемент.ШрифтПодвала; 
        КонецЕсли;  
    КонецЕсли;

    Если Элемент.Свойство("Обработчики") Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Элемент.Обработчики, Отказ)
    КонецЕсли;

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

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

    Если Родитель = Неопределено Тогда
        Родитель = Форма;
    КонецЕсли;

    Если Вид = Неопределено Тогда
        Вид = ВидПоляФормы.ПолеВвода;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Имя, Тип("ПолеФормы"), Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Имя, Тип("ПолеФормы"), Родитель, МестоРасположения);
    КонецЕсли;
    ДобавляемыйЭлемент.Вид          = Вид;
    ДобавляемыйЭлемент.ПутьКДанным  = ПутьКДанным;

    Если ПараметрыОбъекта <> Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ДобавляемыйЭлемент, ПараметрыОбъекта); 
    КонецЕсли;

    Если Обработчики <> Неопределено Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Обработчики, Отказ)
    КонецЕсли;

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

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

    Если Родитель = Неопределено Тогда
        Родитель = Форма;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Имя, Тип("ТаблицаФормы"), Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Имя, Тип("ТаблицаФормы"), Родитель, МестоРасположения);
    КонецЕсли;

    Если ПараметрыОбъекта <> Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ДобавляемыйЭлемент, ПараметрыОбъекта); 
    КонецЕсли;

    Если Обработчики <> Неопределено Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Обработчики, Отказ)
    КонецЕсли;

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

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

    Если Родитель = Неопределено Тогда
        Родитель = Форма;
    КонецЕсли;

    Если Вид = Неопределено Тогда
        Вид = ВидКнопкиФормы.ОбычнаяКнопка;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Имя, Тип("КнопкаФормы"), Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Имя, Тип("КнопкаФормы"), Родитель, МестоРасположения);
    КонецЕсли;
    ДобавляемыйЭлемент.Вид  = Вид;

    Если ПараметрыОбъекта <> Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ДобавляемыйЭлемент, ПараметрыОбъекта); 
    КонецЕсли;

    Если Обработчики <> Неопределено Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Обработчики, Отказ)
    КонецЕсли;

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

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

    Если Родитель = Неопределено Тогда
        Родитель = Форма;
    КонецЕсли;

    Если Вид = Неопределено Тогда
        Вид = ВидГруппыФормы.ОбычнаяГруппа;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Имя, Тип("ГруппаФормы"), Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Имя, Тип("ГруппаФормы"), Родитель, МестоРасположения);
    КонецЕсли;
    ДобавляемыйЭлемент.Вид  = Вид;

    Если ПараметрыОбъекта <> Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ДобавляемыйЭлемент, ПараметрыОбъекта); 
    КонецЕсли;

    Если Обработчики <> Неопределено Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Обработчики, Отказ)
    КонецЕсли;

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

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

    Если Родитель = Неопределено Тогда
        Родитель = Форма;
    КонецЕсли;

    Если Вид = Неопределено Тогда
        Вид = ВидДекорацииФормы.Надпись;
    КонецЕсли;

    // Добавляем новую группу на форму
    Если МестоРасположения = Неопределено Тогда
        ДобавляемыйЭлемент = Форма.Элементы.Добавить(Имя, Тип("ДекорацияФормы"), Родитель);
    Иначе
        ДобавляемыйЭлемент = Форма.Элементы.Вставить(Имя, Тип("ДекорацияФормы"), Родитель, МестоРасположения);
    КонецЕсли;
    ДобавляемыйЭлемент.Вид  = Вид;

    Если ПараметрыОбъекта <> Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ДобавляемыйЭлемент, ПараметрыОбъекта); 
    КонецЕсли;

    Если Обработчики <> Неопределено Тогда
        УстановитьДействие(Форма, ДобавляемыйЭлемент, Обработчики, Отказ)
    КонецЕсли;

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

// Форма                - управляемая форма объекта,
// ЭлементФормы         - элемент формы, которому будут присваиваться обработчики событий.
// Обработчики          - Массив элементов структура. Используется для передачи информации об обработчиках событий элемента:
// а. ИмяСобытия        - Тип: Строка. Имя события, для которого устанавливается новое действие. ,
// б. Действие          - Тип: Строка. Указывается имя обработчика.
Процедура УстановитьДействие(Форма, ЭлементФормы, Обработчики, Отказ) Экспорт

    Для Каждого Обработчик Из Обработчики Цикл  
        ЭлементФормы.УстановитьДействие(Обработчик.ИмяСобытия, Обработчик.Действие);    
    КонецЦикла;

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

#КонецОбласти
viskvortsov commented 7 years ago
Процедура СоздатьКоманду_ОбновитьВес(Форма, Отказ)

    Команда             = Форма.Команды.Добавить("вк_ОбновитьВес");
    Команда.Действие    = "ОбновитьВесРеализации";
    Команда.Заголовок   = "Обновить вес";
    Команда.Картинка    = БиблиотекаКартинок.Обновить;

    ПараметрыОбъекта    = Новый Структура;
    ПараметрыОбъекта.Вставить("ИмяКоманды","вк_ОбновитьВес");
    ПараметрыОбъекта.Вставить("Отображение", ОтображениеКнопки.Картинка);

    вк_СтандартныеПодсистемыВызовСервера.СоздатьКнопкуФормы(Форма,"вк_ОбновитьВес",Отказ,ВидКнопкиФормы.ОбычнаяКнопка,,Форма.Элементы.ГруппаИтого,Форма.Элементы.вк_Вес,ПараметрыОбъекта);  

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