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