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