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