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