Приходный ордер на товары / Форма выбора документа отгрузки / Модуль формы

файл

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

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

	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапки

&НаКлиенте
Процедура ПериодВариантПриИзменении(Элемент)
	
	ОбновитьСписок();
	
КонецПроцедуры

&НаКлиенте
Процедура СкладПриИзменении(Элемент)
	
	ОбновитьСписок();
	
КонецПроцедуры

&НаКлиенте
Процедура ДокументыОтгрузкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	ПриВыбореЗначения();
КонецПроцедуры

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

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

&НаКлиенте
Процедура Выбрать(Команда)
	ПриВыбореЗначения();
КонецПроцедуры

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

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

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

&НаСервере
Процедура ОбновитьСписок()
	ТекстЗапроса =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	|	ТИПЗНАЧЕНИЯ(ДанныеРегистра.ДокументОтгрузки) КАК ТипДокумента,
	|	ДанныеРегистра.ДокументОтгрузки КАК Ссылка,
	|	ДанныеРегистра.Получатель,
	|	ДанныеРегистра.ДокументОтгрузки.Номер КАК Номер,
	|	ДанныеРегистра.ДокументОтгрузки.Дата КАК Дата,
	|	ЗаданиеНаПеревозкуРаспоряжения.Ссылка КАК ЗаданиеНаПеревозку
	|ИЗ
	|	РегистрНакопления.ТоварыКОтгрузке.Обороты(
	|			&ДатаНачала,
	|			&ДатаОкончания,
	|			,
	|			(Номенклатура = &Номенклатура
	|				ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
	|				И (Характеристика = &Характеристика
	|					ИЛИ &Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
	|				И (Склад = &Склад
	|					ИЛИ &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))) КАК ДанныеРегистра
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаданиеНаПеревозку.Распоряжения КАК ЗаданиеНаПеревозкуРаспоряжения
	|		ПО ДанныеРегистра.ДокументОтгрузки = ЗаданиеНаПеревозкуРаспоряжения.Распоряжение
	|			И (ЗаданиеНаПеревозкуРаспоряжения.Ссылка.Проведен)
	|
	|УПОРЯДОЧИТЬ ПО
	|	ДанныеРегистра.ДокументОтгрузки.Дата УБЫВ";
	
	Запрос = Новый Запрос;
	Запрос.Текст = ТекстЗапроса;
	Запрос.УстановитьПараметр("Склад", Склад);
	Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания);
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	Запрос.УстановитьПараметр("Характеристика", Характеристика);
	ДокументыОтгрузки.Загрузить(Запрос.Выполнить().Выгрузить());
	
КонецПроцедуры

&НаКлиенте
Процедура ПриВыбореЗначения()
	Если Не ОтбиратьПоТовару Тогда
		МассивСсылок = Новый Массив;
		Для Каждого СтрИД Из Элементы.ДокументыОтгрузки.ВыделенныеСтроки Цикл
			МассивСсылок.Добавить(Элементы.ДокументыОтгрузки.ДанныеСтроки(СтрИД).Ссылка);
		КонецЦикла;
		ОповеститьОВыборе(МассивСсылок);
	ИначеЕсли Элементы.ДокументыОтгрузки.ТекущиеДанные <> Неопределено Тогда
		ОповеститьОВыборе(Элементы.ДокументыОтгрузки.ТекущиеДанные.Ссылка);
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДокументыОтгрузкиЗаданиеНаПеревозку.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокументыОтгрузки.ЗаданиеНаПеревозку");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<без задания на перевозку>'"));
	
КонецПроцедуры

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

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