epf_QueryConsole/src/ИнструментыРазработчикаКонс.../Forms/МоментВремени/Ext/Form/Module.bsl

119 lines
6.7 KiB
Plaintext

#Область ОбработчикиСобытий
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбработкаОбъект = ОбъектОбработки();
Объект.ПутьКФормам = ОбработкаОбъект.Метаданные().ПолноеИмя() + ".Форма";
// Считывание параметров передачи.
ПараметрыПередачи = ПолучитьИзВременногоХранилища(Параметры.АдресХранилища);
Объект.Запросы.Загрузить(ПараметрыПередачи.Запросы);
Объект.Параметры.Загрузить(ПараметрыПередачи.Параметры);
Объект.ИмяФайла = ПараметрыПередачи.ИмяФайла;
ИдентификаторТекущегоЗапроса = ПараметрыПередачи.ИдентификаторТекущегоЗапроса;
ИдентификаторТекущегоПараметра = ПараметрыПередачи.ИдентификаторТекущегоПараметра;
Попытка // Если форма открывается не из главной формы.
МоментВремени = ЗначениеИзСтрокиВнутр(Параметры.Значение);
Дата = МоментВремени.Дата;
Ссылка = МоментВремени.Ссылка;
Исключение
ЗаполнитьЗначения();
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////
// КОМАНДЫ
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ВыгрузитьМоментВремениСервер();
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Функция ОбъектОбработки()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
&НаКлиенте
Процедура ВыгрузитьМоментВремениСервер()
Владелец = ЭтотОбъект.ВладелецФормы;
ИмяФормыВладельца = Владелец.ИмяФормы;
ИмяОсновнойФормы = Объект.ПутьКФормам + ".Форма";
Если ИмяФормыВладельца = ИмяОсновнойФормы Тогда
ПараметрыПередачи = ПоместитьЗапросыВСтруктуру(ИдентификаторТекущегоЗапроса, ИдентификаторТекущегоПараметра);
Закрыть();
Владелец.Модифицированность = Истина;
Оповестить("ВыгрузитьЗапросыВРеквизиты", ПараметрыПередачи);
Иначе
ПредставлениеМоментаВремени = "";
ВнутрМоментВремени = ВнутрЗначениеОбъектаМВ(ПредставлениеМоментаВремени);
Закрыть();
ПараметрыПередачи = Новый Структура("ВнутрМоментВремени, ПредставлениеМоментаВремени",
ВнутрМоментВремени, ПредставлениеМоментаВремени);
Оповестить("ПолучениеМоментаВремени", ПараметрыПередачи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПоместитьЗапросыВСтруктуру(ИдентификаторЗапроса, ИдентификаторПараметра)
ПараметрыФормы = Объект.Параметры;
ПредставлениеМоментаВремени = "";
Для каждого Стр Из ПараметрыФормы Цикл
Если Стр.Идентификатор = ИдентификаторТекущегоПараметра Тогда
Стр.Тип = "МоментВремени";
Стр.Значение = ВнутрЗначениеОбъектаМВ(ПредставлениеМоментаВремени);
Стр.ТипВФорме = НСтр("ru = 'Момент времени'");
Стр.ЗначениеВФорме = ПредставлениеМоментаВремени;
КонецЕсли;
КонецЦикла;
ПараметрыПередачи = Новый Структура;
ПараметрыПередачи.Вставить("АдресХранилища", ОбъектОбработки().ПоместитьЗапросыВоВременноеХранилище(Объект,ИдентификаторЗапроса,ИдентификаторПараметра));
Возврат ПараметрыПередачи;
КонецФункции
&НаСервере
Функция ВнутрЗначениеОбъектаМВ(Представление)
МоментВремени = Новый МоментВремени(Дата, Ссылка);
Представление = ОбъектОбработки().ФормированиеПредставленияЗначения(МоментВремени);
Возврат ЗначениеВСтрокуВнутр(МоментВремени);
КонецФункции
&НаСервере
Процедура ЗаполнитьЗначения()
ПараметрыФормы = Объект.Параметры;
Для каждого ТекущийПараметр Из ПараметрыФормы Цикл
Если ТекущийПараметр.Идентификатор = ИдентификаторТекущегоПараметра Тогда
Значение = ТекущийПараметр.Значение;
Если ПустаяСтрока(Значение) Тогда
Возврат;
Иначе
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
МоментВремени = ЗначениеИзСтрокиВнутр(Значение);
Если ТипЗнч(МоментВремени) <> Тип("МоментВремени") Тогда
Возврат;
КонецЕсли;
Дата = МоментВремени.Дата;
Ссылка = МоментВремени.Ссылка;
КонецПроцедуры
#КонецОбласти