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