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