Выпуск продукции и выполнение работ / Форма списка / Модуль формы

файл

//++ Устарело_Производство21
#Область ОбработчикиСобытийФормы

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

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СписокКоманднаяПанель);
	// Конец ИнтеграцияС1СДокументооборотом
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	

	СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, "Список.Дата", Элементы.Дата.Имя);

	
	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
КонецПроцедуры

&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
	
	Если Параметры.Свойство("НеЗагружатьОтборы") Тогда
		Настройки.Удалить("ОтборНаправлениеВыпуска");
		Настройки.Удалить("ОтборПодразделениеОтправитель");
		Настройки.Удалить("ОтборПодразделениеПолучатель");
		Настройки.Удалить("ОтборСклад");
	КонецЕсли; 
	
КонецПроцедуры

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "Запись_ВыпускПродукции" Тогда
		// СтандартныеПодсистемы.ПодключаемыеКоманды
		ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
		// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьОтборПоНаправлениюВыпуска()
	
	ПриИзмененииНаправленияВыпуска();
	УстановитьСвойстваДинамическогоСпискаСписок();
	
КонецПроцедуры

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

&НаСервере
Процедура УстановитьСвойстваДинамическогоСпискаСписок()
	
	// Определение текста запроса.
	ЕстьОтборПоСкладу = ЗначениеЗаполнено(ОтборСклад);
	ЕстьОтборПоПодразделениюПолучателю = ЗначениеЗаполнено(ОтборПодразделениеПолучатель);
	
	ТекстЗапроса = "";
	ОтборПоРеквизитуТЧ = Неопределено;
	Если ЕстьОтборПоСкладу Или ЕстьОтборПоПодразделениюПолучателю Тогда
		
		ТекстЗапроса =
			"ВЫБРАТЬ
			|	ВыпускПродукцииПереопределяемый.Ссылка                  КАК Ссылка,
			|	ВыпускПродукцииПереопределяемый.ПометкаУдаления         КАК ПометкаУдаления,
			|	ВыпускПродукцииПереопределяемый.Номер                   КАК Номер,
			|	ВыпускПродукцииПереопределяемый.Дата                    КАК Дата,
			|	ВыпускПродукцииПереопределяемый.Проведен                КАК Проведен,
			|	ВыпускПродукцииПереопределяемый.Организация             КАК Организация,
			|	ВыпускПродукцииПереопределяемый.Распоряжение            КАК Распоряжение,
			|	ВыпускПродукцииПереопределяемый.Подразделение           КАК Подразделение,
			|	ВыпускПродукцииПереопределяемый.ВидЦены                 КАК ВидЦены,
			|	ВыпускПродукцииПереопределяемый.Ответственный           КАК Ответственный,
			|	ВыпускПродукцииПереопределяемый.Комментарий             КАК Комментарий,
			|	ВыпускПродукцииПереопределяемый.ВыпускПоРаспоряжениям   КАК ВыпускПоРаспоряжениям,
			|	
			|	ВЫБОР КОГДА ВыпускПродукцииПереопределяемый.ВыпускПоРаспоряжениям ТОГДА
			|				ВЫРАЗИТЬ(&ТекстПоРаспоряжению КАК СТРОКА(100))
			|			ИНАЧЕ
			|				ВЫРАЗИТЬ(&ТекстБезРаспоряжения КАК СТРОКА(100))
			|		КОНЕЦ КАК Выпуск,
			|		
			|	ВЫБОР КОГДА ВыпускПродукцииПереопределяемый.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад) ТОГДА
			|				ВЫРАЗИТЬ(&ВыпускПродукцииНаСклад КАК СТРОКА(100))
			|			ИНАЧЕ
			|				ВЫРАЗИТЬ(&ВыпускПродукцииВПодразделение КАК СТРОКА(100))
			|		КОНЕЦ КАК НаправлениеВыпуска
			|ИЗ
			|	Документ.ВыпускПродукции КАК ВыпускПродукцииПереопределяемый
			|ГДЕ
			|	&ПодстановкаОтборПоШапке
			|		И ИСТИНА В(
			|			ВЫБРАТЬ ПЕРВЫЕ 1
			|				ИСТИНА
			|			ИЗ
			|				Документ.ВыпускПродукции.Товары КАК Товары
			|			ГДЕ
			|				Товары.Ссылка = ВыпускПродукцииПереопределяемый.Ссылка
			|				И &ПодстановкаОтборПоТЧ = &ОтборПоРеквизитуТЧ)";
		
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПодстановкаОтборПоТЧ", "Товары." + ?(ЕстьОтборПоСкладу, "Склад", "Подразделение"));
		ОтборПоРеквизитуТЧ = ?(ЕстьОтборПоСкладу, ОтборСклад, ОтборПодразделениеПолучатель);
		
	Иначе
		
		ТекстЗапроса =
			"ВЫБРАТЬ
			|	ВыпускПродукцииПереопределяемый.Ссылка                  КАК Ссылка,
			|	ВыпускПродукцииПереопределяемый.ПометкаУдаления         КАК ПометкаУдаления,
			|	ВыпускПродукцииПереопределяемый.Номер                   КАК Номер,
			|	ВыпускПродукцииПереопределяемый.Дата                    КАК Дата,
			|	ВыпускПродукцииПереопределяемый.Проведен                КАК Проведен,
			|	ВыпускПродукцииПереопределяемый.Организация             КАК Организация,
			|	ВыпускПродукцииПереопределяемый.Распоряжение            КАК Распоряжение,
			|	ВыпускПродукцииПереопределяемый.Подразделение           КАК Подразделение,
			|	ВыпускПродукцииПереопределяемый.ВидЦены                 КАК ВидЦены,
			|	ВыпускПродукцииПереопределяемый.Ответственный           КАК Ответственный,
			|	ВыпускПродукцииПереопределяемый.Комментарий             КАК Комментарий,
			|	ВыпускПродукцииПереопределяемый.ВыпускПоРаспоряжениям   КАК ВыпускПоРаспоряжениям,
			|	
			|	ВЫБОР КОГДА ВыпускПродукцииПереопределяемый.ВыпускПоРаспоряжениям ТОГДА
			|				ВЫРАЗИТЬ(&ТекстПоРаспоряжению КАК СТРОКА(100))
			|			ИНАЧЕ
			|				ВЫРАЗИТЬ(&ТекстБезРаспоряжения КАК СТРОКА(100))
			|		КОНЕЦ КАК Выпуск,
			|		
			|	ВЫБОР КОГДА ВыпускПродукцииПереопределяемый.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад) ТОГДА
			|				ВЫРАЗИТЬ(&ВыпускПродукцииНаСклад КАК СТРОКА(100))
			|			ИНАЧЕ
			|				ВЫРАЗИТЬ(&ВыпускПродукцииВПодразделение КАК СТРОКА(100))
			|		КОНЕЦ КАК НаправлениеВыпуска
			|ИЗ
			|	Документ.ВыпускПродукции КАК ВыпускПродукцииПереопределяемый
			|ГДЕ
			|	&ПодстановкаОтборПоШапке";
		
	КонецЕсли;
	
	ПараметрыЗапроса = Новый Структура();
	
	ОтборыПоШапкеТекст = Новый Массив();
	Если ИспользуетсяОтборПоСпискуДокументов Тогда
		ОтборыПоШапкеТекст.Добавить("ВыпускПродукцииПереопределяемый.Ссылка В (&Ссылки)");
		ПараметрыЗапроса.Вставить("Ссылки", СписокДокументов.ВыгрузитьЗначения());
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ОтборПодразделениеОтправитель) Тогда
		ОтборыПоШапкеТекст.Добавить("ВыпускПродукцииПереопределяемый.Подразделение = &ОтборПодразделение");
		ПараметрыЗапроса.Вставить("ОтборПодразделение", ОтборПодразделениеОтправитель);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ОтборНаправлениеВыпуска) Тогда
		ОтборыПоШапкеТекст.Добавить("ВыпускПродукцииПереопределяемый.НаправлениеВыпуска = &ОтборНаправлениеВыпуска");
		ПараметрыЗапроса.Вставить("ОтборНаправлениеВыпуска", ОтборНаправлениеВыпуска);
	КонецЕсли;
	
	Если ОтборыПоШапкеТекст.Количество() = 0 Тогда
		ОтборыПоШапкеТекст.Добавить("ИСТИНА");
	КонецЕсли;
	
	ПараметрыЗапроса.Вставить("ОтборПоРеквизитуТЧ", ОтборПоРеквизитуТЧ);
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПодстановкаОтборПоШапке", СтрСоединить(ОтборыПоШапкеТекст, " И "));
	
	// Установка параметров динамического списка.
	
	СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
	СвойстваСписка.ОсновнаяТаблица              = "Документ.ВыпускПродукции";
	СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
	СвойстваСписка.ТекстЗапроса                 = ТекстЗапроса;
	ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
	
	Для Каждого Элемент Из ПараметрыЗапроса Цикл
		ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, Элемент.Ключ, Элемент.Значение);
	КонецЦикла;
	
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ТекстПоРаспоряжению",           НСтр("ru = 'По заказу'"));
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ТекстБезРаспоряжения",          НСтр("ru = 'Без заказа'"));
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ВыпускПродукцииНаСклад",        НСтр("ru = 'На склад'"));
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ВыпускПродукцииВПодразделение", НСтр("ru = 'В подразделение'"));
	
КонецПроцедуры


#КонецОбласти
//-- Устарело_Производство21

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