Доставка товаров / Форма выбора распоряжений / Модуль формы

файл
// @strict-types

#Область ОбработчикиСобытийФормы

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если АдресРаспоряжений <> ""
		И Не ЗавершениеРаботы Тогда
		
		Структура = Новый Структура("АдресРаспоряжений", АдресРаспоряжений);
		ОповеститьОВыборе(Структура);
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Выбрать(Команда)
	
	ПоместитьРаспоряженияВХранилище();
	Закрыть(КодВозвратаДиалога.OK);
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьВсе(Команда)
	
	Для Каждого Стр Из Распоряжения Цикл
		Стр.Выбран = Истина;
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура СнятьВсе(Команда)
	
	Для Каждого Стр Из Распоряжения Цикл
		Стр.Выбран = Ложь;
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ПоместитьРаспоряженияВХранилище();
	// В исходной строке пункта маршрута должно остаться хотя бы одно распоряжение
	Если Распоряжения.НайтиСтроки(Новый Структура("Выбран",Ложь)).Количество() > 0
		  И Распоряжения.НайтиСтроки(Новый Структура("Выбран",Истина)).Количество() > 0 Тогда
		ТаблицаВыбранных = РеквизитФормыВЗначение("Распоряжения").Скопировать(Новый Структура("Выбран", Истина));
		АдресРаспоряжений = ПоместитьВоВременноеХранилище(ТаблицаВыбранных, УникальныйИдентификатор);
	КонецЕсли;
КонецПроцедуры

#КонецОбласти

Связанные материалы