From d85a2394b3f9c26b5ec1173398b061edc8796612 Mon Sep 17 00:00:00 2001 From: Ilya Kochetkov Date: Sun, 28 Apr 2024 12:45:45 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=A1=D1=82=D0=B8=D0=BB=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Интерфейс и функционал - не изменены. --- ModuleDFI.bsl | 2586 ++++++++++++++++++++++++++++--------------------- 1 file changed, 1488 insertions(+), 1098 deletions(-) diff --git a/ModuleDFI.bsl b/ModuleDFI.bsl index c3a5933..46ebc82 100644 --- a/ModuleDFI.bsl +++ b/ModuleDFI.bsl @@ -1,137 +1,189 @@ ////////////////////////////////////////////////////////////////////////////////// // -// Модуль Динамического Формирования Интерфейса -// Начало разработки 26.03.2020 года -// -// Автор и разработчик: Котов Дмитрий Вадимович -// При поддержеке участников сообщества GitHub & Infostart -// https://github.com/KotovDima1C/DFI -// Инфостарт https://infostart.ru/profile/564942/ -// telegram: @KotovDima -// +// Модуль Динамического Формирования Интерфейса +// Начало разработки 26.03.2020 года +// +// Автор и разработчик: Котов Дмитрий Вадимович +// При поддержеке участников сообщества GitHub & Infostart +// https://github.com/KotovDima1C/DFI +// Инфостарт https://infostart.ru/profile/564942/ +// telegram: @KotovDima +// ////////////////////////////////////////////////////////////////////////////////// +#Область ПрограммныйИнтерфейс + #Область ОписаниеТипов ////////////////////////////////////////////////////////////////////////////////// -//Создание описание типов +// Создание описание типов // Создание описания типа Строка // // Параметры: -// ДлинаСтроки - Число - длина строки +// ДлинаСтроки - Число - длина строки +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Строка // Функция ОписаниеТипаСтрока(ДлинаСтроки = 0) Экспорт - Возврат Новый ОписаниеТипов("Строка",,кСтрока(ДлинаСтроки)); + + Возврат Новый ОписаниеТипов("Строка", , кСтрока(ДлинаСтроки)); + КонецФункции // Создание описания типа Число // // Параметры: -// ДлинаЧисла - Число - общая длина числа -// ТочностьЧисла - Число - количество символов после запятой +// ДлинаЧисла - Число - общая длина числа +// ТочностьЧисла - Число - количество символов после запятой +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Число // -Функция ОписаниеТипаЧисло(ДлинаЧисла = 15,ТочностьЧисла = 2) Экспорт - Возврат Новый ОписаниеТипов("Число",кЧисло(ДлинаЧисла,ТочностьЧисла)); +Функция ОписаниеТипаЧисло(ДлинаЧисла = 15, ТочностьЧисла = 2) Экспорт + + Возврат Новый ОписаниеТипов("Число", кЧисло(ДлинаЧисла, ТочностьЧисла)); + КонецФункции // Создание описания типа ДатаВремя // // Параметры: -// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время" +// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время" +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Дата // Функция ОписаниеТипаДатаВремя(ДатаВремя = "ДатаВремя") Экспорт - Возврат Новый ОписаниеТипов("Дата",,,кДатаВремя(ДатаВремя)); + + Возврат Новый ОписаниеТипов("Дата", , , кДатаВремя(ДатаВремя)); + КонецФункции // Создание типа "Таблица значений" +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа ТаблицаЗначений +// Функция ОписаниеТипаТаблицаЗначений() Экспорт МассивТипаВыбора = Новый Массив; МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений")); - Возврат Новый ОписаниеТипов(МассивТипаВыбора); + Возврат Новый ОписаниеТипов(МассивТипаВыбора); КонецФункции // Создание типа "Динамический список" +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа ДинамическийСписок +// Функция ОписаниеТипаДинамическийСписок() Экспорт МассивТипаВыбора = Новый Массив; МассивТипаВыбора.Добавить(Тип("ДинамическийСписок")); - Возврат Новый ОписаниеТипов(МассивТипаВыбора); + Возврат Новый ОписаниеТипов(МассивТипаВыбора); КонецФункции // Создание типа "Булево" +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа Булево +// Функция ОписаниеТипаБулево() Экспорт - Возврат Новый ОписаниеТипов("Булево"); + Возврат Новый ОписаниеТипов("Булево"); КонецФункции // Создание описания ссылочного типа справочника // // Параметры: -// ИмяДокумента - Строка - Имя документа в дереве метаданных +// ИмяДокумента - Строка - Имя документа в дереве метаданных +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа ДокументСсылкаИмяДокумента // Функция ОписаниеТипаДокумент(ИмяДокумента) Экспорт - Возврат Новый ОписаниеТипов("ДокументСсылка." + ИмяДокумента); + Возврат Новый ОписаниеТипов("ДокументСсылка." + ИмяДокумента); КонецФункции // Создание описания ссылочного типа справочника // // Параметры: -// ИмяСправочника - Строка - Имя справочника в дереве метаданных +// ИмяСправочника - Строка - Имя справочника в дереве метаданных +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа СправочникСсылкаИмяСправочника // Функция ОписаниеТипаСправочник(ИмяСправочника) Экспорт - Возврат Новый ОписаниеТипов("СправочникСсылка." + ИмяСправочника); + Возврат Новый ОписаниеТипов("СправочникСсылка." + ИмяСправочника); КонецФункции // Создание описания типа перечисление // // Параметры: -// ИмяПеречисления - Строка - Имя перечисления в дереве метаданных +// ИмяПеречисления - Строка - Имя перечисления в дереве метаданных +// +// Возвращаемое значение: +// ОписаниеТипов - описание типа ПеречислениеСсылкаИмяПеречисления // Функция ОписаниеТипаПеречисление(ИмяПеречисления) Экспорт - Возврат Новый ОписаниеТипов("ПеречислениеСсылка." + ИмяПеречисления); + Возврат Новый ОписаниеТипов("ПеречислениеСсылка." + ИмяПеречисления); КонецФункции - /////////////////////////////////////////////////////////////////////////////////// -//Создание квалификаторов +// Создание квалификаторов // Создание квалификатора для типа Строка // // Параметры: -// ДлинаСтроки - Число - длина строки +// ДлинаСтроки - Число - длина строки +// +// Возвращаемое значение: +// КвалификаторыСтроки - описание строки // Функция кСтрока(ДлинаСтроки = 0) Экспорт + Возврат Новый КвалификаторыСтроки(ДлинаСтроки); + КонецФункции // Создание квалификатора для типа Число // // Параметры: -// ДлинаЧисла - Число - общая длина числа -// ТочностьЧисла - Число - количество символов после запятой +// ДлинаЧисла - Число - общая длина числа +// ТочностьЧисла - Число - количество символов после запятой +// +// Возвращаемое значение: +// КвалификаторыЧисла - описание числа // -Функция кЧисло(ДлинаЧисла = 15,ТочностьЧисла = 2) Экспорт - Возврат Новый КвалификаторыЧисла(ДлинаЧисла,ТочностьЧисла); +Функция кЧисло(ДлинаЧисла = 15, ТочностьЧисла = 2) Экспорт + + Возврат Новый КвалификаторыЧисла(ДлинаЧисла, ТочностьЧисла); + КонецФункции // Создание квалификатора для типа ДатаВремя // // Параметры: -// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время" +// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время" +// +// Возвращаемое значение: +// КвалификаторыДаты - описание даты // Функция кДатаВремя(ДатаВремя = "ДатаВремя") Экспорт + Возврат Новый КвалификаторыДаты(ЧастиДаты[ДатаВремя]); + КонецФункции #КонецОбласти @@ -141,641 +193,490 @@ // Создание одного реквизита // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяРеквизита - Строка - Имя реквизита -// ОписаниеТипа - ОписаниеТипа - Описание типа реквизита +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяРеквизита - Строка - Имя реквизита +// ОписаниеТипа - ОписаниеТипов - Описание типа реквизита // -Процедура СоздатьРеквизит(Форма,ИмяРеквизита,ОписаниеТипа) Экспорт +Процедура СоздатьРеквизит(Форма, ИмяРеквизита, ОписаниеТипа) Экспорт - структураРеквизитов = Новый Структура; - структураРеквизитов.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяРеквизита),ОписаниеТипа); - СоздатьРеквизиты(Форма,структураРеквизитов); + РеквизитыИТипы = Новый Структура; + РеквизитыИТипы.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяРеквизита), ОписаниеТипа); + СоздатьРеквизиты(Форма, РеквизитыИТипы); КонецПроцедуры // Создание реквизитов // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// структураРеквизитов - Структура - Где ключ это Имя реквизита, а значение это описание типа реквизита +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// РеквизитыИТипы - Структура - описание реквизитов ключ Имя реквизита, значение это описание типа реквизита // -Процедура СоздатьРеквизиты(Форма,структураРеквизитов) Экспорт +Процедура СоздатьРеквизиты(Форма, РеквизитыИТипы) Экспорт ДобавляемыеРеквизиты = Новый Массив; - Для Каждого тРеквизит Из структураРеквизитов Цикл - НовыйРеквизит = Новый РеквизитФормы(тРеквизит.Ключ,тРеквизит.Значение); - ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); + Для Каждого тРеквизит Из РеквизитыИТипы Цикл + НовыйРеквизит = Новый РеквизитФормы(тРеквизит.Ключ, тРеквизит.Значение); + ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); КонецЦикла; - Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); + Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); КонецПроцедуры // Создание реквизитов для таблицы // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяТаблицы - Строка - Имя таблицы куда добавляете реквизиты -// структураРеквизитов - Структура - Где ключ это Имя реквизита, а значение это описание типа реквизита +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяТаблицы - Строка - Имя таблицы куда добавляете реквизиты +// РеквизитыИТипы - Структура - Где ключ это Имя реквизита, а значение это описание типа реквизита // -Процедура СоздатьРеквизитыТаблицы(Форма,ИмяТаблицы,структураРеквизитов) Экспорт +Процедура СоздатьРеквизитыТаблицы(Форма, ИмяТаблицы, РеквизитыИТипы) Экспорт ДобавляемыеРеквизиты = Новый Массив; - Для Каждого тРеквизит Из структураРеквизитов Цикл - НовыйРеквизит = Новый РеквизитФормы(тРеквизит.Ключ,тРеквизит.Значение,ИмяТаблицы); - ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); + Для Каждого тРеквизит Из РеквизитыИТипы Цикл + НовыйРеквизит = Новый РеквизитФормы(тРеквизит.Ключ, тРеквизит.Значение, ИмяТаблицы); + ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); КонецЦикла; - Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); + Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); КонецПроцедуры // Создание команды // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяКоманды - Строка - Имя команды -// Заголовок - Строка - Заголовок команды -// ИмяДействия - Строка - Имя процедуры действия команды -// Пример процедуры в модуле формы "Процедура <ИмяДействия>(Команда)" -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// -Процедура СоздатьКоманду(Форма, - ИмяКоманды, - Заголовок, - ИмяДействия, - СтруктураСвойств = Неопределено) Экспорт - - НоваяКоманда = Форма.Команды.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяКоманды)); - НоваяКоманда.Заголовок = Заголовок; +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяКоманды - Строка - Имя команды +// Заголовок - Строка - Заголовок команды +// ИмяДействия - Строка - Имя процедуры действия команды +// Пример процедуры в модуле формы "Процедура <ИмяДействия>(Команда)" +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// +Процедура СоздатьКоманду(Форма, ИмяКоманды, Заголовок, ИмяДействия, + СвойстваЭлемента = Неопределено) Экспорт + + НоваяКоманда = Форма.Команды.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяКоманды)); + НоваяКоманда.Заголовок = Заголовок; НоваяКоманда.Действие = ОчиститьОтЗапрещенныхСимволов(ИмяДействия); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - УстановитьСвойстваЭлементу(НоваяКоманда,СтруктураСвойств); - -КонецПроцедуры - -#КонецОбласти - -#Область ВспомогательныеФункции - -Процедура ЕслиСтруктураНеопределеноТоНовая(текущаяСруктура) - Если текущаяСруктура = Неопределено Тогда - текущаяСруктура = Новый Структура; - КонецЕсли; -КонецПроцедуры - -Процедура ОпределитьЭлементФормы(Форма,Элемент) - Если Элемент = Неопределено Тогда Возврат КонецЕсли; - Если ТипЗнч(Элемент) = Тип("Строка") Тогда - // может прийти "ИмяТаблицы.КоманднаяПанель" - Иерархия = СтрРазделить(Элемент, "."); - Элемент = Форма.Элементы; - Для Каждого Шаг Из Иерархия Цикл - Элемент = Элемент[Шаг]; - КонецЦикла; - КонецЕсли; -КонецПроцедуры - -Процедура ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(Элемент,Состояние) - Если Состояние = 1 Тогда - Элемент.РастягиватьПоГоризонтали = ИСТИНА; - ИначеЕсли Состояние = 2 Тогда - Элемент.РастягиватьПоГоризонтали = ЛОЖЬ; - КонецЕсли; -КонецПроцедуры - -Процедура ПолучитьСостояниеРастягиванияЭлементаПоВертикали(Элемент,Состояние) - Если Состояние = 1 Тогда - Элемент.РастягиватьПоВертикали = ИСТИНА; - ИначеЕсли Состояние = 2 Тогда - Элемент.РастягиватьПоВертикали = ЛОЖЬ; - КонецЕсли; -КонецПроцедуры - -Процедура ПолучитьСостояниеГруппировкиЭлемента(Элемент,Состояние) - Если Состояние = 1 Тогда - Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; - ИначеЕсли Состояние = 2 Тогда - Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; - ИначеЕсли Состояние = 3 Тогда - Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; - КонецЕсли; -КонецПроцедуры - -Процедура ПолучитьСостояниеГруппировкиКолонкиЭлемента(Элемент,Состояние) - Если Состояние = 1 Тогда - Элемент.Группировка = ГруппировкаКолонок.Горизонтальная; - ИначеЕсли Состояние = 2 Тогда - Элемент.Группировка = ГруппировкаКолонок.Вертикальная; - ИначеЕсли Состояние = 3 Тогда - Элемент.Группировка = ГруппировкаКолонок.ВЯчейке; - КонецЕсли; -КонецПроцедуры - -Процедура УстановитьМножествоСтруктурСвойствЭлементу(Элемент, - СтруктураСвойств1, - СтруктураСвойств2 = Неопределено, - СтруктураСвойств3 = Неопределено, - СтруктураСвойств4 = Неопределено, - СтруктураСвойств5 = Неопределено, - СтруктураСвойств6 = Неопределено, - СтруктураСвойств7 = Неопределено, - СтруктураСвойств8 = Неопределено, - СтруктураСвойств9 = Неопределено, - СтруктураСвойств10 = Неопределено) Экспорт - - УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств1); - Если СтруктураСвойств2 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств2) КонецЕсли; - Если СтруктураСвойств3 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств3) КонецЕсли; - Если СтруктураСвойств4 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств4) КонецЕсли; - Если СтруктураСвойств5 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств5) КонецЕсли; - Если СтруктураСвойств6 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств6) КонецЕсли; - Если СтруктураСвойств7 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств7) КонецЕсли; - Если СтруктураСвойств8 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств8) КонецЕсли; - Если СтруктураСвойств9 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств9) КонецЕсли; - Если СтруктураСвойств10 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств10) КонецЕсли; - -КонецПроцедуры - -Процедура УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств) Экспорт - Для Каждого тСвойство Из СтруктураСвойств Цикл - Элемент[тСвойство.Ключ] = тСвойство.Значение; - КонецЦикла; -КонецПроцедуры - -Процедура УстановитьСобытияЭлементу(Элемент,СтруктураСобытий) Экспорт - Для Каждого тСвойство Из СтруктураСобытий Цикл - Элемент.УстановитьДействие(тСвойство.Ключ,тСвойство.Значение); - КонецЦикла; -КонецПроцедуры - -Процедура УстановитьПараметрыЗапросу(РеквизитДинамическийСписок,ПараметрыЗапроса) Экспорт - Для Каждого Параметра из ПараметрыЗапроса Цикл - РеквизитДинамическийСписок.Параметры.УстановитьЗначениеПараметра(Параметра.Ключ,Параметра.Значение); - КонецЦикла; -КонецПроцедуры - -Функция СоздатьЭлементФормы(Форма,ИмяЭлемента,ТипЭлемента,РодительЭлемента,ЭлементПеред = Неопределено) - Если ЭлементПеред = Неопределено Тогда - НовыйЭлемент = Форма.Элементы.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента),ТипЭлемента,РодительЭлемента); - Иначе - НовыйЭлемент = Форма.Элементы.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента),ТипЭлемента,РодительЭлемента,ЭлементПеред); - КонецЕсли; - Возврат НовыйЭлемент; -КонецФункции - -Процедура СоздатьКолонкиДляТаблицыФормы(Форма,ТаблицаФормы,СтруктураКолонок,ЭтоДС = ЛОЖЬ) + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + УстановитьСвойстваЭлементу(НоваяКоманда, СвойстваЭлемента); - ИмяСписка = ТаблицаФормы.Имя; - Для Каждого тКолонка Из СтруктураКолонок Цикл - ИмяКолонки = тКолонка.Ключ; - НоваяКолонкаТаблицы = СоздатьЭлементФормы(Форма,ИмяСписка + ИмяКолонки,Тип("ПолеФормы"),ТаблицаФормы); - НоваяКолонкаТаблицы.Вид = ?(ЭтоДС,ВидПоляФормы.ПолеНадписи,ВидПоляФормы.ПолеВвода); - Если тКолонка.Значение <> "" Тогда НоваяКолонкаТаблицы.Заголовок = тКолонка.Значение КонецЕсли; - // ++bugfix https://github.com/JusteRU - НоваяКолонкаТаблицы.ПутьКДанным = ТаблицаФормы.ПутьКДанным + "." + ИмяКолонки; - // --bugfix - КонецЦикла; - КонецПроцедуры -Функция ПолучитьГоризонтальноеПоложение(ШифрПоложения) - Если ШифрПоложения = 1 Тогда - нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево; - ИначеЕсли ШифрПоложения = 2 Тогда - нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр; - ИначеЕсли ШифрПоложения = 3 Тогда - нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право; - Иначе - нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Авто; - КонецЕсли; - Возврат нГоризонтальноеПоложение; -КонецФункции - #КонецОбласти -#Область СозданиеЭлементов +#Область СозданиеЭлементов -// Создать обычную группу без отображения +// Создает обычную группу без отображения. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительГруппы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: -// 1 - Вертикальная -// 2 - ГоризонтальнаяЕслиВозможно -// 3 - ГоризонтальнаяВсегда -// 0 - Авто -// РастягиватьГоризонтально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// РастягиватьВертикально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппаОбычнаяБезОтображения(Форма, - ИмяГруппы, - РодительГруппы, - ГруппировкаОбычнойГруппы = 0, - РастягиватьГоризонтально = 0, - РастягиватьВертикально = 0, - СтруктураСвойств = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяГруппы - Строка - Имя элемента на форме +// РодительГруппы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: +// 1 - Вертикальная +// 2 - ГоризонтальнаяЕслиВозможно +// 3 - ГоризонтальнаяВсегда +// 0 - Авто +// РастягиватьГоризонтально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// РастягиватьВертикально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - группа обычная без отображения +// +Функция СздГруппаОбычнаяБезОтображения(Форма, ИмяГруппы, РодительГруппы, + ГруппировкаОбычнойГруппы = 0, РастягиватьГоризонтально = 0, РастягиватьВертикально = 0, + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительГруппы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительГруппы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяГруппы,Тип("ГруппаФормы"),РодительГруппы,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред); НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа; НовыйЭлемент.Отображение = ОтображениеОбычнойГруппы.Нет; - НовыйЭлемент.ОтображатьЗаголовок = ЛОЖЬ; + НовыйЭлемент.ОтображатьЗаголовок = Ложь; - ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент,ГруппировкаОбычнойГруппы); - ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент,РастягиватьГоризонтально); - ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент,РастягиватьВертикально); + УстановитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы); + УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально); + УстановитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создать обычную группу +// Создает обычную группу со слабым выделением // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительГруппы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - Заголовок группы -// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: -// 1 - Вертикальная -// 2 - ГоризонтальнаяЕслиВозможно -// 3 - ГоризонтальнаяВсегда -// 0 - Авто -// РастягиватьГоризонтально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// РастягиватьВертикально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппаОбычная(Форма, - ИмяГруппы, - РодительГруппы, - Заголовок = "", - ГруппировкаОбычнойГруппы = 0, - РастягиватьГоризонтально = 0, - РастягиватьВертикально = 0, - СтруктураСвойств = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяГруппы - Строка - Имя элемента на форме +// РодительГруппы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - Заголовок группы +// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: +// 1 - Вертикальная +// 2 - ГоризонтальнаяЕслиВозможно +// 3 - ГоризонтальнаяВсегда +// 0 - Авто +// РастягиватьГоризонтально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// РастягиватьВертикально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - обычная группа слабого выделения +// +Функция СздГруппаОбычная(Форма, ИмяГруппы, РодительГруппы, + Заголовок = "", ГруппировкаОбычнойГруппы = 0, + РастягиватьГоризонтально = 0, РастягиватьВертикально = 0, + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительГруппы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительГруппы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяГруппы,Тип("ГруппаФормы"),РодительГруппы,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред); НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа; НовыйЭлемент.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение; - НовыйЭлемент.ОтображатьЗаголовок = ИСТИНА; + НовыйЭлемент.ОтображатьЗаголовок = Истина; - ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент,ГруппировкаОбычнойГруппы); - ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент,РастягиватьГоризонтально); - ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент,РастягиватьВертикально); - - Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли; + УстановитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы); + УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально); + УстановитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + Если Заголовок <> "" Тогда + НовыйЭлемент.Заголовок = Заголовок; + КонецЕсли; + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создать группу страниц +// Создает группу страниц // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительГруппы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// РастягиватьГоризонтально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// РастягиватьВертикально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// ПриСменеСтраницы - Строка - При смене страницы??? -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппаСтраниц(Форма, - ИмяГруппы, - РодительГруппы, - РастягиватьГоризонтально = 0, - РастягиватьВертикально = 0, - ПриСменеСтраницы = "", - СтруктураСвойств = Неопределено, - ЭлементПеред = Неопределено) Экспорт - - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительГруппы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяГруппы - Строка - Имя элемента на форме +// РодительГруппы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// РастягиватьГоризонтально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// РастягиватьВертикально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// ПриСменеСтраницы - Строка - При смене страницы??? +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - группа страниц формы +// +Функция СздГруппаСтраниц(Форма, ИмяГруппы, РодительГруппы, + РастягиватьГоризонтально = 0, РастягиватьВертикально = 0, + ПриСменеСтраницы = "", + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительГруппы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяГруппы,Тип("ГруппаФормы"),РодительГруппы,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред); НовыйЭлемент.Вид = ВидГруппыФормы.Страницы; - - ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент,РастягиватьГоризонтально); - ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент,РастягиватьВертикально); - Если ПриСменеСтраницы <> "" Тогда НовыйЭлемент.ПриСменеСтраницы = ПриСменеСтраницы КонецЕсли; + УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально); + УстановитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + Если ПриСменеСтраницы <> "" Тогда + НовыйЭлемент.ПриСменеСтраницы = ПриСменеСтраницы; + КонецЕсли; + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создать страницу группы страницы +// Создает страницу в группе страниц. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяСтраницы - Строка - Имя элемента на форме -// ГруппаСтраницы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - Заголовок страницы -// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: -// 1 - Вертикальная -// 2 - ГоризонтальнаяЕслиВозможно -// 3 - ГоризонтальнаяВсегда -// 0 - Авто -// РастягиватьГоризонтально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// РастягиватьВертикально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтраницаПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздСтраница(Форма, - ИмяСтраницы, - ГруппаСтраницы, - Заголовок = "", - ГруппировкаОбычнойГруппы = 0, - РастягиватьГоризонтально = 0, - РастягиватьВертикально = 0, - СтруктураСвойств = Неопределено, - СтраницаПеред = Неопределено) Экспорт - - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,ГруппаСтраницы); - ОпределитьЭлементФормы(Форма,СтраницаПеред); - - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяСтраницы,Тип("ГруппаФормы"),ГруппаСтраницы,СтраницаПеред); +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяСтраницы - Строка - Имя элемента на форме +// ГруппаСтраницы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - Заголовок страницы +// ГруппировкаОбычнойГруппы - Число - Принимаемые значения: +// 1 - Вертикальная +// 2 - ГоризонтальнаяЕслиВозможно +// 3 - ГоризонтальнаяВсегда +// 0 - Авто +// РастягиватьГоризонтально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// РастягиватьВертикально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - страница +// +Функция СздСтраница(Форма, ИмяСтраницы, ГруппаСтраницы, + Заголовок = "", ГруппировкаОбычнойГруппы = 0, + РастягиватьГоризонтально = 0, РастягиватьВертикально = 0, + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт + + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, ГруппаСтраницы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); + + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяСтраницы, Тип("ГруппаФормы"), ГруппаСтраницы, ЭлементПеред); НовыйЭлемент.Вид = ВидГруппыФормы.Страница; - ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент,ГруппировкаОбычнойГруппы); - ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент,РастягиватьГоризонтально); - ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент,РастягиватьВертикально); - - Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли; + УстановитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы); + УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально); + УстановитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + Если Заголовок <> "" Тогда + НовыйЭлемент.Заголовок = Заголовок; + КонецЕсли; + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создать обычную группу +// Создает группу формы командная панель. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительПанели - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппаКоманднаяПанель(Форма, - ИмяПанели, - РодительПанели, - СтруктураСвойств = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПанели - Строка - Имя элемента на форме +// РодительПанели - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - командная панель +// +Функция СздГруппаКоманднаяПанель(Форма, ИмяПанели, РодительПанели, + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительПанели); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительПанели); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяПанели,Тип("ГруппаФормы"),РодительПанели,ЭлементПеред); - НовыйЭлемент.Вид = ВидГруппыФормы.КоманднаяПанель; + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПанели, Тип("ГруппаФормы"), РодительПанели, ЭлементПеред); + НовыйЭлемент.Вид = ВидГруппыФормы.КоманднаяПанель; - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создать группу +// Создает группу формы и устанавливает свойства. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительГруппы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппа(Форма, - ИмяГруппы, - РодительГруппы, - СтруктураСвойств, +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяГруппы - Строка - Имя элемента на форме +// РодительГруппы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - созданная группа формы +// +Функция СздГруппа(Форма, ИмяГруппы, РодительГруппы, СвойстваЭлемента, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительГруппы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительГруппы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); + + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяГруппы,Тип("ГруппаФормы"),РодительГруппы,ЭлементПеред); - - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создание поля популярных видов +// Создание поля видов по шифрам. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяПоля - Строка - Имя элемента на форме -// РодительПоля - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - заголовок элемента -// ШифрВидаПоля - Число - возможно указать шифр следующих значений: -// 1 - ПолеВвода -// 2 - ПолеФлажка -// 3 - ПолеИндикатора -// 4 - ПолеПереключателя -// 5 - ПолеПериода -// 6 - ПолеHTMLДокумента -// 0 - Без указания типа, тип можно передать в структуре свойств -// ПутьКДанным - Строка - Путь к данным значения -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздПоле(Форма, - ИмяПоля, - РодительПоля, - Заголовок, - ШифрВидаПоля = 0, - ПутьКДанным = "", - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПоля - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - заголовок элемента +// ШифрВидаПоля - Число - возможно указать шифр следующих значений: +// 1 - ПолеВвода +// 2 - ПолеФлажка +// 3 - ПолеИндикатора +// 4 - ПолеПереключателя +// 5 - ПолеПериода +// 6 - ПолеHTMLДокумента +// 0 - Без указания типа, тип можно передать в структуре свойств +// ПутьКДанным - Строка - Путь к данным значения +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданное поле формы +// +Функция СздПоле(Форма, ИмяПоля, РодительПоля, Заголовок, + ШифрВидаПоля = 0, ПутьКДанным = "", + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,РодительПоля); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, РодительПоля); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяПоля,Тип("ПолеФормы"),РодительПоля,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред); Если ШифрВидаПоля <> 0 Тогда - НаборВидов = "ПолеВвода - |ПолеФлажка - |ПолеИндикатора - |ПолеПереключателя - |ПолеПериода - |ПолеHTMLДокумента"; - ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов,ШифрВидаПоля)); - НовыйЭлемент.Вид = ВидПоляФормы[ВидПоля]; + НовыйЭлемент.Вид = ВидПоляПоШифру(ШифрВидаПоля); + КонецЕсли; + + Если Заголовок <> "" Тогда + НовыйЭлемент.Заголовок = Заголовок; + КонецЕсли; + Если ПутьКДанным <> "" Тогда + НовыйЭлемент.ПутьКДанным = ПутьКДанным; КонецЕсли; - - Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли; - Если ПутьКДанным <> "" Тогда НовыйЭлемент.ПутьКДанным = ПутьКДанным КонецЕсли; - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - УстановитьСобытияЭлементу(НовыйЭлемент,СтруктураСобытий); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); + УстановитьСобытияЭлементу(НовыйЭлемент, СобытияЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создание поля популярных видов +// Создает флажок. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяПоля - Строка - Имя элемента на форме -// РодительПоля - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - заголовок элемента -// тВидФлажка - Число - возможные варианты: -// 0 - Авто -// 1 - Флажок -// 2 - Тумблер -// 3 - Выключатель -// ПутьКДанным - Строка - Путь к данным значения -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздПолеФлажок(Форма, - ИмяПоля, - РодительПоля, - Заголовок, - тВидФлажка = 0, - ПутьКДанным = "", - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПоля - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - заголовок элемента +// ШифрВидаФлажка - Число - возможные варианты: +// 0 - Авто +// 1 - Флажок +// 2 - Тумблер +// 3 - Выключатель +// ПутьКДанным - Строка - Путь к данным значения +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданное поле формы +// +Функция СздПолеФлажок(Форма, ИмяПоля, РодительПоля, Заголовок, + ШифрВидаФлажка = 0, ПутьКДанным = "", + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - НовыйЭлемент = СздПоле(Форма,ИмяПоля,РодительПоля,Заголовок,2,ПутьКДанным,СтруктураСвойств,СтруктураСобытий,ЭлементПеред); - Если тВидФлажка <> 0 Тогда - НаборВидов = "Флажок - |Тумблер - |Выключатель"; - ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов,тВидФлажка)); - НовыйЭлемент.ВидФлажка = ВидФлажка[ВидПоля]; - КонецЕсли; + НовыйЭлемент = СздПоле(Форма, ИмяПоля, РодительПоля, Заголовок, + 2, ПутьКДанным, СвойстваЭлемента, СобытияЭлемента, ЭлементПеред); + Если ШифрВидаФлажка <> 0 Тогда + НовыйЭлемент.ВидФлажка = ВидФлажкаПоШифру(ШифрВидаФлажка); + КонецЕсли; -КонецФункции + Возврат НовыйЭлемент; -//Быстрая функция по созданию декорации надпись +КонецФункции + +// Создает декорацию - надпись // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяДекорации - Строка - Имя элемента на форме -// РодительДекорации - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ЗаголовокДекорации - Строка - текст который содержит декорация -// РастягиватьПоГоризонтали - Булево - растянуть надпись на всю ширину формы -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздДекорацияНадпись(Форма, - ИмяДекорации, - РодительДекорации, - ЗаголовокДекорации, - РастягиватьПоГоризонтали = ИСТИНА, +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяДекорации - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ЗаголовокДекорации - Строка - текст который содержит декорация +// РастягиватьПоГоризонтали - Булево - растянуть надпись на всю ширину формы +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданное поле формы +// +Функция СздДекорацияНадпись(Форма, ИмяДекорации, РодительПоля, ЗаголовокДекорации, + РастягиватьПоГоризонтали = Истина, ЭлементПеред = Неопределено) Экспорт - ОпределитьЭлементФормы(Форма,РодительДекорации); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ОпределитьЭлементФормы(Форма, РодительПоля); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СздДекорация(Форма,ИмяДекорации,РодительДекорации,,,ЭлементПеред); + НовыйЭлемент = СздДекорация(Форма, ИмяДекорации, РодительПоля, , , ЭлементПеред); НовыйЭлемент.Заголовок = ЗаголовокДекорации; Если РастягиватьПоГоризонтали Тогда - НовыйЭлемент.АвтоМаксимальнаяШирина = ЛОЖЬ; - НовыйЭлемент.РастягиватьПоГоризонтали = ИСТИНА; + НовыйЭлемент.АвтоМаксимальнаяШирина = Ложь; + НовыйЭлемент.РастягиватьПоГоризонтали = Истина; КонецЕсли; - + Возврат НовыйЭлемент; КонецФункции -//Быстрая функция по созданию декорации картинки +// Создает декорацию-картинку // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяДекорации - Строка - Имя элемента на форме -// РодительДекорации - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ИмяКартинки - Строка - Имя картинки в дереве метаданных -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздДекорацияКартинка(Форма, - ИмяДекорации, - РодительДекорации, - ИмяКартинки, +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяДекорации - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ИмяКартинки - Строка - Имя картинки в дереве метаданных +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданное поле формы +// +Функция СздДекорацияКартинка(Форма, ИмяДекорации, РодительПоля, ИмяКартинки, ЭлементПеред = Неопределено) Экспорт - НовыйЭлемент = СздДекорация(Форма,ИмяДекорации,РодительДекорации,,,ЭлементПеред); + НовыйЭлемент = СздДекорация(Форма, ИмяДекорации, РодительПоля, , , ЭлементПеред); НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка; НовыйЭлемент.Картинка = БиблиотекаКартинок[ИмяКартинки]; @@ -784,483 +685,479 @@ КонецФункции -//Общая функция создания декорации с видом надпись и картинка +// Создает декорацию, картинки или надписи. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяДекорации - Строка - Имя элемента на форме -// РодительДекорации - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздДекорация(Форма, - ИмяДекорации, - РодительДекорации, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено) Экспорт - - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,РодительДекорации); - ОпределитьЭлементФормы(Форма,ЭлементПеред); - - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяДекорации,Тип("ДекорацияФормы"),РодительДекорации,ЭлементПеред); - - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - УстановитьСобытияЭлементу(НовыйЭлемент,СтруктураСобытий); - +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяДекорации - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ДекорацияФормы - созданное поле формы +// +Функция СздДекорация(Форма, ИмяДекорации, РодительПоля, + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт + + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, РодительПоля); + ОпределитьЭлементФормы(Форма, ЭлементПеред); + + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяДекорации, Тип("ДекорацияФормы"), РодительПоля, ЭлементПеред); + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); + УстановитьСобытияЭлементу(НовыйЭлемент, СобытияЭлемента); + Возврат НовыйЭлемент; - + КонецФункции -//Общая функция создания кнопки +// Создает кнопку формы // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяКнопки - Строка - Имя элемента на форме -// РодительКнопки - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ЗаголовокКнопки - Строка - отображаемый заголовок кнопки -// ИмяКоманды - Строка - Имя команды -// ВидКнопки - Число - Принимаемые значения -// 1 - Обычная кнопка -// 2 - Гиперссылка -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздКнопка(Форма, - ИмяКнопки, - РодительКнопки, - ЗаголовокКнопки = "", - ИмяКоманды = "", - ВидКнопки = 0, - СтруктураСвойств = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяКнопки - Строка - Имя элемента на форме +// РодительКнопки - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ЗаголовокКнопки - Строка - отображаемый заголовок кнопки +// ИмяКоманды - Строка - Имя команды +// ВидКнопки - Число - Принимаемые значения +// 1 - Обычная кнопка +// 2 - Гиперссылка +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// КнопкаФормы - созданное поле формы +// +Функция СздКнопка(Форма, ИмяКнопки, РодительКнопки, + ЗаголовокКнопки = "", ИмяКоманды = "", ВидКнопки = 0, + СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительКнопки); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительКнопки); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - //НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяКнопки,Тип("ДекорацияФормы"),РодительКнопки,ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяКнопки,Тип("КнопкаФормы"),РодительКнопки,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяКнопки, Тип("КнопкаФормы"), РодительКнопки, ЭлементПеред); Если ВидКнопки <> 0 Тогда НаборВидов = "ОбычнаяКнопка - |Гиперссылка"; - ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов,ВидКнопки)); + |Гиперссылка"; + ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ВидКнопки)); НовыйЭлемент.Вид = ВидКнопкиФормы[ВидПоля]; - КонецЕсли; + КонецЕсли; + + Если ЗаголовокКнопки <> "" Тогда + НовыйЭлемент.Заголовок = ЗаголовокКнопки; + КонецЕсли; + Если ИмяКоманды <> "" Тогда + НовыйЭлемент.ИмяКоманды = ИмяКоманды; + КонецЕсли; - Если ЗаголовокКнопки <> "" Тогда НовыйЭлемент.Заголовок = ЗаголовокКнопки; КонецЕсли; - Если ИмяКоманды <> "" Тогда НовыйЭлемент.ИмяКоманды = ИмяКоманды; КонецЕсли; + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - Возврат НовыйЭлемент; КонецФункции -// Создаем динамический список версия 2.0 +// Создает реквизит динамический список и размещает его на форме // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяСписка - Строка - Имя будущей таблицы формы -// РодительСписка - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ТекстЗапроса - Строка - если не заполнен, то обязательно должен быть заполнен параметр ТаблицаСписка -// ПараметрыЗапроса - Структура - Содержит параметры для запроса, где ключ - имя параметры, а значение соответственно -// ТаблицаСписка - Строка - имя таблицы списка, -// СтруктураКолонок - Структура - Ключ имя колонки в динамическом списке, значение это заголовок колонки -// Для сложных случаев лучше передать "неопределено" и впоспользоваться процедурой формирования колонок таблицы формы этого же модуля ДФИ -// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно -// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", по этому создается своя командная панель, а стандартная скрывается полностью. -// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2" -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздДинамическийСписок(Форма, - ИмяСписка = "Список", - РодительСписка, - ТекстЗапроса = "", - ПараметрыЗапроса = Неопределено, - ТаблицаСписка = "", - СтруктураКолонок = Неопределено, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - СвояКоманднаяПанель = ЛОЖЬ, - ЭлементПеред = Неопределено - ) Экспорт - - СоздатьРеквизит(Форма,ИмяСписка,ОписаниеТипаДинамическийСписок()); - РеквизитДинамическийСписок = Форма[ИмяСписка]; +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяСписка - Строка - Имя будущей таблицы формы +// РодительСписка - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ТекстЗапроса - Строка - если не заполнен, то обязательно должен быть заполнен параметр ТаблицаСписка +// ПараметрыЗапроса - Структура - Содержит параметры для запроса, где ключ - имя параметры, а значение соответственно +// ТаблицаСписка - Строка - имя таблицы списка, +// СтруктураКолонок - Структура - Ключ имя колонки в динамическом списке, значение это заголовок колонки +// Для сложных случаев лучше передать "неопределено" +// и впоспользоваться процедурой формирования колонок таблицы формы этого же модуля ДФИ +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно +// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", +// по этому создается своя командная панель, а стандартная скрывается полностью. +// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ТаблицаФормы - созданный элемент формы +// +Функция СздДинамическийСписок(Форма, ИмяСписка = "Список", РодительСписка, ТекстЗапроса = "", + ПараметрыЗапроса = Неопределено, ТаблицаСписка = "", СтруктураКолонок = Неопределено, + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, СвояКоманднаяПанель = Ложь, + ЭлементПеред = Неопределено) Экспорт + + СоздатьРеквизит(Форма, ИмяСписка, ОписаниеТипаДинамическийСписок()); + РеквизитДинамическийСписок = Форма[ИмяСписка]; Если ТекстЗапроса = "" Тогда - РеквизитДинамическийСписок.ПроизвольныйЗапрос = ЛОЖЬ; + РеквизитДинамическийСписок.ПроизвольныйЗапрос = Ложь; РеквизитДинамическийСписок.ОсновнаяТаблица = ТаблицаСписка; Иначе - РеквизитДинамическийСписок.ПроизвольныйЗапрос = ИСТИНА; + РеквизитДинамическийСписок.ПроизвольныйЗапрос = Истина; РеквизитДинамическийСписок.ТекстЗапроса = ТекстЗапроса; - Если ТаблицаСписка <> "" Тогда РеквизитДинамическийСписок.ОсновнаяТаблица = ТаблицаСписка; КонецЕсли; + Если ТаблицаСписка <> "" Тогда + РеквизитДинамическийСписок.ОсновнаяТаблица = ТаблицаСписка; + КонецЕсли; КонецЕсли; - ЕслиСтруктураНеопределеноТоНовая(ПараметрыЗапроса); - УстановитьПараметрыЗапросу(РеквизитДинамическийСписок,ПараметрыЗапроса); + ПривестиНеопределеноКСтруктуре(ПараметрыЗапроса); + УстановитьПараметрыЗапросу(РеквизитДинамическийСписок, ПараметрыЗапроса); - ТаблицаФормы = СздТаблицаФормы(Форма,ИмяСписка,РодительСписка,ИмяСписка,СтруктураКолонок,СтруктураСвойств,СтруктураСобытий,СвояКоманднаяПанель,ЭлементПеред); + ТаблицаФормы = СздТаблицаФормы(Форма, ИмяСписка, РодительСписка, + ИмяСписка, СтруктураКолонок, СвойстваЭлемента, СобытияЭлемента, СвояКоманднаяПанель, ЭлементПеред); Возврат ТаблицаФормы; -КонецФункции +КонецФункции -// Создаем колонку для Таблицы формы (Динамического списка) +// Создает колонку в таблице формы, обычно связывается с динамическим списком // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяКолонки - Строка - Имя будущей колонки -// ТипКолонки - Число - Принимаемые значения: -// 0 - Поле вводы -// 1 - Поле надписи -// 2 - Поле флажка -// 3 - Поле картинки -// Заголовок - Строка - Заголовок колонки -// ПутьКДанным - Строка - Путь к данным, не забывайте про точку и "Объект", пример "Объект.Товары.Номенклатура" -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздКолонкаТаблицыФормы(Форма, - ИмяКолонки, - Родитель, - ТипКолонки = 0, - Заголовок = "", - ПутьКДанным, - ОтображатьШапку = ИСТИНА, - ОтображатьПодвал = ЛОЖЬ, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено - ) Экспорт - - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,Родитель); - ОпределитьЭлементФормы(Форма,ЭлементПеред); - - Если ТипКолонки <> 0 Тогда - НаборВидов = "ПолеНадписи - |ПолеФлажка - |ПолеКартинки"; - ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов,ТипКолонки)); - Иначе - ВидПоля = "ПолеВвода"; - КонецЕсли; +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяКолонки - Строка - Имя будущей колонки +// Родитель - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ШиррВидаКолонки - Число - Принимаемые значения: +// 0 - Поле ввода +// 1 - Поле надписи +// 2 - Поле флажка +// 3 - Поле картинки +// Заголовок - Строка - Заголовок колонки +// ПутьКДанным - Строка - Путь к данным, не забывайте про точку и "Объект", пример "Объект.Товары.Номенклатура" +// ОтображатьШапку - Булево - отображать шапку таблицы +// ОтображатьПодвал - Булево - отображать подвал таблицы +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданное поле формы +// +Функция СздКолонкаТаблицыФормы(Форма, ИмяКолонки, Родитель, ШиррВидаКолонки = 0, Заголовок = "", ПутьКДанным, + ОтображатьШапку = Истина, ОтображатьПодвал = Ложь, + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт + + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, Родитель); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяКолонки,Тип("ПолеФормы"),Родитель,ЭлементПеред); - НовыйЭлемент.Вид = ВидПоляФормы[ВидПоля]; + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяКолонки, Тип("ПолеФормы"), Родитель, ЭлементПеред); + НовыйЭлемент.Вид = ВидПоляВКолонкеПоШифру(ШиррВидаКолонки); НовыйЭлемент.ПутьКДанным = ПутьКДанным; НовыйЭлемент.ОтображатьВШапке = ОтображатьШапку; НовыйЭлемент.ОтображатьВПодвале = ОтображатьПодвал; - - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - УстановитьСобытияЭлементу(НовыйЭлемент,СтруктураСобытий); + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); + УстановитьСобытияЭлементу(НовыйЭлемент, СобытияЭлемента); Возврат НовыйЭлемент; - -КонецФункции + +КонецФункции -// Создаем Таблицу формы +// Создает таблицу формы. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяТаблицы - Строка - Имя будущей таблицы -// РодительТаблицы - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// ПутьКДанным - Строка - Путь к данным реквизита -// СтруктураКолонок - Структура - Содержит значения колонок, где ключ имя колонки и значение это заголовок если необходимо изменить, иначе можно передать "" -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно -// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", по этому создается своя командная панель, а стандартная скрывается полностью. -// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздТаблицаФормы(Форма, - ИмяТаблицы, - РодительТаблицы, - ПутьКДанным, - СтруктураКолонок = Неопределено, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - СвояКоманднаяПанель = ЛОЖЬ, - ЭлементПеред = Неопределено - ) Экспорт - - ЕслиСтруктураНеопределеноТоНовая(СтруктураКолонок); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,РодительТаблицы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяТаблицы - Строка - Имя будущей таблицы +// РодительТаблицы - Строка - достаточно указать название элемента формы +// перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// ПутьКДанным - Строка - Путь к данным реквизита +// СтруктураКолонок - Структура - Содержит значения колонок, где ключ имя колонки и значение это заголовок +// если необходимо изменить, иначе можно передать "" +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно +// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", +// по этому создается своя командная панель, а стандартная скрывается полностью. +// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ТаблицаФормы - созданное поле формы +// +Функция СздТаблицаФормы(Форма, ИмяТаблицы, РодительТаблицы, ПутьКДанным, + СтруктураКолонок = Неопределено, + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, СвояКоманднаяПанель = Ложь, + ЭлементПеред = Неопределено) Экспорт + + ПривестиНеопределеноКСтруктуре(СтруктураКолонок); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, РодительТаблицы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); Если СвояКоманднаяПанель Тогда - ГруппаДинамическогоСписка = СздГруппаОбычнаяБезОтображения(Форма,"ДополнительнаяГруппаКоманднаяПанель" + ИмяТаблицы,РодительТаблицы,1,1,1,,ЭлементПеред); - КоманднаяПанельСписка = СздГруппаКоманднаяПанель(Форма,ИмяТаблицы + "КоманднаяПанель2",ГруппаДинамическогоСписка); - ТаблицаФормы = СоздатьЭлементФормы(Форма,ИмяТаблицы,Тип("ТаблицаФормы"),ГруппаДинамическогоСписка); + ГруппаДинамическогоСписка = СздГруппаОбычнаяБезОтображения(Форма, "ДополнительнаяГруппаКоманднаяПанель" + ИмяТаблицы, + РодительТаблицы, 1, 1, 1, , ЭлементПеред); + СздГруппаКоманднаяПанель(Форма, ИмяТаблицы + "КоманднаяПанель2", ГруппаДинамическогоСписка); + ТаблицаФормы = СоздатьЭлементФормы(Форма, ИмяТаблицы, Тип("ТаблицаФормы"), ГруппаДинамическогоСписка); ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; Иначе - ТаблицаФормы = СоздатьЭлементФормы(Форма,ИмяТаблицы,Тип("ТаблицаФормы"),РодительТаблицы,ЭлементПеред); + ТаблицаФормы = СоздатьЭлементФормы(Форма, ИмяТаблицы, Тип("ТаблицаФормы"), РодительТаблицы, ЭлементПеред); КонецЕсли; - - ТаблицаФормы.ПутьКДанным = ПутьКДанным; - - СоздатьКолонкиДляТаблицыФормы(Форма,ТаблицаФормы,СтруктураКолонок); - УстановитьСвойстваЭлементу(ТаблицаФормы,СтруктураСвойств); - УстановитьСобытияЭлементу(ТаблицаФормы,СтруктураСобытий); + ТаблицаФормы.ПутьКДанным = ПутьКДанным; + + СоздатьКолонкиДляТаблицыФормы(Форма, ТаблицаФормы, СтруктураКолонок); + + УстановитьСвойстваЭлементу(ТаблицаФормы, СвойстваЭлемента); + УстановитьСобытияЭлементу(ТаблицаФормы, СобытияЭлемента); Возврат ТаблицаФормы; КонецФункции -// Создать обычную группу без отображения +// Создает группу колонок таблицы формы. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяГруппы - Строка - Имя элемента на форме -// РодительГруппы - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// ГруппировкаГруппы - Число - Принимаемые значения: -// 1 - Горизонтальная -// 2 - Вертикальная -// 3 - В ячейке -// 0 - Авто -// РастягиватьГоризонтально - Число - Принимаемые значения: -// 1 - ИСТИНА -// 2 - ЛОЖЬ -// 0 - Авто -// ОтображатьВШапке - Булево - Если необходимо вывести заголовок -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздГруппаКолонокТаблицыФормы(Форма, - ИмяГруппы, - РодительГруппы, +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяГруппы - Строка - Имя элемента на форме +// РодительГруппы - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ГруппировкаГруппы - Число - Принимаемые значения: +// 1 - Горизонтальная +// 2 - Вертикальная +// 3 - В ячейке +// 0 - Авто +// РастягиватьГоризонтально - Число - Принимаемые значения: +// 1 - Истина +// 2 - Ложь +// 0 - Авто +// ОтображатьВШапке - Булево - Если необходимо вывести заголовок +// Заголовок - Строка - текст заголовка +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ГруппаФормы - созданный элемент формы +// +Функция СздГруппаКолонокТаблицыФормы(Форма, ИмяГруппы, РодительГруппы, ГруппировкаГруппы = 0, - РастягиватьГоризонтально = 0, - ОтображатьВШапке = ЛОЖЬ, - Заголовок = "", - СтруктураСвойств = Неопределено, + РастягиватьГоризонтально = 0, ОтображатьВШапке = Ложь, Заголовок = "", СвойстваЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ОпределитьЭлементФормы(Форма,РодительГруппы); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ОпределитьЭлементФормы(Форма, РодительГруппы); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяГруппы,Тип("ГруппаФормы"),РодительГруппы,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред); НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКолонок; НовыйЭлемент.ОтображатьВШапке = ОтображатьВШапке; НовыйЭлемент.Заголовок = Заголовок; - ПолучитьСостояниеГруппировкиКолонкиЭлемента(НовыйЭлемент,ГруппировкаГруппы); - ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент,РастягиватьГоризонтально); + УстановитьСостояниеГруппировкиКолонкиЭлемента(НовыйЭлемент, ГруппировкаГруппы); + УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально); - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создание специфического элемента, выпадающий список. -// Создается автоматически строковый реквизит с идентичным названием +// Создает реквизит со списокм выбора и размещает его на поле в виде выпадающего списка. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяСписка - Строка - Имя элемента на форме -// РодительСписка - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - отображаемый заголовок кнопки -// МассивЗначений - Массив - массив значений выбора из списка (содержит строковый тип) -// РедактированиеТекста - Булево - Редактирование текста, если ЛОЖЬ, то можно выбирать только из списка -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздВыпадающийСписок(Форма, - ИмяСписка, - РодительСписка, - ЗаголовокЭлемента = "", - МассивЗначений, - РедактированиеТекста = ЛОЖЬ, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено - ) Экспорт - - СоздатьРеквизит(Форма,ИмяСписка,ОписаниеТипаСтрока(100)); - НовыйРеквизит = Форма[ИмяСписка]; - НовыйЭлемент = СздПоле(Форма,ИмяСписка,РодительСписка,ЗаголовокЭлемента,1,ИмяСписка,СтруктураСвойств,СтруктураСобытий,ЭлементПеред); - НовыйЭлемент.КнопкаВыпадающегоСписка = ИСТИНА; +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяСписка - Строка - Имя элемента на форме +// РодительСписка - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ЗаголовокЭлемента - Строка - заголовок элемента +// МассивЗначений - Массив из Произвольный - массив значений выбора из списка (содержит строковый тип) +// РедактированиеТекста - Булево - Редактирование текста, если Ложь, то можно выбирать только из списка +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданный элемент формы +// +Функция СздВыпадающийСписок(Форма, ИмяСписка, РодительСписка, ЗаголовокЭлемента = "", МассивЗначений, + РедактированиеТекста = Ложь, СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, + ЭлементПеред = Неопределено) Экспорт + + СоздатьРеквизит(Форма, ИмяСписка, ОписаниеТипаСтрока(100)); + // При отсутствии реквизита будет вызвано исключение + НовыйРеквизит = Форма[ИмяСписка]; + НовыйЭлемент = СздПоле(Форма, ИмяСписка, РодительСписка, ЗаголовокЭлемента, + 1, ИмяСписка, СвойстваЭлемента, СобытияЭлемента, ЭлементПеред); + НовыйЭлемент.КнопкаВыпадающегоСписка = Истина; Для Каждого текЭлемент Из МассивЗначений Цикл - НовыйЭлемент.СписокВыбора.Добавить(текЭлемент); + НовыйЭлемент.СписокВыбора.Добавить(текЭлемент); КонецЦикла; - Если ЗаголовокЭлемента <> "" Тогда НовыйЭлемент.Заголовок = ЗаголовокЭлемента; КонецЕсли; - + Если ЗаголовокЭлемента <> "" Тогда + НовыйЭлемент.Заголовок = ЗаголовокЭлемента; + КонецЕсли; + НовыйЭлемент.РедактированиеТекста = РедактированиеТекста; - Возврат НовыйЭлемент; - + Возврат НовыйЭлемент; + КонецФункции -// Создание специфического элемента, переключатель -// Создается автоматически реквизит с типом число с идентичным названием +// Создает реквизит со значениями переключателя и размещает переключатель на форме. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяПереключателя - Строка - Имя элемента на форме -// РодительЭлемента - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - отображаемый заголовок кнопки -// МассивЗначений - Массив - Массив значений выбора из списка (содержит строковый тип), -// Важно отметить, что номер в массиве соответствует номеру в списке выбора переключателя. -// тВидПереключателя - Число - Принимает значения: -// 1 - Переключатель -// 2 - Тумблер -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздПереключатель(Форма, - ИмяПереключателя, - РодительЭлемента, - ЗаголовокЭлемента = "", - МассивЗначений, - тВидПереключателя, - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено - ) Экспорт - - СоздатьРеквизит(Форма,ИмяПереключателя,ОписаниеТипаЧисло(10,0)); - НовыйРеквизит = Форма[ИмяПереключателя]; - НовыйЭлемент = СздПоле(Форма,ИмяПереключателя,РодительЭлемента,ЗаголовокЭлемента,4,ИмяПереключателя,СтруктураСвойств,СтруктураСобытий,ЭлементПеред); - - Если ЗаголовокЭлемента <> "" Тогда НовыйЭлемент.Заголовок = ЗаголовокЭлемента; КонецЕсли; - - Если тВидПереключателя <> 0 Тогда - НаборВидов = "Переключатель - |Тумблер"; - ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов,тВидПереключателя)); - НовыйЭлемент.ВидПереключателя = ВидПереключателя[ВидПоля]; - КонецЕсли; +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПереключателя - Строка - Имя элемента на форме +// РодительЭлемента - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// ЗаголовокЭлемента - Строка - отображаемый заголовок кнопки +// МассивЗначений - Массив из Произвольный - Массив значений выбора из списка (содержит строковый тип), +// Важно отметить, что номер в массиве соответствует номеру в списке выбора переключателя. +// ШифрВидаПереключателя - Число - Принимает значения: +// 1 - Переключатель +// 2 - Тумблер +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданный элемент формы +// +Функция СздПереключатель(Форма, ИмяПереключателя, РодительЭлемента, ЗаголовокЭлемента = "", МассивЗначений, + ШифрВидаПереключателя, + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт + + СоздатьРеквизит(Форма, ИмяПереключателя, ОписаниеТипаЧисло(10, 0)); + + НовыйЭлемент = СздПоле(Форма, ИмяПереключателя, РодительЭлемента, ЗаголовокЭлемента, + 4, ИмяПереключателя, СвойстваЭлемента, СобытияЭлемента, ЭлементПеред); + + Если ЗаголовокЭлемента <> "" Тогда + НовыйЭлемент.Заголовок = ЗаголовокЭлемента; + КонецЕсли; + + Если ШифрВидаПереключателя <> 0 Тогда + НовыйЭлемент.ВидПереключателя = ВидПереключателяПоШифру(ШифрВидаПереключателя); + КонецЕсли; Счетчик = 0; Для Каждого текЭлемент Из МассивЗначений Цикл - НовыйЭлемент.СписокВыбора.Добавить(Счетчик,текЭлемент); + НовыйЭлемент.СписокВыбора.Добавить(Счетчик, текЭлемент); Счетчик = Счетчик + 1; КонецЦикла; - Возврат НовыйЭлемент; - + Возврат НовыйЭлемент; + КонецФункции -// Создание поля гиперссылки +// Создает поле надписи с гиперссылкой // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяПоля - Строка - Имя элемента на форме -// РодительПоля - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - заголовок элемента -// БезЗаголовка - Булево - по умолчанию заголовок не выводится -// ПутьКДанным - Строка - Путь к данным значения -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздПолеГиперссылка(Форма, - ИмяПоля, - РодительПоля, - Заголовок = "", - БезЗаголовка = ИСТИНА, - ПутьКДанным = "", - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПоля - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - заголовок элемента +// БезЗаголовка - Булево - по умолчанию заголовок не выводится +// ПутьКДанным - Строка - Путь к данным значения +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданный элемент формы +// +Функция СздПолеГиперссылка(Форма, ИмяПоля, РодительПоля, + Заголовок = "", БезЗаголовка = Истина, ПутьКДанным = "", + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,РодительПоля); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, РодительПоля); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяПоля,Тип("ПолеФормы"),РодительПоля,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред); НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи; - НовыйЭлемент.Гиперссылка = ИСТИНА; + НовыйЭлемент.Гиперссылка = Истина; - Если БезЗаголовка Тогда НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет КонецЕсли; - - Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли; - Если ПутьКДанным <> "" Тогда НовыйЭлемент.ПутьКДанным = ПутьКДанным КонецЕсли; + Если БезЗаголовка Тогда + НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + КонецЕсли; + + Если Заголовок <> "" Тогда + НовыйЭлемент.Заголовок = Заголовок; + КонецЕсли; + Если ПутьКДанным <> "" Тогда + НовыйЭлемент.ПутьКДанным = ПутьКДанным; + КонецЕсли; - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - УстановитьСобытияЭлементу(НовыйЭлемент,СтруктураСобытий); + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); + УстановитьСобытияЭлементу(НовыйЭлемент, СобытияЭлемента); Возврат НовыйЭлемент; КонецФункции -// Создание поля Надпись +// Создает поле надписи. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы -// ИмяПоля - Строка - Имя элемента на форме -// РодительПоля - Строка - достаточно указать название элемента формы -// - Элементы - можно в качестве родителя передать элемент формы -// Заголовок - Строка - заголовок элемента -// БезЗаголовка - Булево - по умолчанию заголовок не выводится -// ПутьКДанным - Строка - Путь к данным значения -// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение -// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка" -// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент -// - Элементы - можно передать элемент формы -// -Функция СздПолеНадписи(Форма, - ИмяПоля, - РодительПоля, - Заголовок = "", - БезЗаголовка = ИСТИНА, - ПутьКДанным = "", - СтруктураСвойств = Неопределено, - СтруктураСобытий = Неопределено, - ЭлементПеред = Неопределено) Экспорт +// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы +// ИмяПоля - Строка - Имя элемента на форме +// РодительПоля - Строка - достаточно указать название элемента формы +// - ГруппаФормы - можно в качестве родителя передать элемент формы +// Заголовок - Строка - заголовок элемента +// БезЗаголовка - Булево - по умолчанию заголовок не выводится +// ПутьКДанным - Строка - Путь к данным значения +// СвойстваЭлемента - Структура - Содержит значения свойств, где ключ НазваниеСвойства +// СобытияЭлемента - Структура - Содержит значения событий, где ключ ИмяСобытия +// и в значение ИмяПроцедуры тип "строка" +// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент +// - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - можно передать элемент формы +// +// Возвращаемое значение: +// ПолеФормы - созданный элемент формы +// +Функция СздПолеНадписи(Форма, ИмяПоля, РодительПоля, + Заголовок = "", БезЗаголовка = Истина, ПутьКДанным = "", + СвойстваЭлемента = Неопределено, СобытияЭлемента = Неопределено, ЭлементПеред = Неопределено) Экспорт - ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств); - ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий); - ОпределитьЭлементФормы(Форма,РодительПоля); - ОпределитьЭлементФормы(Форма,ЭлементПеред); + ПривестиНеопределеноКСтруктуре(СвойстваЭлемента); + ПривестиНеопределеноКСтруктуре(СобытияЭлемента); + ОпределитьЭлементФормы(Форма, РодительПоля); + ОпределитьЭлементФормы(Форма, ЭлементПеред); - НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяПоля,Тип("ПолеФормы"),РодительПоля,ЭлементПеред); + НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред); НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи; - Если БезЗаголовка Тогда НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет КонецЕсли; - - Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли; - Если ПутьКДанным <> "" Тогда НовыйЭлемент.ПутьКДанным = ПутьКДанным КонецЕсли; - - УстановитьСвойстваЭлементу(НовыйЭлемент,СтруктураСвойств); - УстановитьСобытияЭлементу(НовыйЭлемент,СтруктураСобытий); + Если БезЗаголовка Тогда + НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + КонецЕсли; + + Если Заголовок <> "" Тогда + НовыйЭлемент.Заголовок = Заголовок; + КонецЕсли; + Если ПутьКДанным <> "" Тогда + НовыйЭлемент.ПутьКДанным = ПутьКДанным; + КонецЕсли; + + УстановитьСвойстваЭлементу(НовыйЭлемент, СвойстваЭлемента); + УстановитьСобытияЭлементу(НовыйЭлемент, СобытияЭлемента); Возврат НовыйЭлемент; @@ -1270,281 +1167,774 @@ #Область УдалениеЭлементовИРеквизитов -//Удалить реквизиты ранее созданный программно! +// Удаляет ранее созданные реквизиты. +// Реквизиты должны быть созданы программно. // -//Параметры: -// МассивУдаляемыхРеквизитов - Массив - Содержит строковые типы с именами реквизитов, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! -Процедура УдлРеквизиты(Форма,МассивУдаляемыхРеквизитов) Экспорт - Форма.ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); -КонецПроцедуры +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма +// МассивУдаляемыхРеквизитов - Массив из Строка - Содержит строковые типы с именами реквизитов +// ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! +// +Процедура УдлРеквизиты(Форма, МассивУдаляемыхРеквизитов) Экспорт -//Удалить реквизит ранее созданный программно! + Форма.ИзменитьРеквизиты( , МассивУдаляемыхРеквизитов); + +КонецПроцедуры + +// Удаляет ранее созданный реквизит. +// Реквизит должен быть создан программно. // -//Параметры: -// ИмяРеквизита - Строка - Имя удаляемого реквизита, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! -Процедура УдлРеквизит(Форма,ИмяРеквизита) Экспорт +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма +// ИмяРеквизита - Строка - Имя удаляемого реквизита, +// ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! +Процедура УдлРеквизит(Форма, ИмяРеквизита) Экспорт + МассивУдаляемыхРеквизитов = Новый Массив; МассивУдаляемыхРеквизитов.Добавить(ИмяРеквизита); - УдлРеквизиты(Форма,МассивУдаляемыхРеквизитов); + УдлРеквизиты(Форма, МассивУдаляемыхРеквизитов); + КонецПроцедуры -//Удалить элементы ранее созданный программно! +// Удаляет ранее созданные элементы формы. +// Элементы формы должны быть созданы программно. // -//Параметры: -// МассивУдаляемыхЭлементов - Массив - Содержит строковые типы с именами удаляемых элементов, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! -Процедура УдлЭлементы(Форма,МассивУдаляемыхЭлементов) Экспорт +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма +// МассивУдаляемыхЭлементов - Массив из Строка - Содержит строковые типы с именами удаляемых элементов +// ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! +Процедура УдлЭлементы(Форма, МассивУдаляемыхЭлементов) Экспорт + Для Каждого текЭлемент Из МассивУдаляемыхЭлементов Цикл Если Форма.Элементы.Найти(текЭлемент) <> Неопределено Тогда Форма.Элементы.Удалить(Форма.Элементы[текЭлемент]); - КонецЕсли; - КонецЦикла; -КонецПроцедуры + КонецЕсли; + КонецЦикла; -//Удалить элемент ранее созданный программно! +КонецПроцедуры + +// Удаляет ранее созданный элемент формы. +// Элемент формы должен быть создан программно. // -//Параметры: -// ИмяРеквизита - Строка - Имя удаляемого элемента на форме, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! -Процедура УдлЭлемент(Форма,ИмяЭлемента) Экспорт +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма +// ИмяЭлемента - Строка - Имя удаляемого элемента на форме +// ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! +Процедура УдлЭлемент(Форма, ИмяЭлемента) Экспорт + МассивУдаляемыхЭлементов = Новый Массив; МассивУдаляемыхЭлементов.Добавить(ИмяЭлемента); - УдлЭлементы(Форма,МассивУдаляемыхЭлементов); + УдлЭлементы(Форма, МассивУдаляемыхЭлементов); + КонецПроцедуры -//Удалить элемент и реквизит ранее созданный программно! +// Удаляет ранее созданный реквизит и одноименный элемент формы. +// Реквизит и элемент формы должен быть создан программно. // -//Параметры: -// ИмяРеквизитаЭлемента - Строка - Имя удаляемого элемента и реквизита на форме СОВПАДАЕТ!!! и ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! -Процедура УдлРеквизитИЭлемент(Форма,ИмяРеквизитаЭлемента) Экспорт - УдлРеквизит(Форма,ИмяРеквизитаЭлемента); - УдлЭлемент(Форма,ИмяРеквизитаЭлемента); +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма +// ИмяРеквизитаЭлемента - Строка - Имя удаляемого элемента и реквизита на форме СОВПАДАЕТ!!! +// ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО! +Процедура УдлРеквизитИЭлемент(Форма, ИмяРеквизитаЭлемента) Экспорт + + УдлРеквизит(Форма, ИмяРеквизитаЭлемента); + УдлЭлемент(Форма, ИмяРеквизитаЭлемента); + КонецПроцедуры #КонецОбласти #Область Свойства -//Основные свойства поля ввода +// Формирует основные свойства поля ввода. // // Параметры: -//Заголовок - Строка - Заголовок поля на форме -//Вид - ВидПоляФормы - Вид поля формы клиентского приложения -//ПутьКДанным - Строка - Путь к данным реквизита формы или объекта -//ПоложениеЗаголовка - ПоложениеЗаголовкаЭлементаФормы - Определяет положение заголовка относительно поля в макете формы. Следует заметить, что для отключения вывода заголовка следует установить это свойство в значение Нет. -//Видимость - Булево - Видимость элемента на форме -//Доступность - Булево - Доступность элемента на форме -//ТолькоПросмотр - Булево - Только просмотр элемента на форме -//ПропускатьПриВводе - Булево - Указывает необходимость пропуска поля при вводе данных -// - Неопределено - Авто -//АктивизироватьПоУмолчанию - Булево - Если свойство установлено, данный элемент будет активизирован при открытии формы -//ВажностьПриОтображении - ВажностьПриОтображении - Указывает важность элемента при отображении (используется для адаптации формы к ширине экрана мобильного устройства) -//Маска - Строка - (Поле ввода) Содержит посимвольную строку маски интерактивного ввода текста в поле. -//В строке маски допустимо использование следующих специальных символов: -//! - любой введенный символ преобразуется в верхний регистр; -//9 - допустимо ввести произвольный символ цифры; -//# - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел; -//N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры); -//U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр; -//X (латинского алфавита) - допустимо ввести произвольный символ; -//^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка; -//h - допустим ввод символов обозначения шестнадцатеричных цифр; -//@ - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел. -//Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2". -//Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\". -//Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст. -//РежимПароля - Булево - (Поле ввода, поле надписи) Содержит признак специального режима для ввода пароля, в котором все вводимые символы отображаются символом "*" (звездочка). -// - Неопределено - Авто -//МногострочныйРежим - Булево - Управляет многострочным режимом в поле ввода. -//РасширенноеРедактирование - Булево - (Поле ввода) Если свойство установлено в Истина, то включается расширенный режим редактирования, при котором само поле ввода обрабатывает нажатие клавиши TAB (в текст вставляется символ табуляции и переход к следующему полю не происходит), а также доступен поиск по тексту с помощью стандартных действий. -//Гиперссылка - Булево - (Поле надписи, поле картинки) можно обработать событие гиперссылки "ОбработкаНавигационнойСсылки" -// -Функция СтруктураСвойствОсновные(Заголовок = "", - Вид = Неопределено, - ПутьКДанным = "", +// Заголовок - Строка - Заголовок поля на форме +// Вид - ВидПоляФормы - Вид поля формы клиентского приложения +// ПутьКДанным - Строка - Путь к данным реквизита формы или объекта +// ПоложениеЗаголовка - ПоложениеЗаголовкаЭлементаФормы - положение заголовка относительно поля в макете формы. +// Следует заметить, что для отключения вывода заголовка следует установить это свойство в значение Нет. +// Видимость - Булево - Видимость элемента на форме +// Доступность - Булево - Доступность элемента на форме +// ТолькоПросмотр - Булево - Только просмотр элемента на форме +// ПропускатьПриВводе - Булево - Указывает необходимость пропуска поля при вводе данных +// - Неопределено - Авто +// АктивизироватьПоУмолчанию - Булево - Если свойство установлено, элемент будет активизирован при открытии формы +// Маска - Строка - (Поле ввода) Содержит посимвольную строку маски интерактивного ввода текста в поле. +// В строке маски допустимо использование следующих специальных символов: +// ! - любой введенный символ преобразуется в верхний регистр; +// 9 - допустимо ввести произвольный символ цифры; +// # - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел; +// N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры); +// U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) +// и любой введенный символ преобразуется в верхний регистр; +// X (латинского алфавита) - допустимо ввести произвольный символ; +// ^ - недопустимо вводить этот символ интерактивно пользователем, +// он может устанавливаться только из программно; +// h - допустим ввод символов обозначения шестнадцатеричных цифр; +// @ - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел. +// Если в маске из специальных символов используются только символы "@", то все символы текста, +// соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого +// блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2". +// Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\". +// Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". +// В этом случае использоваться будет та маска, к которой подходит введенный текст. +// РежимПароля - Булево - (Поле ввода, поле надписи) Содержит признак специального режима для ввода пароля, +// в котором все вводимые символы отображаются символом "*" (звездочка). +// - Неопределено - Авто +// МногострочныйРежим - Булево - Управляет многострочным режимом в поле ввода. +// РасширенноеРедактирование - Булево - (Поле ввода) Если свойство установлено в Истина, +// то включается расширенный режим редактирования, при котором само поле ввода обрабатывает нажатие клавиши TAB +// (в текст вставляется символ табуляции и переход к следующему полю не происходит), +// а также доступен поиск по тексту с помощью стандартных действий. +// Гиперссылка - Булево - (Поле надписи, поле картинки) признак гиперссылки +// можно обработать событие гиперссылки "ОбработкаНавигационнойСсылки" +// +// Возвращаемое значение: +// Структура - возможные свойства: +// * Заголовок - Строка - заголовок +// * Вид - ВидПоляФормы - вид элемента формы +// * ПутьКДанным - Строка - путь к данным +// * ПоложениеЗаголовка - ПоложениеЗаголовкаЭлементаФормы - заголовок +// * Видимость - Булево - видимость +// * Доступность - Булево - доступность +// * ТолькоПросмотр - Булево - только просмотр +// * ПропускатьПриВводе - Булево - пропуск +// * АктивизироватьПоУмолчанию - Булево - активация по умолчанию +// * Маска - Строка - маска ввода +// * РежимПароля - Булево - режим ввода +// * МногострочныйРежим - Булево - многострочный режим +// * РасширенноеРедактирование - Булево - расширенное редактирование +// * Гиперссылка - Булево - режим гиперссылки +// +Функция СвойстваЭлементаОсновные(Заголовок = "", Вид = Неопределено, ПутьКДанным = "", ПоложениеЗаголовка = Неопределено, - Видимость = Неопределено, - Доступность = Неопределено, - ТолькоПросмотр = Неопределено, - ПропускатьПриВводе = Неопределено, - АктивизироватьПоУмолчанию = Неопределено, - Маска = "", - РежимПароля = Неопределено, - МногострочныйРежим = Неопределено, - РасширенноеРедактирование = Неопределено, + Видимость = Неопределено, Доступность = Неопределено, ТолькоПросмотр = Неопределено, + ПропускатьПриВводе = Неопределено, АктивизироватьПоУмолчанию = Неопределено, + Маска = "", РежимПароля = Неопределено, МногострочныйРежим = Неопределено, РасширенноеРедактирование = Неопределено, Гиперссылка = Неопределено) Экспорт - СтруктураСвойств = Новый Структура; - - Если Заголовок <> "" Тогда СтруктураСвойств.Вставить("Заголовок",Заголовок) КонецЕсли; - Если Вид <> Неопределено Тогда СтруктураСвойств.Вставить("Вид",Вид) КонецЕсли; - Если ПутьКДанным <> "" Тогда СтруктураСвойств.Вставить("ПутьКДанным",ПутьКДанным) КонецЕсли; - Если ПоложениеЗаголовка <> Неопределено Тогда СтруктураСвойств.Вставить("ПоложениеЗаголовка",ПоложениеЗаголовка) КонецЕсли; - Если Видимость <> Неопределено Тогда СтруктураСвойств.Вставить("Видимость",Видимость) КонецЕсли; - Если Доступность <> Неопределено Тогда СтруктураСвойств.Вставить("Доступность",Доступность) КонецЕсли; - Если ТолькоПросмотр <> Неопределено Тогда СтруктураСвойств.Вставить("ТолькоПросмотр",ТолькоПросмотр) КонецЕсли; - Если ПропускатьПриВводе <> Неопределено Тогда СтруктураСвойств.Вставить("ПропускатьПриВводе",ПропускатьПриВводе) КонецЕсли; - Если АктивизироватьПоУмолчанию <> Неопределено Тогда СтруктураСвойств.Вставить("АктивизироватьПоУмолчанию",АктивизироватьПоУмолчанию) КонецЕсли; - Если Маска <> "" Тогда СтруктураСвойств.Вставить("Маска",Маска) КонецЕсли; - Если РежимПароля <> Неопределено Тогда СтруктураСвойств.Вставить("РежимПароля",РежимПароля) КонецЕсли; - Если МногострочныйРежим <> Неопределено Тогда СтруктураСвойств.Вставить("МногострочныйРежим",МногострочныйРежим) КонецЕсли; - Если РасширенноеРедактирование <> Неопределено Тогда СтруктураСвойств.Вставить("РасширенноеРедактирование",РасширенноеРедактирование) КонецЕсли; - Если Гиперссылка <> Неопределено Тогда СтруктураСвойств.Вставить("Гиперссылка",Гиперссылка) КонецЕсли; - - Возврат СтруктураСвойств; + СвойстваЭлемента = Новый Структура; + + Если Заголовок <> "" Тогда + СвойстваЭлемента.Вставить("Заголовок", Заголовок); + КонецЕсли; + Если Вид <> Неопределено Тогда + СвойстваЭлемента.Вставить("Вид", Вид); + КонецЕсли; + Если ПутьКДанным <> "" Тогда + СвойстваЭлемента.Вставить("ПутьКДанным", ПутьКДанным); + КонецЕсли; + Если ПоложениеЗаголовка <> Неопределено Тогда + СвойстваЭлемента.Вставить("ПоложениеЗаголовка", ПоложениеЗаголовка); + КонецЕсли; + Если Видимость <> Неопределено Тогда + СвойстваЭлемента.Вставить("Видимость", Видимость); + КонецЕсли; + Если Доступность <> Неопределено Тогда + СвойстваЭлемента.Вставить("Доступность", Доступность); + КонецЕсли; + Если ТолькоПросмотр <> Неопределено Тогда + СвойстваЭлемента.Вставить("ТолькоПросмотр", ТолькоПросмотр); + КонецЕсли; + Если ПропускатьПриВводе <> Неопределено Тогда + СвойстваЭлемента.Вставить("ПропускатьПриВводе", ПропускатьПриВводе); + КонецЕсли; + Если АктивизироватьПоУмолчанию <> Неопределено Тогда + СвойстваЭлемента.Вставить("АктивизироватьПоУмолчанию", АктивизироватьПоУмолчанию); + КонецЕсли; + Если Маска <> "" Тогда + СвойстваЭлемента.Вставить("Маска", Маска); + КонецЕсли; + Если РежимПароля <> Неопределено Тогда + СвойстваЭлемента.Вставить("РежимПароля", РежимПароля); + КонецЕсли; + Если МногострочныйРежим <> Неопределено Тогда + СвойстваЭлемента.Вставить("МногострочныйРежим", МногострочныйРежим); + КонецЕсли; + Если РасширенноеРедактирование <> Неопределено Тогда + СвойстваЭлемента.Вставить("РасширенноеРедактирование", РасширенноеРедактирование); + КонецЕсли; + Если Гиперссылка <> Неопределено Тогда + СвойстваЭлемента.Вставить("Гиперссылка", Гиперссылка); + КонецЕсли; + + Возврат СвойстваЭлемента; КонецФункции -//Свойства Подсказка +// Формирует свойства подсказки. // // Параметры: -// Подсказка - Строка - Текст подсказки -// ОтображениеПодсказки - ОтображениеПодсказки - Задает способ отображения подсказки элемента формы -// ПодсказкаВвода - Строка - Текст подсказки ввода в поле формы -Функция СтруктураСвойствПодсказка(Подсказка = Неопределено, +// Подсказка - Строка - Текст подсказки +// ОтображениеПодсказки - ОтображениеПодсказки - Задает способ отображения подсказки элемента формы +// ПодсказкаВвода - Строка - Текст подсказки ввода в поле формы +// +// Возвращаемое значение: +// Структура - Структура свойств подсказка: +// * Подсказка - Строка - текст подсказки +// * ОтображениеПодсказки - ОтображениеПодсказки - всплывающая, кнопка и т.д. +// * ПодсказкаВвода - Строка - серая надпись в пустом поле +Функция СвойстваЭлементаПодсказка(Подсказка = Неопределено, ОтображениеПодсказки = Неопределено, ПодсказкаВвода = Неопределено) Экспорт - СтруктураСвойств = Новый Структура; + СвойстваЭлемента = Новый Структура; - Если Подсказка <> Неопределено Тогда СтруктураСвойств.Вставить("Подсказка",Подсказка) КонецЕсли; - Если ОтображениеПодсказки <> Неопределено Тогда СтруктураСвойств.Вставить("ОтображениеПодсказки",ОтображениеПодсказки) КонецЕсли; - Если ПодсказкаВвода <> Неопределено Тогда СтруктураСвойств.Вставить("ПодсказкаВвода",ПодсказкаВвода) КонецЕсли; + Если Подсказка <> Неопределено Тогда + СвойстваЭлемента.Вставить("Подсказка", Подсказка); + КонецЕсли; + Если ОтображениеПодсказки <> Неопределено Тогда + СвойстваЭлемента.Вставить("ОтображениеПодсказки", ОтображениеПодсказки); + КонецЕсли; + Если ПодсказкаВвода <> Неопределено Тогда + СвойстваЭлемента.Вставить("ПодсказкаВвода", ПодсказкаВвода); + КонецЕсли; - Возврат СтруктураСвойств; + Возврат СвойстваЭлемента; КонецФункции -//Свойства размеров +// Формирует сфоства размеров и положения. // // Параметры: -// Ширина - Число - Ширина элемента -// Высота - Число - Высота элемента -// АвтоМаксимальнаяШирина - Булево - Отключение автоматической ширины -// МаксимальнаяШирина - Число - Максимальная ширина элемента на форме, работает если АвтоМаксимальнаяШирина - ОТКЛЮЧЕНА -// АвтоМаксимальнаяВысота - Булево - Отключение автоматической высоты -// МаксимальнаяВысота - Число - Максимальная высота элемента на форме, работает если АвтоМаксимальнаяВысота - ОТКЛЮЧЕНА -// РастягиватьПоГоризонтали - Булево - Если требуется принудительно задать автоматическое растягивание по ширине -// РастягиватьПоВертикали - Булево - Если требуется принудительно задать автоматическое растягивание по высоте -// тГоризонтальноеПоложение - Число - Принимаемые значения: -// 1 - Лево -// 2 - Центр -// 3 - Право -// 0 - Авто -// тГоризонтальноеПоложениеВШапке - Число - Принимаемые значения: -// 1 - Лево -// 2 - Центр -// 3 - Право -// 0 - Авто -// тГоризонтальноеПоложениеВПодвале - Число - Принимаемые значения: -// 1 - Лево -// 2 - Центр -// 3 - Право -// 0 - Авто -// -Функция СтруктураСвойствРасположение(Ширина = Неопределено, - Высота = Неопределено, - АвтоМаксимальнаяШирина = Неопределено, - МаксимальнаяШирина = Неопределено, - АвтоМаксимальнаяВысота = Неопределено, - МаксимальнаяВысота = Неопределено, - РастягиватьПоГоризонтали = Неопределено, - РастягиватьПоВертикали = Неопределено, - тГоризонтальноеПоложение = Неопределено, - тГоризонтальноеПоложениеВШапке = Неопределено, - тГоризонтальноеПоложениеВПодвале = Неопределено) Экспорт - - СтруктураСвойств = Новый Структура; - - Если Ширина <> Неопределено Тогда СтруктураСвойств.Вставить("Ширина",Ширина) КонецЕсли; - Если Высота <> Неопределено Тогда СтруктураСвойств.Вставить("Высота",Высота) КонецЕсли; - Если АвтоМаксимальнаяШирина <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоМаксимальнаяШирина",АвтоМаксимальнаяШирина) КонецЕсли; - Если МаксимальнаяШирина <> Неопределено Тогда СтруктураСвойств.Вставить("МаксимальнаяШирина",МаксимальнаяШирина) КонецЕсли; - Если АвтоМаксимальнаяВысота <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоМаксимальнаяВысота",АвтоМаксимальнаяВысота) КонецЕсли; - Если МаксимальнаяВысота <> Неопределено Тогда СтруктураСвойств.Вставить("МаксимальнаяВысота",МаксимальнаяВысота) КонецЕсли; - Если РастягиватьПоГоризонтали <> Неопределено Тогда СтруктураСвойств.Вставить("РастягиватьПоГоризонтали",РастягиватьПоГоризонтали) КонецЕсли; - Если РастягиватьПоВертикали <> Неопределено Тогда СтруктураСвойств.Вставить("РастягиватьПоВертикали",РастягиватьПоВертикали) КонецЕсли; - Если тГоризонтальноеПоложение <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложение",ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложение)) КонецЕсли; - Если тГоризонтальноеПоложениеВШапке <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложениеВШапке",ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложениеВШапке)) КонецЕсли; - Если тГоризонтальноеПоложениеВПодвале <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложениеВПодвале",ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложениеВПодвале)) КонецЕсли; - - Возврат СтруктураСвойств; - -КонецФункции - -//Свойства Таблицы формы +// Ширина - Число - Ширина элемента +// Высота - Число - Высота элемента +// АвтоМаксимальнаяШирина - Булево - Отключение автоматической ширины +// МаксимальнаяШирина - Число - Максимальная ширина элемента на форме, работает если отключена АвтоМаксимальнаяШирина +// АвтоМаксимальнаяВысота - Булево - Отключение автоматической высоты +// МаксимальнаяВысота - Число - Максимальная высота элемента на форме, работает если отключена АвтоМаксимальнаяВысота +// РастягиватьПоГоризонтали - Булево - Если требуется принудительно задать автоматическое растягивание по ширине +// РастягиватьПоВертикали - Булево - Если требуется принудительно задать автоматическое растягивание по высоте +// ШифрГоризонтальногоПоложенияВЯчейке - Число - Принимаемые значения: +// 1 - Лево +// 2 - Центр +// 3 - Право +// 0 - Авто +// ШифрГоризонтальногоПоложенияВШапке - Число - Принимаемые значения: +// 1 - Лево +// 2 - Центр +// 3 - Право +// 0 - Авто +// ШифрГоризонтальноогоПоложенияВПодвале - Число - Принимаемые значения: +// 1 - Лево +// 2 - Центр +// 3 - Право +// 0 - Авто +// +// Возвращаемое значение: +// Структура - Структура свойств расположение: +// * Ширина - Число - ширина +// * Высота - Число - высота +// * АвтоМаксимальнаяШирина - Булево - максимальная ширина +// * МаксимальнаяШирина - Число - максимальная ширина +// * АвтоМаксимальнаяВысота - Булево - максимальная высота +// * МаксимальнаяВысота - Число - максимальная высота +// * РастягиватьПоГоризонтали - Булево - растягивать +// * РастягиватьПоВертикали - Булево - растягивать +// * ГоризонтальноеПоложение - ГоризонтальноеПоложениеЭлемента - положение +// * ГоризонтальноеПоложениеВШапке - ГоризонтальноеПоложениеЭлемента - положение +// * ГоризонтальноеПоложениеВПодвале - ГоризонтальноеПоложениеЭлемента - положение +Функция СвойстваЭлементаРасположение(Ширина = Неопределено, Высота = Неопределено, + АвтоМаксимальнаяШирина = Неопределено, МаксимальнаяШирина = Неопределено, + АвтоМаксимальнаяВысота = Неопределено, МаксимальнаяВысота = Неопределено, + РастягиватьПоГоризонтали = Неопределено, РастягиватьПоВертикали = Неопределено, + ШифрГоризонтальногоПоложенияВЯчейке = Неопределено, + ШифрГоризонтальногоПоложенияВШапке = Неопределено, ШифрГоризонтальноогоПоложенияВПодвале = Неопределено) Экспорт + + СвойстваЭлемента = Новый Структура; + + Если Ширина <> Неопределено Тогда + СвойстваЭлемента.Вставить("Ширина", Ширина); + КонецЕсли; + Если Высота <> Неопределено Тогда + СвойстваЭлемента.Вставить("Высота", Высота); + КонецЕсли; + Если АвтоМаксимальнаяШирина <> Неопределено Тогда + СвойстваЭлемента.Вставить("АвтоМаксимальнаяШирина", АвтоМаксимальнаяШирина); + КонецЕсли; + Если МаксимальнаяШирина <> Неопределено Тогда + СвойстваЭлемента.Вставить("МаксимальнаяШирина", МаксимальнаяШирина); + КонецЕсли; + Если АвтоМаксимальнаяВысота <> Неопределено Тогда + СвойстваЭлемента.Вставить("АвтоМаксимальнаяВысота", АвтоМаксимальнаяВысота); + КонецЕсли; + Если МаксимальнаяВысота <> Неопределено Тогда + СвойстваЭлемента.Вставить("МаксимальнаяВысота", МаксимальнаяВысота); + КонецЕсли; + Если РастягиватьПоГоризонтали <> Неопределено Тогда + СвойстваЭлемента.Вставить("РастягиватьПоГоризонтали", РастягиватьПоГоризонтали); + КонецЕсли; + Если РастягиватьПоВертикали <> Неопределено Тогда + СвойстваЭлемента.Вставить("РастягиватьПоВертикали", РастягиватьПоВертикали); + КонецЕсли; + Если ШифрГоризонтальногоПоложенияВЯчейке <> Неопределено Тогда + СвойстваЭлемента.Вставить("ГоризонтальноеПоложение", + ГоризонтальноеПоложениеПоШифру(ШифрГоризонтальногоПоложенияВЯчейке)); + КонецЕсли; + Если ШифрГоризонтальногоПоложенияВШапке <> Неопределено Тогда + СвойстваЭлемента.Вставить("ГоризонтальноеПоложениеВШапке", + ГоризонтальноеПоложениеПоШифру(ШифрГоризонтальногоПоложенияВШапке)); + КонецЕсли; + Если ШифрГоризонтальноогоПоложенияВПодвале <> Неопределено Тогда + СвойстваЭлемента.Вставить("ГоризонтальноеПоложениеВПодвале", + ГоризонтальноеПоложениеПоШифру(ШифрГоризонтальноогоПоложенияВПодвале)); + КонецЕсли; + + Возврат СвойстваЭлемента; + +КонецФункции + +// Формирует свойства таблицы формы // // Параметры: -// Отображение - ОтображениеТаблицы - Отображение данных в таблице -// РежимВводаСтрок - РежимВводаСтрокТаблицы - Режим ввода строк в таблице -// РежимВыделения - РежимВыделенияТаблицы - Определяет режим выделения строк в таблице -// РежимВыделенияСтроки - РежимВыделенияСтрокиТаблицы - Определяет режим выделения строки в таблице -// Шапка - Булево - Определяет наличие шапки у таблицы -// Подвал - Булево - Определяет наличие подвала у таблицы -// АвтоВводНовойСтроки - Булево - Содержит признак автоматического ввода новой строки после заполнения текущей -// ВысотаВСтрокахТаблицы - Число - Содержит высоту таблицы. Задается в строках. Указывает количество строк, отображаемых в области данных таблицы. Таблица занимает такую высоту, чтобы разместились шапка, подвал и заданное число строк в области данных. Число строк в общем случае не является числом записей данных, отображаемых в таблице, так как одна запись данных может выводиться в несколько строк таблицы. Более того, разные строки данных могут занимать разную высоту -Функция СтруктураСвойствТаблицыФормы(Отображение = Неопределено, - РежимВводаСтрок = Неопределено, - РежимВыделения = Неопределено, - РежимВыделенияСтроки = Неопределено, - Шапка = Неопределено, - Подвал = Неопределено, - АвтоВводНовойСтроки = Неопределено, - ВысотаВСтрокахТаблицы = Неопределено) Экспорт - - СтруктураСвойств = Новый Структура; - - Если Отображение <> Неопределено Тогда СтруктураСвойств.Вставить("Отображение",Отображение) КонецЕсли; - Если РежимВводаСтрок <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВводаСтрок",РежимВводаСтрок) КонецЕсли; - Если РежимВыделения <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВыделения",РежимВыделения) КонецЕсли; - Если РежимВыделенияСтроки <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВыделенияСтроки",РежимВыделенияСтроки) КонецЕсли; - Если Шапка <> Неопределено Тогда СтруктураСвойств.Вставить("Шапка",Шапка) КонецЕсли; - Если Подвал <> Неопределено Тогда СтруктураСвойств.Вставить("Подвал",Подвал) КонецЕсли; - Если АвтоВводНовойСтроки <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоВводНовойСтроки",АвтоВводНовойСтроки) КонецЕсли; - Если ВысотаВСтрокахТаблицы <> Неопределено Тогда СтруктураСвойств.Вставить("ВысотаВСтрокахТаблицы",ВысотаВСтрокахТаблицы) КонецЕсли; - - Возврат СтруктураСвойств; +// Отображение - ОтображениеТаблицы - Отображение данных в таблице +// РежимВводаСтрок - РежимВводаСтрокТаблицы - Режим ввода строк в таблице +// РежимВыделения - РежимВыделенияТаблицы - Определяет режим выделения строк в таблице +// РежимВыделенияСтроки - РежимВыделенияСтрокиТаблицы - Определяет режим выделения строки в таблице +// Шапка - Булево - Определяет наличие шапки у таблицы +// Подвал - Булево - Определяет наличие подвала у таблицы +// АвтоВводНовойСтроки - Булево - Содержит признак автоматического ввода новой строки после заполнения текущей +// ВысотаВСтрокахТаблицы - Число - Содержит высоту таблицы. Задается в строках. +// Указывает количество строк, отображаемых в области данных таблицы. Таблица занимает такую высоту, +// чтобы разместились шапка, подвал и заданное число строк в области данных. +// Число строк в общем случае не является числом записей данных, отображаемых в таблице, +// так как одна запись данных может выводиться в несколько строк таблицы. +// Более того, разные строки данных могут занимать разную высоту. +// +// Возвращаемое значение: +// Структура - Структура свойств таблицы формы: +// * Отображение - ОтображениеТаблицы - отображение в таблице +// * РежимВводаСтрок - РежимВводаСтрокТаблицы - режим ввода строк +// * РежимВыделения - РежимВыделенияТаблицы - режим выделения +// * РежимВыделенияСтроки - РежимВыделенияСтрокиТаблицы - режим выделения +// * Шапка - Булево - отоображение шапки +// * Подвал - Булево - отображение подвала +// * АвтоВводНовойСтроки - Булево - автовысота +// * ВысотаВСтрокахТаблицы - Число - высота в строках +Функция СвойстваЭлементаТаблицыФормы(Отображение = Неопределено, РежимВводаСтрок = Неопределено, + РежимВыделения = Неопределено, РежимВыделенияСтроки = Неопределено, + Шапка = Неопределено, Подвал = Неопределено, + АвтоВводНовойСтроки = Неопределено, ВысотаВСтрокахТаблицы = Неопределено) Экспорт + + СвойстваЭлемента = Новый Структура; + + Если Отображение <> Неопределено Тогда + СвойстваЭлемента.Вставить("Отображение", Отображение); + КонецЕсли; + Если РежимВводаСтрок <> Неопределено Тогда + СвойстваЭлемента.Вставить("РежимВводаСтрок", РежимВводаСтрок); + КонецЕсли; + Если РежимВыделения <> Неопределено Тогда + СвойстваЭлемента.Вставить("РежимВыделения", РежимВыделения); + КонецЕсли; + Если РежимВыделенияСтроки <> Неопределено Тогда + СвойстваЭлемента.Вставить("РежимВыделенияСтроки", РежимВыделенияСтроки); + КонецЕсли; + Если Шапка <> Неопределено Тогда + СвойстваЭлемента.Вставить("Шапка", Шапка); + КонецЕсли; + Если Подвал <> Неопределено Тогда + СвойстваЭлемента.Вставить("Подвал", Подвал); + КонецЕсли; + Если АвтоВводНовойСтроки <> Неопределено Тогда + СвойстваЭлемента.Вставить("АвтоВводНовойСтроки", АвтоВводНовойСтроки); + КонецЕсли; + Если ВысотаВСтрокахТаблицы <> Неопределено Тогда + СвойстваЭлемента.Вставить("ВысотаВСтрокахТаблицы", ВысотаВСтрокахТаблицы); + КонецЕсли; + + Возврат СвойстваЭлемента; КонецФункции #КонецОбласти +#Область УстановкаСвойствИСобытий + +// устанавливает множество свойств элементу, +// сначала первый параметр, затем второй, таким образом последующий параметр имеет больший приоритет перед меньшим. +// +// Параметры: +// Элемент - ГруппаФормы, ПолеФормы, ДекорацияФормы, ТаблицаФормы - элемент формы +// СвойстваЭлемента1 - Структура - набор свойств элемента +// СвойстваЭлемента2 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента3 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента4 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента5 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента6 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента7 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента8 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента9 - Структура, Неопределено - набор свойств элемента +// СвойстваЭлемента10 - Структура, Неопределено - набор свойств элемента +// +Процедура УстановитьМножествоСтруктурСвойствЭлементу(Элемент, СвойстваЭлемента1, + СвойстваЭлемента2 = Неопределено, СвойстваЭлемента3 = Неопределено, СвойстваЭлемента4 = Неопределено, + СвойстваЭлемента5 = Неопределено, СвойстваЭлемента6 = Неопределено, СвойстваЭлемента7 = Неопределено, + СвойстваЭлемента8 = Неопределено, СвойстваЭлемента9 = Неопределено, СвойстваЭлемента10 = Неопределено) Экспорт + + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента1); + Если СвойстваЭлемента2 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента2); + КонецЕсли; + Если СвойстваЭлемента3 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента3); + КонецЕсли; + Если СвойстваЭлемента4 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента4); + КонецЕсли; + Если СвойстваЭлемента5 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента5); + КонецЕсли; + Если СвойстваЭлемента6 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента6); + КонецЕсли; + Если СвойстваЭлемента7 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента7); + КонецЕсли; + Если СвойстваЭлемента8 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента8); + КонецЕсли; + Если СвойстваЭлемента9 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента9); + КонецЕсли; + Если СвойстваЭлемента10 <> Неопределено Тогда + УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента10); + КонецЕсли; + +КонецПроцедуры + +// Устанавливает свойства элементу формы. +// +// Параметры: +// Элемент - КомандаФормы, ГруппаФормы, ПолеФормы, КнопкаФормы, ДекорацияФормы, ТаблицаФормы - Элемент +// СвойстваЭлемента - Структура - Структура свойств +Процедура УстановитьСвойстваЭлементу(Элемент, СвойстваЭлемента) Экспорт + + Для Каждого КлючЗначение Из СвойстваЭлемента Цикл + Элемент[КлючЗначение.Ключ] = КлючЗначение.Значение; + КонецЦикла; + +КонецПроцедуры + +// Устанавливает события элементу. +// +// Параметры: +// Элемент - ГруппаФормы, ПолеФормы, КнопкаФормы, ДекорацияФормы, ТаблицаФормы - Элемент +// СобытияЭлемента - Структура - Структура событий +Процедура УстановитьСобытияЭлементу(Элемент, СобытияЭлемента) Экспорт + + Для Каждого КлючЗначение Из СобытияЭлемента Цикл + Элемент.УстановитьДействие(КлючЗначение.Ключ, КлючЗначение.Значение); + КонецЦикла; + +КонецПроцедуры + +// Установить параметры запросу. +// +// Параметры: +// РеквизитДинамическийСписок - ДинамическийСписок - реквизит формы +// ПараметрыЗапроса - Структура - Параметры запроса +Процедура УстановитьПараметрыЗапросу(РеквизитДинамическийСписок, ПараметрыЗапроса) Экспорт + + Для Каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл + РеквизитДинамическийСписок.Параметры.УстановитьЗначениеПараметра( + ПараметрЗапроса.Ключ, ПараметрЗапроса.Значение); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции -// Функция - Очистить от запрещенных символов + +#Область ВспомогательныеФункции + +Процедура ПривестиНеопределеноКСтруктуре(ТекущаяСруктура) + + Если ТекущаяСруктура = Неопределено Тогда + ТекущаяСруктура = Новый Структура; + КонецЕсли; + +КонецПроцедуры + +Процедура ОпределитьЭлементФормы(Форма, Элемент) + + Если Элемент = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(Элемент) = Тип("Строка") Тогда + // может прийти "ИмяТаблицы.КоманднаяПанель" + Иерархия = СтрРазделить(Элемент, "."); + Элемент = Форма.Элементы; + Для Каждого Шаг Из Иерархия Цикл + Элемент = Элемент[Шаг]; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьСостояниеРастягиванияЭлементаПоГоризонтали(Элемент, Состояние) + + Если Состояние = 1 Тогда + Элемент.РастягиватьПоГоризонтали = Истина; + ИначеЕсли Состояние = 2 Тогда + Элемент.РастягиватьПоГоризонтали = Ложь; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьСостояниеРастягиванияЭлементаПоВертикали(Элемент, Состояние) + + Если Состояние = 1 Тогда + Элемент.РастягиватьПоВертикали = Истина; + ИначеЕсли Состояние = 2 Тогда + Элемент.РастягиватьПоВертикали = Ложь; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьСостояниеГруппировкиЭлемента(Элемент, Состояние) + + Если Состояние = 1 Тогда + Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + ИначеЕсли Состояние = 2 Тогда + Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; + ИначеЕсли Состояние = 3 Тогда + Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьСостояниеГруппировкиКолонкиЭлемента(Элемент, Состояние) + + Если Состояние = 1 Тогда + Элемент.Группировка = ГруппировкаКолонок.Горизонтальная; + ИначеЕсли Состояние = 2 Тогда + Элемент.Группировка = ГруппировкаКолонок.Вертикальная; + ИначеЕсли Состояние = 3 Тогда + Элемент.Группировка = ГруппировкаКолонок.ВЯчейке; + КонецЕсли; + +КонецПроцедуры + +Функция СоздатьЭлементФормы(Форма, ИмяЭлемента, ТипЭлемента, РодительЭлемента, ЭлементПеред = Неопределено) + + Если ЭлементПеред = Неопределено Тогда + НовыйЭлемент = Форма.Элементы.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента), + ТипЭлемента, РодительЭлемента); + Иначе + НовыйЭлемент = Форма.Элементы.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента), + ТипЭлемента, РодительЭлемента, ЭлементПеред); + КонецЕсли; + + Возврат НовыйЭлемент; +КонецФункции + +Процедура СоздатьКолонкиДляТаблицыФормы(Форма, ТаблицаФормы, СтруктураКолонок, ЭтоДС = Ложь) + + ИмяСписка = ТаблицаФормы.Имя; + Для Каждого тКолонка Из СтруктураКолонок Цикл + + ИмяКолонки = тКолонка.Ключ; + НоваяКолонкаТаблицы = СоздатьЭлементФормы(Форма, ИмяСписка + ИмяКолонки, Тип("ПолеФормы"), ТаблицаФормы); + НоваяКолонкаТаблицы.Вид = ?(ЭтоДС, ВидПоляФормы.ПолеНадписи, ВидПоляФормы.ПолеВвода); + Если тКолонка.Значение <> "" Тогда + НоваяКолонкаТаблицы.Заголовок = тКолонка.Значение; + КонецЕсли; + + НоваяКолонкаТаблицы.ПутьКДанным = ТаблицаФормы.ПутьКДанным + "." + ИмяКолонки; + + КонецЦикла; + +КонецПроцедуры + +#Область Шифры + +// Горизонтальное положение по шифру. +// +// Параметры: +// ШифрПоложения - Число - может принимать значения +// 1 - Лево +// 2 - Центр +// 3 - Право +// другое - Авто + +// +// Возвращаемое значение: +// ГоризонтальноеПоложениеЭлемента - Горизонтальное положение по шифру +Функция ГоризонтальноеПоложениеПоШифру(ШифрПоложения) + + Если ШифрПоложения = 1 Тогда + Положение = ГоризонтальноеПоложениеЭлемента.Лево; + ИначеЕсли ШифрПоложения = 2 Тогда + Положение = ГоризонтальноеПоложениеЭлемента.Центр; + ИначеЕсли ШифрПоложения = 3 Тогда + Положение = ГоризонтальноеПоложениеЭлемента.Право; + Иначе + Положение = ГоризонтальноеПоложениеЭлемента.Авто; + КонецЕсли; + + Возврат Положение; + +КонецФункции + +// Вид поля по шифру. +// +// Параметры: +// ШифрВидаПоля - Число - может принимать значения +// 1 - ПолеВвода +// 2 - ПолеФлажка +// 3 - ПолеИндикатора +// 4 - ПолеПереключателя +// 5 - ПолеПериода +// 6 - ПолеHTMLДокумента +// +// Возвращаемое значение: +// ВидПоляФормы - Вид поля по шифру +Функция ВидПоляПоШифру(ШифрВидаПоля) + + Если ШифрВидаПоля = 0 Тогда + Возврат ВидПоляФормы.ПолеВвода; + КонецЕсли; + + НаборВидов = + "ПолеВвода + |ПолеФлажка + |ПолеИндикатора + |ПолеПереключателя + |ПолеПериода + |ПолеHTMLДокумента"; + ИмяВидаПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ШифрВидаПоля)); + + Возврат ВидПоляФормы[ИмяВидаПоля]; + +КонецФункции + +// Вид флажка по шифру. +// +// Параметры: +// ШифрВидаФлажка - Число - может принимать значения +// 0 - Авто +// 1 - Флажок +// 2 - Тумблер +// 3 - Выключатель // +// Возвращаемое значение: +// ВидФлажка - Вид флажка по шифру +Функция ВидФлажкаПоШифру(ШифрВидаФлажка) + + Если ШифрВидаФлажка = 0 Тогда + Возврат ВидФлажка.Флаж; + КонецЕсли; + + НаборВидов = + "Флажок + |Тумблер + |Выключатель"; + ИмяВидаФлажка = СокрЛП(СтрПолучитьСтроку(НаборВидов, ШифрВидаФлажка)); + + Возврат ВидФлажка[ИмяВидаФлажка]; + +КонецФункции + +// Вид переключателя по шифру. +// // Параметры: -// ПроверяемаяСтрока - Строка - Имя элемента -// ДопРазрешенныеСимволы - Строка - Дополнительно разрешенные символы +// ШифрВидаПереключателя - Число - может принимать значения +// 1 - Переключатель +// 2 - Тумблер // // Возвращаемое значение: -// Строка - Имя элемента очищенное от запрещенных символов +// ВидПереключателя - Вид переключателя по шифру +Функция ВидПереключателяПоШифру(ШифрВидаПереключателя) + + Если ШифрВидаПереключателя = 0 Тогда + Возврат ВидПереключателя.Переключатель; + КонецЕсли; + + НаборВидов = + "Переключатель + |Тумблер"; + ИмяВидаПереключателя = СокрЛП(СтрПолучитьСтроку(НаборВидов, ШифрВидаПереключателя)); + + Возврат ВидПереключателя[ИмяВидаПереключателя]; + +КонецФункции + +// Вид поля в колонке по шифру. +// +// Параметры: +// ШифрВидаКолонки - Число - может принимать значения +// 1 - ПолеВвода +// 2 - ПолеНадписи +// 3 - ПолеФлажка +// 4 - ПолеКартинки +// +// Возвращаемое значение: +// ВидПоляФормы - Вид поля в колонке по шифру +Функция ВидПоляВКолонкеПоШифру(ШифрВидаКолонки) + + Если ШифрВидаКолонки = 0 Тогда + Возврат ВидПоляФормы.ПолеВвода; + КонецЕсли; + + НаборВидов = + "ПолеВвода + |ПолеНадписи + |ПолеФлажка + |ПолеКартинки"; + ИмяВидаПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ШифрВидаКолонки)); + + Возврат ВидПоляФормы[ИмяВидаПоля]; + +КонецФункции + + +#КонецОбласти + +#КонецОбласти + +// Функция - Очистить от запрещенных символов +// +// Параметры: +// ПроверяемаяСтрока - Строка - Имя элемента +// ДопРазрешенныеСимволы - Строка - Дополнительно разрешенные символы +// +// Возвращаемое значение: +// Строка - Имя элемента очищенное от запрещенных символов // Функция ОчиститьОтЗапрещенныхСимволов(ПроверяемаяСтрока, ДопРазрешенныеСимволы = Неопределено) - Если НЕ ЗначениеЗаполнено(ПроверяемаяСтрока) Тогда + Если Не ЗначениеЗаполнено(ПроверяемаяСтрока) Тогда Возврат ПроверяемаяСтрока; КонецЕсли; ОчищеннаяСтрока = ""; РазрешенныеСимволы = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" + - "abcdefghijklmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM" + - "0123456789_"; + "abcdefghijklmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM" + + "0123456789_"; Если ЗначениеЗаполнено(ДопРазрешенныеСимволы) Тогда РазрешенныеСимволы = РазрешенныеСимволы + ДопРазрешенныеСимволы; КонецЕсли; - Для Сч = 1 по СтрДлина(СокрЛП(ПроверяемаяСтрока)) Цикл + Для Сч = 1 По СтрДлина(СокрЛП(ПроверяемаяСтрока)) Цикл ТекСимв = Сред(ПроверяемаяСтрока, Сч, 1); - Если Найти(РазрешенныеСимволы, ТекСимв) > 0 Тогда + Если СтрНайти(РазрешенныеСимволы, ТекСимв) > 0 Тогда ОчищеннаяСтрока = ОчищеннаяСтрока + ТекСимв; КонецЕсли; КонецЦикла; - + Возврат ОчищеннаяСтрока; - + КонецФункции #КонецОбласти From 96972fa8224115a8b4a29705a607db1188fafb95 Mon Sep 17 00:00:00 2001 From: Ilya Kochetkov Date: Sat, 28 Sep 2024 16:31:55 +0300 Subject: [PATCH 2/3] =?UTF-8?q?Fix=20=D0=92=D0=B8=D0=B4=D0=A4=D0=BB=D0=B0?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0.=D0=A4=D0=BB=D0=B0=D0=B6=20->=20=D0=92=D0=B8?= =?UTF-8?q?=D0=B4=D0=A4=D0=BB=D0=B0=D0=B6=D0=BA=D0=B0.=D0=A4=D0=BB=D0=B0?= =?UTF-8?q?=D0=B6=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ModuleDFI.bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ModuleDFI.bsl b/ModuleDFI.bsl index 46ebc82..2b1e03f 100644 --- a/ModuleDFI.bsl +++ b/ModuleDFI.bsl @@ -1829,7 +1829,7 @@ Функция ВидФлажкаПоШифру(ШифрВидаФлажка) Если ШифрВидаФлажка = 0 Тогда - Возврат ВидФлажка.Флаж; + Возврат ВидФлажка.Флажок; КонецЕсли; НаборВидов = From 97386dea8a063e8c0b1b03f5d3950598cb1d1e2a Mon Sep 17 00:00:00 2001 From: Ilya Kochetkov Date: Sat, 28 Sep 2024 16:34:28 +0300 Subject: [PATCH 3/3] Fix Typo --- ModuleDFI.bsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ModuleDFI.bsl b/ModuleDFI.bsl index 2b1e03f..f8a4c9e 100644 --- a/ModuleDFI.bsl +++ b/ModuleDFI.bsl @@ -1653,10 +1653,10 @@ #Область ВспомогательныеФункции -Процедура ПривестиНеопределеноКСтруктуре(ТекущаяСруктура) +Процедура ПривестиНеопределеноКСтруктуре(ТекущаяСтруктура) - Если ТекущаяСруктура = Неопределено Тогда - ТекущаяСруктура = Новый Структура; + Если ТекущаяСтруктура = Неопределено Тогда + ТекущаяСтруктура = Новый Структура; КонецЕсли; КонецПроцедуры