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