helpf.pro
Регистрация
 +7 
Распечатать

Форма ~ Программное добавление элементов на форму

ЭлементыФормы (Controls) . Добавить (Add) - Добавляет элемент управления на форму.
Синтаксис:
Код 1C v 8.х
 Добавить(<Тип>, <Имя>, <Видимость>, <ПоместитьНа>)    

Параметры:
<Тип> (обязательный)
Тип: Тип. Тип добавляемого элемента управления:
Индикатор; ПолеКалендаря; Кнопка; КоманднаяПанель; Надпись; Панель; Переключатель; ПолеТабличногоДокумента; ПолеHTMLДокумента; ПолеТекстовогоДокумента; ПолеВвода; ПолеВыбора; ПолеСписка; ПолеКартинки; ПолосаРегулирования; Разделитель; РамкаГруппы; ТабличноеПоле; Флажок; ПолеГрафическойСхемы; ПолеГеографическойСхемы.
<Имя> (обязательный)
Тип: Строка. Имя создаваемого элемента управления. Имя должно быть указано в соответсвии с правилами написания имен системы 1С:Предприятие 8. В противном случае выполнение метода вызовет исключение.
<Видимость> (необязательный)
Тип: Булево. Определяет, создавать новый элемент управления формы видимым или нет. Истина - элемент создается видимым.
Значение по умолчанию: Истина
<ПоместитьНа> (необязательный)
Тип: Панель; ПолеТабличногоДокумента. Определяет, какой панели формы или какому табличному документу принадлежит создаваемый элемент. Если указана панель, то добавляемый элемент размещается на текущей странице панели. Если не указан, создаваемый элемент будет принадлежать непосредственно форме.
Код 1C v 8.х
 
// Расположим на странице табличное поле
ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),
СтрокаТаблицы.Имя,
Истина,
ЭлементыФормы.ОсновнаяПанель);
ПолеРегистра.Данные = "ДокументОбъект.Движения." + СтрокаТаблицы.Имя;

Если НЕ ЭтоНовый() Тогда
ПолеРегистра.Значение.Прочитать();
КонецЕсли;

ПолеРегистра.Верх = 30;
ПолеРегистра.Лево = 6;
ПолеРегистра.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 14;
ПолеРегистра.Высота = ЭлементыФормы.ОсновнаяПанель.Высота - 56;
ПолеРегистра.ТолькоПросмотр = Ложь;
ПолеРегистра.ИзменятьПорядокСтрок = Истина;
ПолеРегистра.ИзменятьСоставСтрок = Истина;

ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Верх,
КоманднаяПанельРегистра,
ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,
ЭлементыФормы.ОсновнаяПанель,
ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,
ЭлементыФормы.ОсновнаяПанель,
ГраницаЭлементаУправления.Право);

ПолеРегистра.СоздатьКолонки();

Если Метаданные.РегистрыНакопления[СтрокаТаблицы.Имя].ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда

КолонкаВидДвижения = ПолеРегистра.Колонки.Вставить(1, "Вид движения");
КолонкаВидДвижения.Имя = "ВидДвиженияРегистраНакопления";
КолонкаВидДвижения.УстановитьЭлементУправления(Тип("ПолеВвода"));
КолонкаВидДвижения.Данные = "ВидДвижения";
КолонкаВидДвижения.ЭлементУправления.КнопкаВыбора = Истина;
КолонкаВидДвижения.ЭлементУправления.ВыбиратьТип = Ложь;

КонецЕсли;

ПолеРегистра.Колонки.Регистратор.Видимость = Ложь;
ПолеРегистра.Колонки.Период.Видимость = Ложь;
ПолеРегистра.Колонки.НомерСтроки.Видимость = Ложь;

// Поле ввода
ПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), "ПолеВвода", Истина);

ПолеВвода.Верх = Надпись.Верх + Надпись.Высота + 5;
ПолеВвода.Лево = ЭлементыФормы.Переключатель1.Лево;
ПолеВвода.Ширина = ЭлементыФормы.Переключатель1.Ширина;
ПолеВвода.Высота = ЭлементыФормы.Переключатель1.Высота;

ПолеВвода.Доступность = Ложь;

// установка привязок
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ПолеВвода, ГраницаЭлементаУправления.Верх);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Лево, ЭтаФорма.Панель, ГраницаЭлементаУправления.Лево);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭтаФорма.Панель, ГраницаЭлементаУправления.Право);

//Надпись и поле ввода
ЭлементНадпись = ЭлементыФормы.Добавить(Тип("Надпись"), "Надпись"+ИмяЭлемента, Истина, ЭлементыФормы.ПанельПодбор);
ЭлементНадпись.Заголовок = Синоним + ":";
ЭлементНадпись.Лево = 6;
ЭлементНадпись.Верх = ВерхЭлемента + 6;
ЭлементНадпись.Высота = 19;
ЭлементНадпись.Ширина = 160;
ЭлементНадпись.ЦветФона = ЦветаСтиля.ФонЭпицентра;

ЭлементПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), ИмяЭлемента, Истина, ЭлементыФормы.ПанельПодбор);
ЭлементПолеВвода.ТипЗначения = Параметр.Тип;
ЭлементПолеВвода.Верх = ЭлементНадпись.Верх;
ЭлементПолеВвода.Лево = ЭлементНадпись.Лево + ЭлементНадпись.Ширина + 6;
ЭлементПолеВвода.Высота = ЭлементНадпись.Высота;
Если ЭлементПолеВвода.ТипЗначения.СодержитТип(Тип("Дата")) Тогда
ЭлементПолеВвода.Ширина = 80;
Иначе
ЭлементПолеВвода.Ширина = 200;
КонецЕсли;



//Надпись и Поле Выбора
ИмяЭлемента = " Подписывающий";
ЭлементНадпись = ЭлементыФормы.Добавить(Тип("Надпись"), "Надпись"+ИмяЭлемента, Истина,);
ЭлементНадпись.Заголовок = ИмяЭлемента + ":";
ЭлементНадпись.Лево = 250;
ЭлементНадпись.Верх = 33;
ЭлементНадпись.Высота = 19;
ЭлементНадпись.Ширина = 160;
ЭлементНадпись.ЦветФона = ЦветаСтиля.ЦветФонаФормы;

ЭлементПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВыбора""), ИмяЭлемента, Истина,);
ЭлементПолеВвода.Данные = Подписывающий;
//ЭлементПолеВвода.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций");
ЭлементПолеВвода.Верх = ЭлементНадпись.Верх;
ЭлементПолеВвода.Лево = ЭлементНадпись.Лево + ЭлементНадпись.Ширина + 6;
ЭлементПолеВвода.Высота = ЭлементНадпись.Высота;
ЭлементПолеВвода.Ширина = 200;
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 72729
 +7 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-подключение к базе 7.7 из .NET, .NET Core 1
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: ---C# static void Main(string args) { // создаем строку соединен
Посмотреть все результаты поиска похожих
Комментарии
all4cf
09.08.2016 01:14Комментарий: 3
all4cf

Вот рабочий пример из конфигурации клиента:

Код 1C v 8.х
 ////--> Начало добавления | All4CF.ru | 26.05.2015 00:54
Если ЭтоНовый() Тогда дс=Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); КонецЕсли;
//Надпись и поле ввода
ЭлементНадпись = ЭлементыФормы.Добавить(Тип("Надпись"), "НадписьДСПроект", Истина,);
ЭлементНадпись.Заголовок =  "ДС Проекты:";
ЭлементНадпись.Лево = 15; ЭлементНадпись.Верх = 450;
ЭлементНадпись.Высота = 19;
ЭлементНадпись.Ширина = 80;
ЭлементНадпись.ЦветФона = ЦветаСтиля.ЦветФонаКнопки;
ЭлементНадпись.ЦветТекста = ЦветаСтиля.ЦветРамки;


ЭлементКнопка = ЭлементыФормы.Добавить(Тип("Кнопка"), "ДСАвтоПодбор", Истина);
ЭлементКнопка.Заголовок = "Подбор ДС";
ЭлементКнопка.Верх = ЭлементНадпись.Верх;
ЭлементКнопка.Лево = 100;
ЭлементКнопка.Высота = ЭлементНадпись.Высота;
ЭлементКнопка.Ширина = 35;
ЭлементКнопка.УстановитьДействие("Нажатие", Новый Действие("ДСОткрытие"));


ЭлементПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"),  "ДСПроект", Истина, );
ЭлементПолеВвода.Данные = "ДС";
//Когда указываются данные, тип значения не нужно задавать
//ЭлементПолеВвода.ТипЗначения  = Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов");
ЭлементПолеВвода.Верх = ЭлементНадпись.Верх;
ЭлементПолеВвода.Лево = ЭлементНадпись.Лево + ЭлементНадпись.Ширина + 76;
ЭлементПолеВвода.Высота = ЭлементНадпись.Высота;
ЭлементПолеВвода.Ширина = 270;
//ЭлементПолеВвода.КнопкаОткрытия = Истина;


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

//Доп настройки
ЭлементПолеВвода.КнопкаОчистки = Ложь;
//ЭлементПолеВвода.ВыборПоВладельцу = Справочники.Контрагенты.НайтиПоКоду("000000249"); //Бургер

//Добавим обработчик
ЭлементПолеВвода.УстановитьДействие("ОкончаниеВводаТекста", Новый Действие("ДСОкончаниеВводаТекста")); 

// установка привязок
ЭлементКнопка.УстановитьПривязку(ГраницаЭлементаУправления.Верх,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементКнопка.УстановитьПривязку(ГраницаЭлементаУправления.Низ,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементКнопка.УстановитьПривязку(ГраницаЭлементаУправления.Лево,     ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);
ЭлементКнопка.УстановитьПривязку(ГраницаЭлементаУправления.Право,    ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);

ЭлементНадпись.УстановитьПривязку(ГраницаЭлементаУправления.Верх,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементНадпись.УстановитьПривязку(ГраницаЭлементаУправления.Низ,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементНадпись.УстановитьПривязку(ГраницаЭлементаУправления.Лево,     ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);
ЭлементНадпись.УстановитьПривязку(ГраницаЭлементаУправления.Право,    ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);

ЭлементПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Верх,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Лево,     ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);
ЭлементПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Право,    ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);

ЭлементПолеВводад.УстановитьПривязку(ГраницаЭлементаУправления.Верх,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
ЭлементПолеВводад.УстановитьПривязку(ГраницаЭлементаУправления.Низ,  ЭтаФорма.Панель,  ГраницаЭлементаУправления.Низ);
//ЭлементПолеВводад.УстановитьПривязку(ГраницаЭлементаУправления.Лево,     ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);
//ЭлементПолеВводад.УстановитьПривязку(ГраницаЭлементаУправления.Право,    ЭтаФорма.Панель,  ГраницаЭлементаУправления.Лево);
//--> Конец добавления | All4CF.ru | 26.05.2015 00:54  
E_Migachev
09.11.2012 12:52Комментарий: 2
E_Migachev
DJ_Serega, а это только в разделе 8.х
DJ_Serega
09.11.2012 11:54Комментарий: 1
DJ_Serega
Это же не УП!
Надо как-то посортировать чтоли ;)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.