новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Стыковка элементов управляемой формы и пользовательских настроек СКД

  • Добавить свою разработку
 
svenderevsky
Связаться с автором
17.12.2013 15:22:53
+1
Стыковка элементов управляемой формы и пользовательских настроек СКД
Скриншоты
Описание

Стыковка элементов управляемой формы и пользовательских настроек СКД.

 

Стандартно в формах отчета управляемого приложения для отображения и редактирования пользовательских настроек применяется таблица формы. Однако такому способу не хватает эргономических качеств а, иногда и функциональности. Предлагаемый набор модулей позволяет использовать для ведения данных пользовательских настроек СКД обыкновенные элементы управляемой формы. При этом предпринята попытка максимально упростить настройку этих элементов формы.

Для реализации этих возможностей разработано 3 расширения элементов формы. Возможное их использование представлено на рисунке:

 

Расширение элемента тип 1 служит для простой привязки поля ввода, уже привязанного к какому либо реквизиту формы, к параметру данных или элементу отбора СКД, имеющему скалярный тип сравнения (равно, не равно).

Расширение элемента тип 2 для ввода параметров данных НачалоПериода и КонецПериода. При инициализации само создает требуемые реквизиты, поля ввода а так же команду и кнопку для открытия формы выбора периода и помещает эти элементы формы в указанный контейнер.

Расширение элемента тип 3 служит для ввода пользовательского отбора с видом значения, использующим список значений (в списке, не в списке, в группе из списка и т.д.). Автоматически создаются требуемые реквизиты и элементы формы.

Все расширения используют механизм сохранения пользовательских настроек, т.е. при открытии формы отчета, где они инициализированы, в элементы будут загружены значения сохраненных пользовательских настроек.

Система содержит три общих модуля СКДУП (Сервер,КлиентСервер и Клиент). Так же для работы расширения элемента тип 2 требуется общая форма для выбора периода. Эта форма должна принимать при открытии два параметра формы НачалоПериода и КонецПериода, а так же возвращать структуру с ключами НачалоПериода и КонецПериода (или Неопределено, если периода не изменялся). Для тестирования в демонстрационную конфигурацию добавлена общая форма НастройкаПериодаОтчета из 1СБухгалтерии.

Для настройки работы при обработке события ПриСозданииНаСервере формы отчета для каждого элемента расширения надо вызвать процедуру общего модуля СКДУПСервер.ИнициализироватьЭлементУправленияТипN (N = 1 или 2 или 3) в зависимости от требуемого типа расширения. Все описания параметров этих процедур и их значения по умолчанию приведены в комментариях к соответствующим процедурам модуля СКДУПСервер.

 

 &НаСервере 
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 
	 
// *********************************************************************** 
// Инициализация связи элементов формы и пользовательских настроек СКД 
// *********************************************************************** 
 
	СКДУПСервер.ИнициализироватьЭлементУправленияТип1(ЭтаФорма,"Организация"); 
	 
	СКДУПСервер.ИнициализироватьЭлементУправленияТип2(ЭтаФорма,Элементы.ГруппаНастройкаПериода); 
	 
	СКДУПСервер.ИнициализироватьЭлементУправленияТип3(ЭтаФорма,"Склад",Элементы.ОтборПоСкладам,"Организация","Владелец"); 
	 
	СКДУПСервер.ИнициализироватьЭлементУправленияТип3(ЭтаФорма,"Номенклатура",Элементы.ОтборНоменклатуры); 
	 
// *********************************************************************** 
// *********************************************************************** 
	 
КонецПроцедуры 

 

 

Пример инициализации из Демонстрационной БД.

 

Далее нужно скопировать в модуль формы отчета текст приведенный на следующем рисунке

 

 

 // *********************************************************************** 
// Вспомогательные Процедуры СКДУП 
// *********************************************************************** 
 
&НаСервере 
Процедура СКДУП_ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки) 
	СКДУПСервер.ПередЗагрузкойПользовательскихНастроекНаСервере(ЭтаФорма,Настройки); 
КонецПроцедуры 
 
&НаКлиенте 
Процедура СКДУП_ПриОткрытии(Отказ) 
	СКДУПКлиент.ПриОткрытии(ЭтаФорма); 
КонецПроцедуры 
 
&НаКлиенте 
Процедура СКДУП_ПриИзменении(Элемент) 
	СКДУПКлиент.ПриИзменении(ЭтаФорма,Элемент); 
КонецПроцедуры 
 
&НаКлиенте 
Процедура СКДУП_Команда(Команда) 
	СКДУПКлиент.ВыполнитьКоманду(ЭтаФорма,Команда); 
КонецПроцедуры 
 
&НаКлиенте 
Процедура СКДУП_НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) 
	СКДУПКлиент.НачалоВыбора(ЭтаФорма,Элемент, ДанныеВыбора, СтандартнаяОбработка); 
КонецПроцедуры 
 
// *********************************************************************** 
// *********************************************************************** 
 

 

Этот текст всегда один и тот же. Его можно скопировать из Демонстрационной БД, или занести его в  шаблоны текстов и в дальнейшем вставлять его одним кликом. Никаких привязок процедур к событиям элементов формы делать не надо.

 

И это все, что надо сделать для начала работы расширений элементов формы.  

 

 

Ключевые слова:   СКД   Пользовательские параметры   элементы управляемой формы
Файлы для скачивания
0
    ≡ к списку разработок
    Яндекс-директ