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