Рассылка актов сверки

Пакетная отправка актов сверки взаиморасчетов на электронную почту партнеров.

Разработка пригодится для компаний с достаточно большим количеством партнеров, осуществляющим регламентную сверку с партнерами с некоторой периодичностью. Принцип работы: в журнале документов актов сверок помечается произвольное количество документов и по кнопке "Отправить" производится отправка на адреса электронной почты партнеров, указанных в карточке, файлов сверки расчетов в формате PDF. Возможен предварительный просмотр печатной формы, которая будет отправлена. В настройках возможно указать учетную запись, от которой будет производиться отправка, тему и текст письма. Возможна отправка печатной формы актов с прикреплением факсимиле. Разработка тестировалась на релизах Управление торговлей 11.3 (11.3.4.124), Управление торговлей 11.4 (11.4.6.166). Отличия печатной форма, по сравнению с штатной — выведена секция "Обороты за период". Для получения факсимиле необходимо для организации добавить присоединенный файл с наименованием "ФаксимилеСверкаВзаиморасчетов":

Вид форма списка (возможно дополнительно вывести колонки Организация, Контрагент, Менеджер (из документа), Основной менеджер (из карточки партнера)):

Описание принципа работы

Выполнено в форме внешней обработки. 

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации=дополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.2.56");
ПараметрыРегистрации.Вид=дополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
ПараметрыРегистрации.Информация="Отправка актов сверки";
ПараметрыРегистрации.Назначение.Добавить("Документ.СверкаВзаиморасчетов");
ПараметрыРегистрации.Версия="19.04.19";
ПараметрыРегистрации.БезопасныйРежим=ложь;
Команда=ПараметрыРегистрации.Команды.Добавить();
Команда.Представление="Отправка актов сверки";
Команда.Идентификатор="ОтправкаАктовСверкиУТ11_4_is";
Команда.Использование=дополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
возврат ПараметрыРегистрации;


КонецФункции

 

 

 Запрос динамического списка

Свойство для хранения признака, что акт отправлен — создается один раз при первом открытии формы:

 

 При создании на сервере

 

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ЗаголовокСвойства="Состояние отправки сверки взаиморасчетов (ol)";
ВидСвойства_СостоянияОтправкиСверкиВзаиморасчетов=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ЗаголовокСвойства,истина);
// создадим автоматом
если не значениезаполнено(ВидСвойства_СостоянияОтправкиСверкиВзаиморасчетов) тогда
об=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
об.Наименование=ЗаголовокСвойства;
об.Заголовок=ЗаголовокСвойства;
если не метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.Реквизиты.Найти("Имя")=неопределено тогда
об.Имя=сокрп(об.Заголовок)+сокрлп(новый УникальныйИдентификатор);
КонецЕсли;
об.Виден=истина;
об.Доступен=истина;
об.ТипЗначения=новый описаниетипов("Булево");
об.ЭтоДополнительноеСведение=истина;
об.Записать();
ВидСвойства_СостоянияОтправкиСверкиВзаиморасчетов=об.Ссылка;

КонецЕсли;
СписокДокументов.Параметры.УстановитьЗначениеПараметра("ВидСвойства_СостоянияОтправкиСверкиВзаиморасчетов",ВидСвойства_СостоянияОтправкиСверкиВзаиморасчетов);

...

КонецПроцедуры

 

 

Скрин формы обработки в конфигураторе

 

Процедуры и функции, используемые в форме обработки:

 

 Основные функции отправки

 

 Вспомогательные процедуры

Модуль обработки — здесь формируется сам Табличный документ, который будет впоследствии отправлен

 

 Модуль обработки

 

Перем ЭтоУТ11_4;

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации=дополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.2.56");
ПараметрыРегистрации.Вид=дополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
ПараметрыРегистрации.Информация="Отправка актов сверки";
ПараметрыРегистрации.Назначение.Добавить("Документ.СверкаВзаиморасчетов");
ПараметрыРегистрации.Версия="19.04.19";
ПараметрыРегистрации.БезопасныйРежим=ложь;
Команда=ПараметрыРегистрации.Команды.Добавить();
Команда.Представление="Отправка актов сверки";
Команда.Идентификатор="ОтправкаАктовСверкиУТ11_4_is";
Команда.Использование=дополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
возврат ПараметрыРегистрации;

// история
// 01.06.19: создан


КонецФункции

// { ol
Функция ПолучитьФайлФаксимиле(Организация)
запрос=новый запрос;
запрос.Текст=
"ВЫБРАТЬ ПЕРВЫЕ 1
| ОрганизацииПрисоединенныеФайлы.Ссылка
|
|ИЗ
| Справочник.ОрганизацииПрисоединенныеФайлы КАК ОрганизацииПрисоединенныеФайлы
|где ВладелецФайла=&Организация
| и Наименование=""ФаксимилеСверкаВзаиморасчетов""
|";

запрос.УстановитьПараметр("Организация",Организация);
выборка=запрос.Выполнить().Выбрать();
если не выборка.Следующий() тогда
возврат неопределено КонецЕсли;

возврат выборка.ссылка;


КонецФункции

Функция ВывестиФаксимилеВТабличныйДокумент(Макет, ОбластьМакета, Организация, ПараметрыПечати = Неопределено) Экспорт

ОтображатьФаксимиле = Ложь;
Если ПараметрыПечати <> Неопределено И ПараметрыПечати.Свойство("ОтображатьФаксимиле") Тогда
ОтображатьФаксимиле = ПараметрыПечати.ОтображатьФаксимиле;
КонецЕсли;

Если НЕ ОтображатьФаксимиле Тогда
Возврат ложь;
КонецЕсли;

ФайлКартинки = ПолучитьФайлФаксимиле(Организация); //ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Организация, "ФайлФаксимильнаяПечать");

Если ОтображатьФаксимиле И НЕ ЗначениеЗаполнено(ФайлКартинки) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru ='Факсимиле для организации не указано.
|Укажите файл с факсимиле в карточке организации, раздел ""Настройка печати"".'"));
возврат ложь;
КонецЕсли;

Если Не ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ОбластьМакета.Рисунки, "Факсимиле") Тогда
// Картинки Факсимиле в этой области макета нет.

Если Макет.Области.Найти("ОбластьФаксимиле") <> Неопределено Тогда

// Проверить картинку факсимиле в области "ОбластьФаксимиле"
ОбластьМакетаФаксимиле = Макет.ПолучитьОбласть("ОбластьФаксимиле");
Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ОбластьМакетаФаксимиле.Рисунки, "Факсимиле")
И ЗначениеЗаполнено(ФайлКартинки) Тогда

ОбластьМакета = ОбластьМакетаФаксимиле;
Иначе
Возврат ложь;
КонецЕсли;
Иначе
Возврат ложь;
КонецЕсли;

КонецЕсли;

Если Не ЗначениеЗаполнено(ФайлКартинки) Тогда
ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.Факсимиле);
Возврат истина;
КонецЕсли;

ДвоичныеДанныеФайла = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(ФайлКартинки);

Если ТипЗнч(ДвоичныеДанныеФайла) = Тип("Картинка") Тогда
Картинка = ДвоичныеДанныеФайла;
ИначеЕсли ТипЗнч(ДвоичныеДанныеФайла) = Тип("ДвоичныеДанные") Тогда
Картинка = Новый Картинка(ДвоичныеДанныеФайла);
Иначе
Картинка = Новый Картинка;
КонецЕсли;

ОбластьМакета.Рисунки.Факсимиле.Картинка = Картинка;
возврат истина;

КонецФункции
// ol }


#Область МенеджерСверкаВзаиморасччетов
Функция ВыборкаДанныхДокумента(МассивОбъектов) Экспорт

МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Если ЗначениеЗаполнено(МассивОбъектов) Тогда
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
Иначе
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(Документы.СверкаВзаиморасчетов.ПустаяСсылка(), МенеджерВременныхТаблиц);
КонецЕсли;

ЗапросДанныеДокумента = Новый Запрос;
ЗапросДанныеДокумента.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
ЗапросДанныеДокумента.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК ДокументСсылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Партнер.НаименованиеПолное КАК ПредставлениеПартнера,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.Договор.НаименованиеДляПечати КАК ПредставлениеДоговора,
| ДанныеДокумента.НачалоПериода КАК НачалоПериода,
| ДанныеДокумента.КонецПериода КАК КонецПериода,
| ТаблицаОтветственныеЛица.РуководительНаименование КАК ФИОРуководителя,
| ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
| ДанныеДокумента.ФИОРуководителяКонтрагента КАК ФИОРуководителяКонтрагента,
| ДанныеДокумента.ДолжностьРуководителяКонтрагента КАК ДолжностьРуководителяКонтрагента,
| ДанныеДокумента.РасшифровкаПоЗаказам КАК РасшифровкаПоЗаказам,
| ДанныеДокумента.РасшифровкаПоПартнерам КАК РасшифровкаПоПартнерам,
| ДанныеДокумента.РасшифровкаПоДоговорам КАК РасшифровкаПоДоговорам
|ИЗ
| Документ.СверкаВзаиморасчетов КАК ДанныеДокумента
|  ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
|  ПО ДанныеДокумента.Ссылка = ТаблицаОтветственныеЛица.Ссылка
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| ДанныеДокумента.Дата,
| ДанныеДокумента.Номер";

ЗапросДанныеДокумента.УстановитьПараметр("МассивОбъектов", МассивОбъектов);

Возврат ЗапросДанныеДокумента.Выполнить().Выбрать();

КонецФункции

Функция ДетальныеРасчеты_11_4(ДанныеДокумента)

ЗапросНашихДанных = Новый Запрос;

ТекстЗапроса = ТекстЗапросаОтборПоАналитике() + "
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.НомерВходящегоДокумента КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата                    КАК Дата,
| ИСТИНА         КАК ЭтоВходящийДокумент
|
|ПОМЕСТИТЬ ДокументыИнтеркампани
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.Номер      КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата      КАК Дата,
| ЛОЖЬ         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Комиссионер = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.НомерВходящегоДокумента КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата                    КАК Дата,
| ИСТИНА         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.ОрганизацияПолучатель = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.Номер      КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата      КАК Дата,
| ЛОЖЬ         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| РасчетыСКлиентамиОстаткиИОбороты.Период КАК Период,
| ЕСТЬNULL(РасчетыСКлиентамиОстаткиИОбороты.Регистратор, Неопределено) КАК Документ,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР
|   КОГДА ДанныеПервичныхДокументов.Номер = """"
|    ТОГДА ДанныеПервичныхДокументов.НомерРегистратора
|   ИНАЧЕ ДанныеПервичныхДокументов.Номер
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.Номер
| КОНЕЦ КАК Номер,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ДанныеПервичныхДокументов.ДатаРегистратора
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР
|   КОГДА ДанныеПервичныхДокументов.Дата = ДАТАВРЕМЯ(1,1,1)
|    ТОГДА ДанныеПервичныхДокументов.ДатаРегистратора
|   ИНАЧЕ ДанныеПервичныхДокументов.Дата
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК ДатаВходящегоДокумента,
| РегистрАналитикаУчетаПоПартнерам.Партнер   КАК Партнер,
| РегистрАналитикаУчетаПоПартнерам.Договор  КАК Договор,
| РасчетыСКлиентамиОстаткиИОбороты.Валюта   КАК Валюта,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента ЕСТЬ NULL
|   ИЛИ РасчетыСКлиентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств ТОГДА
|   ЛОЖЬ
|  ИНАЧЕ
|   ИСТИНА
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.ЭтоВходящийДокумент
| КОНЕЦ КАК ЭтоВходящийДокумент,
| ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход < 0 ТОГДА
|  -РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход
| КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход > 0 ТОГДА
|  РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход
| КОНЕЦ КАК СуммаДолгПартнера,
| ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход < 0 ТОГДА
|  -РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход
| КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход > 0 ТОГДА
|  РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход
| КОНЕЦ КАК СуммаНашДолг,
| РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ЕСТЬNULL(РеализацияТоваровУслугРеглУчет.Организация, Неопределено) КАК ОрганизацияРеглУчет
|
|ПОМЕСТИТЬ РасчетыСПартнерами
|
|ИЗ
| РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
|   &НачалоПериодаСверки,
|   &ГраницаКонецПериода,
|   Регистратор,
|   ДвиженияИГраницыПериода,
|   АналитикаУчетаПоПартнерам В
|    (ВЫБРАТЬ
|     ОтборПоАналитике.КлючАналитики
|    ИЗ
|     ОтборПоАналитике)
| ) КАК РасчетыСКлиентамиОстаткиИОбороты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыИнтеркампани КАК ДокументыИнтеркампани
|  ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = ДокументыИнтеркампани.Документ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслугРеглУчет
|  ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = РеализацияТоваровУслугРеглУчет.Ссылка
|  И РеализацияТоваровУслугРеглУчет.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
|  И &Организация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
|  ПО РегистрАналитикаУчетаПоПартнерам.Организация = ДанныеПервичныхДокументов.Организация
|   И РасчетыСКлиентамиОстаткиИОбороты.Регистратор = ДанныеПервичныхДокументов.Документ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РасчетыСПоставщикамиОстаткиИОбороты.Период КАК Период,
| ЕСТЬNULL(РасчетыСПоставщикамиОстаткиИОбороты.Регистратор, Неопределено) КАК Документ,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР
|   КОГДА ДанныеПервичныхДокументов.Номер = """"
|    ТОГДА ДанныеПервичныхДокументов.НомерРегистратора
|   ИНАЧЕ ДанныеПервичныхДокументов.Номер
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.Номер
| КОНЕЦ КАК Номер,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ДанныеПервичныхДокументов.ДатаРегистратора
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР
|   КОГДА ДанныеПервичныхДокументов.Дата = ДАТАВРЕМЯ(1,1,1)
|    ТОГДА ДанныеПервичныхДокументов.ДатаРегистратора
|   ИНАЧЕ ДанныеПервичныхДокументов.Дата
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК ДатаВходящегоДокумента,
| РегистрАналитикаУчетаПоПартнерам.Партнер   КАК Партнер,
| РегистрАналитикаУчетаПоПартнерам.Договор  КАК Договор,
| РасчетыСПоставщикамиОстаткиИОбороты.Валюта   КАК Валюта,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента ЕСТЬ NULL
|   ИЛИ РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств ТОГДА
|   ЛОЖЬ
|  ИНАЧЕ
|   ИСТИНА
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.ЭтоВходящийДокумент
| КОНЕЦ КАК ЭтоВходящийДокумент,
| ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход < 0 ТОГДА
|  -(РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход)
| КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход> 0 ТОГДА
|  РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход
| КОНЕЦ КАК СуммаДолгПартнера,
| ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход< 0 ТОГДА
|  -(РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход)
| КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход > 0 ТОГДА
|  РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход - РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход
| КОНЕЦ КАК СуммаНашДолг,
| РасчетыСПоставщикамиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| РасчетыСПоставщикамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ЕСТЬNULL(ПриобретениеТоваровУслугРеглУчет.Организация, Неопределено) КАК ОрганизацияРеглУчет
|ИЗ
| РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(
|   &НачалоПериодаСверки,
|   &ГраницаКонецПериода,
|   Регистратор,
|   ДвиженияИГраницыПериода,
|   АналитикаУчетаПоПартнерам В
|    (ВЫБРАТЬ
|     ОтборПоАналитике.КлючАналитики
|    ИЗ
|     ОтборПоАналитике)
| ) КАК РасчетыСПоставщикамиОстаткиИОбороты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыИнтеркампани КАК ДокументыИнтеркампани
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.Регистратор = ДокументыИнтеркампани.Документ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслугРеглУчет
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.Регистратор = ПриобретениеТоваровУслугРеглУчет.Ссылка
|  И ПриобретениеТоваровУслугРеглУчет.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
|  И &Организация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
|  ПО РегистрАналитикаУчетаПоПартнерам.Организация = ДанныеПервичныхДокументов.Организация
|   И РасчетыСПоставщикамиОстаткиИОбороты.Регистратор = ДанныеПервичныхДокументов.Документ
|
|ГДЕ
| РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ЕСТЬ NULL
| ИЛИ НЕ РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата    КАК Период,
| ДанныеДокумента.Ссылка    КАК Документ,
| Расшифровка.НомерВходящегоДокумента КАК Номер,
| Расшифровка.ДатаВходящегоДокумента КАК Дата,
| Расшифровка.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| Расшифровка.Поставщик    КАК Партнер,
| ВЫБОР КОГДА Расшифровка.Заказ ССЫЛКА Справочник.ДоговорыКонтрагентов ТОГДА
|  Расшифровка.Заказ
| ИНАЧЕ
|  Расшифровка.Заказ.Договор
| КОНЕЦ        КАК Договор,
| Расшифровка.ВалютаВзаиморасчетов КАК Валюта,
| ИСТИНА        КАК ЭтоВходящийДокумент,
| Расшифровка.СуммаВзаиморасчетов  КАК СуммаДолгПартнера,
| 0         КАК СуммаНашДолг,
| 0         КАК СуммаНачальныйОстаток,
| 0         КАК СуммаКонечныйОстаток,
| Неопределено      КАК ОрганизацияРеглУчет
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Расшифровка
|  ПО Расшифровка.Ссылка = ДанныеДокумента.Ссылка
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И Расшифровка.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И (&НеИспользоватьОтборПоДоговору
|  ИЛИ ВЫБОР КОГДА Расшифровка.Заказ ССЫЛКА Справочник.ДоговорыКонтрагентов ТОГДА
|   Расшифровка.Заказ
|  ИНАЧЕ
|   Расшифровка.Заказ.Договор
|  КОНЕЦ = &Договор)
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| РасчетыСПартнерами.Период       КАК Период,
| РасчетыСПартнерами.Документ       КАК Документ,
| РасчетыСПартнерами.Номер       КАК Номер,
| РасчетыСПартнерами.Дата        КАК Дата,
| РасчетыСПартнерами.ДатаВходящегоДокумента       КАК ДатаВходящегоДокумента,
| %ПолеПартнер%
| %ПолеДоговор%
| РасчетыСПартнерами.Валюта       КАК Валюта,
| РасчетыСПартнерами.ЭтоВходящийДокумент    КАК ЭтоВходящийДокумент,
| СУММА(РасчетыСПартнерами.СуммаДолгПартнера)   КАК СуммаДолгПартнера,
| СУММА(РасчетыСПартнерами.СуммаНашДолг)   КАК СуммаНашДолг,
| СУММА(РасчетыСПартнерами.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
| СУММА(РасчетыСПартнерами.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
| РасчетыСПартнерами.ОрганизацияРеглУчет   КАК ОрганизацияРеглУчет
|ПОМЕСТИТЬ РасчетыСПартнерамиГруппировка
|ИЗ
| РасчетыСПартнерами КАК РасчетыСПартнерами
|
|СГРУППИРОВАТЬ ПО
| Период, Документ, Номер, Дата, ДатаВходящегоДокумента, %Партнер% %Договор% Валюта, ЭтоВходящийДокумент, ОрганизацияРеглУчет
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетыСПартнерами.Период                 КАК Период,
| РасчетыСПартнерами.Документ               КАК Документ,
| РасчетыСПартнерами.Номер                  КАК Номер,
| РасчетыСПартнерами.Дата                   КАК Дата,
| РасчетыСПартнерами.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| %ПолеПартнер%
| %ПолеДоговор%
| РасчетыСПартнерами.Валюта                 КАК Валюта,
| РасчетыСПартнерами.ЭтоВходящийДокумент    КАК ЭтоВходящийДокумент,
| РасчетыСПартнерами.СуммаДолгПартнера      КАК СуммаДолгПартнера,
| РасчетыСПартнерами.СуммаНашДолг           КАК СуммаНашДолг,
| РасчетыСПартнерами.СуммаНачальныйОстаток  КАК СуммаНачальныйОстаток,
| РасчетыСПартнерами.СуммаКонечныйОстаток   КАК СуммаКонечныйОстаток,
| РасчетыСПартнерами.ОрганизацияРеглУчет    КАК ОрганизацияРеглУчет
|ИЗ
| РасчетыСПартнерамиГруппировка КАК РасчетыСПартнерами
|
|УПОРЯДОЧИТЬ ПО
| Период, Документ
|
|ИТОГИ ПО
| %Партнер%
| %Договор%
| Валюта
|";

ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПолеПартнер%", ?(ДанныеДокумента.РасшифровкаПоПартнерам, "РасчетыСПартнерами.Партнер КАК Партнер,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Партнер%", ?(ДанныеДокумента.РасшифровкаПоПартнерам, "Партнер,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПолеДоговор%", ?(ДанныеДокумента.РасшифровкаПоДоговорам, "РасчетыСПартнерами.Договор КАК Договор,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Договор%", ?(ДанныеДокумента.РасшифровкаПоДоговорам, "Договор,", ""));
ЗапросНашихДанных.Текст = ТекстЗапроса;

ЗапросНашихДанных.УстановитьПараметр("НачалоПериодаСверки", ДанныеДокумента.НачалоПериода);
ЗапросНашихДанных.УстановитьПараметр("КонецПериодаСверки", КонецДня(ДанныеДокумента.КонецПериода));
ЗапросНашихДанных.УстановитьПараметр("ГраницаКонецПериода", Новый Граница(
КонецДня(ДанныеДокумента.КонецПериода)+1,
ВидГраницы.Исключая));
ЗапросНашихДанных.УстановитьПараметр("Организация",      ДанныеДокумента.Организация);
ЗапросНашихДанных.УстановитьПараметр("Контрагент",      ДанныеДокумента.Контрагент);
ЗапросНашихДанных.УстановитьПараметр("Партнер",         ДанныеДокумента.Партнер);
ЗапросНашихДанных.УстановитьПараметр("Договор",         ДанныеДокумента.Договор);
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоПартнеру", НЕ ЗначениеЗаполнено(ДанныеДокумента.Партнер));
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоДоговору", НЕ ЗначениеЗаполнено(ДанныеДокумента.Договор));

РезультатЗапросаНашихДанных = ЗапросНашихДанных.Выполнить();

Если НЕ РезультатЗапросаНашихДанных.Пустой() Тогда
ВыборкаНашихДанных = РезультатЗапросаНашихДанных.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Иначе
ВыборкаНашихДанных = Неопределено;
КонецЕсли;

Возврат ВыборкаНашихДанных;

КонецФункции

Функция ДетальныеРасчеты(ДанныеДокумента)

если ЭтоУТ11_4 тогда
попытка
// если слишком ранний релиз 11.4 - может не сработать
возврат ДетальныеРасчеты_11_4(ДанныеДокумента);
исключение
КонецПопытки;
КонецЕсли;

ЗапросНашихДанных = Новый Запрос;

ТекстЗапроса = ТекстЗапросаОтборПоАналитике() + "
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.НомерВходящегоДокумента КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата                    КАК Дата,
| Истина         КАК ЭтоВходящийДокумент
|
|ПОМЕСТИТЬ ДокументыИнтеркампани
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.Номер      КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата      КАК Дата,
| Ложь         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Комиссионер = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.НомерВходящегоДокумента КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата                    КАК Дата,
| Истина         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.ОрганизацияПолучатель = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка     КАК Документ,
| ДанныеДокумента.Номер      КАК Номер,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.Дата      КАК Дата,
| Ложь         КАК ЭтоВходящийДокумент
|ИЗ
| Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И ДанныеДокумента.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| РасчетыСКлиентамиОстаткиИОбороты.Период КАК Период,
| ЕСТЬNULL(РасчетыСКлиентамиОстаткиИОбороты.Регистратор, Неопределено) КАК Документ,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|   ЕСТЬNULL(РасчетыСКлиентамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Номер)
| ИНАЧЕ
|  ДокументыИнтеркампани.Номер
| КОНЕЦ КАК Номер,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Дата
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ЕСТЬNULL(РасчетыСКлиентамиОстаткиИОбороты.Регистратор.ДатаВходящегоДокумента,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Дата)
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК ДатаВходящегоДокумента,
| РегистрАналитикаУчетаПоПартнерам.Партнер   КАК Партнер,
| РегистрАналитикаУчетаПоПартнерам.Договор  КАК Договор,
| РасчетыСКлиентамиОстаткиИОбороты.Валюта   КАК Валюта,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента ЕСТЬ NULL
|   ИЛИ РасчетыСКлиентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств ТОГДА
|   Ложь
|  ИНАЧЕ
|   Истина
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.ЭтоВходящийДокумент
| КОНЕЦ КАК ЭтоВходящийДокумент,
| ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход < 0 ТОГДА
|  -РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход
| КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход > 0 ТОГДА
|  РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход
| КОНЕЦ КАК СуммаДолгПартнера,
| ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход < 0 ТОГДА
|  -РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход
| КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход > 0 ТОГДА
|  РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход
| КОНЕЦ КАК СуммаНашДолг,
| РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ЕСТЬNULL(РеализацияТоваровУслугРеглУчет.Организация, Неопределено) КАК ОрганизацияРеглУчет
|
|ПОМЕСТИТЬ РасчетыСПартнерами
|
|ИЗ
| РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
|   &НачалоПериодаСверки,
|   &ГраницаКонецПериода,
|   Регистратор,
|   ДвиженияИГраницыПериода,
|   АналитикаУчетаПоПартнерам В
|    (ВЫБРАТЬ
|     ОтборПоАналитике.КлючАналитики
|    ИЗ
|     ОтборПоАналитике)
| ) КАК РасчетыСКлиентамиОстаткиИОбороты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыИнтеркампани КАК ДокументыИнтеркампани
|  ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = ДокументыИнтеркампани.Документ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслугРеглУчет
|  ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = РеализацияТоваровУслугРеглУчет.Ссылка
|  И РеализацияТоваровУслугРеглУчет.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
|  И &Организация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РасчетыСПоставщикамиОстаткиИОбороты.Период КАК Период,
| ЕСТЬNULL(РасчетыСПоставщикамиОстаткиИОбороты.Регистратор, Неопределено) КАК Документ,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|   ЕСТЬNULL(РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента,
|    РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.Номер)
| ИНАЧЕ
|  ДокументыИнтеркампани.Номер
| КОНЕЦ КАК Номер,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.Дата
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|   ЕСТЬNULL(РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.ДатаВходящегоДокумента,
|    РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.Дата)
| ИНАЧЕ
|  ДокументыИнтеркампани.Дата
| КОНЕЦ КАК ДатаВходящегоДокумента,
| РегистрАналитикаУчетаПоПартнерам.Партнер   КАК Партнер,
| РегистрАналитикаУчетаПоПартнерам.Договор  КАК Договор,
| РасчетыСПоставщикамиОстаткиИОбороты.Валюта   КАК Валюта,
| ВЫБОР КОГДА ДокументыИнтеркампани.Документ ЕСТЬ NULL ТОГДА
|  ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.Регистратор.НомерВходящегоДокумента ЕСТЬ NULL
|   ИЛИ РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств ТОГДА
|   Ложь
|  ИНАЧЕ
|   Истина
|  КОНЕЦ
| ИНАЧЕ
|  ДокументыИнтеркампани.ЭтоВходящийДокумент
| КОНЕЦ КАК ЭтоВходящийДокумент,
| ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход < 0 ТОГДА
|  -РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход
| КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход > 0 ТОГДА
|  РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход
| КОНЕЦ КАК СуммаДолгПартнера,
| ВЫБОР КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход < 0 ТОГДА
|  -РасчетыСПоставщикамиОстаткиИОбороты.СуммаПриход
| КОГДА РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход > 0 ТОГДА
|  РасчетыСПоставщикамиОстаткиИОбороты.СуммаРасход
| КОНЕЦ КАК СуммаНашДолг,
| РасчетыСПоставщикамиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| РасчетыСПоставщикамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ЕСТЬNULL(ПоступлениеТоваровУслугРеглУчет.Организация, Неопределено) КАК ОрганизацияРеглУчет
|ИЗ
| РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(
|   &НачалоПериодаСверки,
|   &ГраницаКонецПериода,
|   Регистратор,
|   ДвиженияИГраницыПериода,
|   АналитикаУчетаПоПартнерам В
|    (ВЫБРАТЬ
|     ОтборПоАналитике.КлючАналитики
|    ИЗ
|     ОтборПоАналитике)
| ) КАК РасчетыСПоставщикамиОстаткиИОбороты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыИнтеркампани КАК ДокументыИнтеркампани
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.Регистратор = ДокументыИнтеркампани.Документ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслугРеглУчет
|  ПО РасчетыСПоставщикамиОстаткиИОбороты.Регистратор = ПоступлениеТоваровУслугРеглУчет.Ссылка
|  И ПоступлениеТоваровУслугРеглУчет.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
|  И &Организация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|ГДЕ
| РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ЕСТЬ NULL
| ИЛИ НЕ РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата    КАК Период,
| ДанныеДокумента.Ссылка    КАК Документ,
| Расшифровка.НомерВходящегоДокумента КАК Номер,
| Расшифровка.ДатаВходящегоДокумента КАК Дата,
| Расшифровка.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| Расшифровка.Поставщик    КАК Партнер,
| ВЫБОР КОГДА Расшифровка.Заказ ССЫЛКА Справочник.ДоговорыКонтрагентов ТОГДА
|  Расшифровка.Заказ
| ИНАЧЕ
|  Расшифровка.Заказ.Договор
| КОНЕЦ        КАК Договор,
| Расшифровка.ВалютаВзаиморасчетов КАК Валюта,
| Истина        КАК ЭтоВходящийДокумент,
| Расшифровка.СуммаВзаиморасчетов  КАК СуммаДолгПартнера,
| 0         КАК СуммаНашДолг,
| 0         КАК СуммаНачальныйОстаток,
| 0         КАК СуммаКонечныйОстаток,
| Неопределено      КАК ОрганизацияРеглУчет
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Расшифровка
|  ПО Расшифровка.Ссылка = ДанныеДокумента.Ссылка
|ГДЕ
| ДанныеДокумента.Проведен
| И ДанныеДокумента.Организация = &Организация
| И Расшифровка.Контрагент = &Контрагент
| И ДанныеДокумента.Дата МЕЖДУ &НачалоПериодаСверки И &КонецПериодаСверки
| И (&НеИспользоватьОтборПоДоговору
|  ИЛИ ВЫБОР КОГДА Расшифровка.Заказ ССЫЛКА Справочник.ДоговорыКонтрагентов ТОГДА
|   Расшифровка.Заказ
|  ИНАЧЕ
|   Расшифровка.Заказ.Договор
|  КОНЕЦ = &Договор)
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| РасчетыСПартнерами.Период       КАК Период,
| РасчетыСПартнерами.Документ       КАК Документ,
| РасчетыСПартнерами.Номер       КАК Номер,
| РасчетыСПартнерами.Дата        КАК Дата,
| РасчетыСПартнерами.ДатаВходящегоДокумента       КАК ДатаВходящегоДокумента,
| %ПолеПартнер%
| %ПолеДоговор%
| РасчетыСПартнерами.Валюта       КАК Валюта,
| РасчетыСПартнерами.ЭтоВходящийДокумент    КАК ЭтоВходящийДокумент,
| СУММА(РасчетыСПартнерами.СуммаДолгПартнера)   КАК СуммаДолгПартнера,
| СУММА(РасчетыСПартнерами.СуммаНашДолг)   КАК СуммаНашДолг,
| СУММА(РасчетыСПартнерами.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
| СУММА(РасчетыСПартнерами.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
| РасчетыСПартнерами.ОрганизацияРеглУчет   КАК ОрганизацияРеглУчет
|ПОМЕСТИТЬ РасчетыСПартнерамиГруппировка
|ИЗ
| РасчетыСПартнерами КАК РасчетыСПартнерами
|
|СГРУППИРОВАТЬ ПО
| Период, Документ, Номер, Дата, ДатаВходящегоДокумента, %Партнер% %Договор% Валюта, ЭтоВходящийДокумент, ОрганизацияРеглУчет
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетыСПартнерами.Период                 КАК Период,
| РасчетыСПартнерами.Документ               КАК Документ,
| РасчетыСПартнерами.Номер                  КАК Номер,
| РасчетыСПартнерами.Дата                   КАК Дата,
| РасчетыСПартнерами.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| %ПолеПартнер%
| %ПолеДоговор%
| РасчетыСПартнерами.Валюта                 КАК Валюта,
| РасчетыСПартнерами.ЭтоВходящийДокумент    КАК ЭтоВходящийДокумент,
| РасчетыСПартнерами.СуммаДолгПартнера      КАК СуммаДолгПартнера,
| РасчетыСПартнерами.СуммаНашДолг           КАК СуммаНашДолг,
| РасчетыСПартнерами.СуммаНачальныйОстаток  КАК СуммаНачальныйОстаток,
| РасчетыСПартнерами.СуммаКонечныйОстаток   КАК СуммаКонечныйОстаток,
| РасчетыСПартнерами.ОрганизацияРеглУчет    КАК ОрганизацияРеглУчет
|ИЗ
| РасчетыСПартнерамиГруппировка КАК РасчетыСПартнерами
|
|УПОРЯДОЧИТЬ ПО
| Период, Документ
|
|ИТОГИ ПО
| %Партнер%
| %Договор%
| Валюта
|";

ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПолеПартнер%", ?(ДанныеДокумента.РасшифровкаПоПартнерам, "РасчетыСПартнерами.Партнер КАК Партнер,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Партнер%", ?(ДанныеДокумента.РасшифровкаПоПартнерам, "Партнер,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПолеДоговор%", ?(ДанныеДокумента.РасшифровкаПоДоговорам, "РасчетыСПартнерами.Договор КАК Договор,", ""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Договор%", ?(ДанныеДокумента.РасшифровкаПоДоговорам, "Договор,", ""));
ЗапросНашихДанных.Текст = ТекстЗапроса;

ЗапросНашихДанных.УстановитьПараметр("НачалоПериодаСверки", ДанныеДокумента.НачалоПериода);
ЗапросНашихДанных.УстановитьПараметр("КонецПериодаСверки", КонецДня(ДанныеДокумента.КонецПериода));
ЗапросНашихДанных.УстановитьПараметр("ГраницаКонецПериода", Новый Граница(
КонецДня(ДанныеДокумента.КонецПериода)+1,
ВидГраницы.Исключая));
ЗапросНашихДанных.УстановитьПараметр("Организация",      ДанныеДокумента.Организация);
ЗапросНашихДанных.УстановитьПараметр("Контрагент",      ДанныеДокумента.Контрагент);
ЗапросНашихДанных.УстановитьПараметр("Партнер",         ДанныеДокумента.Партнер);
ЗапросНашихДанных.УстановитьПараметр("Договор",         ДанныеДокумента.Договор);
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоПартнеру", НЕ ЗначениеЗаполнено(ДанныеДокумента.Партнер));
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоДоговору", НЕ ЗначениеЗаполнено(ДанныеДокумента.Договор));

// { ol     адаптация под УТ 11.4
если не Метаданные.Документы.Найти("ПриобретениеТоваровУслуг")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.ПоступлениеТоваровУслуг"),"Документ.ПриобретениеТоваровУслуг");
КонецЕсли;
если не Метаданные.Документы.Найти("ПриобретениеУслугПрочихАктивов")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.ПоступлениеУслугПрочихАктивов"),"Документ.ПриобретениеУслугПрочихАктивов");
КонецЕсли;
если не Метаданные.Документы.Найти("КорректировкаПриобретения")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.КорректировкаПоступления"),"Документ.КорректировкаПриобретения");
КонецЕсли;
// ol }


РезультатЗапросаНашихДанных = ЗапросНашихДанных.Выполнить();

Если НЕ РезультатЗапросаНашихДанных.Пустой() Тогда
ВыборкаНашихДанных = РезультатЗапросаНашихДанных.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Иначе
ВыборкаНашихДанных = Неопределено;
КонецЕсли;

Возврат ВыборкаНашихДанных;

КонецФункции

Функция ВывестиДетальныеЗаписи(
ВыборкаДетальныхЗаписей,
ДанныеДокумента,
СтруктураПредставленийУчастников,
Макет,
ТаблицаЗадолженности,
ТекущийПартнер = Неопределено,
ТекущийДоговор = Неопределено)

ТабличныйДокумент = Новый ТабличныйДокумент;

ОбластьМакетаГруппировка = Макет.ПолучитьОбласть("ГруппировкаПартнерВалюта");
ОбластьМакетаШапка   = Макет.ПолучитьОбласть("ШапкаТаблицыРасчеты");
ОбластьМакетаНачОстаток  = Макет.ПолучитьОбласть("СтрокаТаблицыРасчетыНачОстаток");
ОбластьМакетаСтрока   = Макет.ПолучитьОбласть("СтрокаТаблицыРасчеты");
ОбластьМакетаКонОстаток  = Макет.ПолучитьОбласть("СтрокаТаблицыРасчетыКонОстаток");

СтрокаЗадолженности = ТаблицаЗадолженности.Добавить();
СтрокаЗадолженности.Валюта = ВыборкаДетальныхЗаписей.Валюта;
Если ТаблицаЗадолженности.Колонки.Найти("Партнер") <> Неопределено Тогда
СтрокаЗадолженности.Партнер = ?(ДанныеДокумента.РасшифровкаПоПартнерам,
ПредставлениеПартнера(ТекущийПартнер),
ПредставлениеПартнера(ДанныеДокумента.Партнер));
КонецЕсли;
Если ТаблицаЗадолженности.Колонки.Найти("Договор") <> Неопределено Тогда
СтрокаЗадолженности.Договор = ?(ДанныеДокумента.РасшифровкаПоДоговорам,
ПредставлениеДоговора(ТекущийДоговор),
ПредставлениеДоговора(ДанныеДокумента.Договор));
КонецЕсли;
Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
ОбластьМакетаГруппировка.Параметры.ПартнерВалюта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1, в валюте: %2'"), СтрокаЗадолженности.Партнер, ВыборкаДетальныхЗаписей.Валюта);
ИначеЕсли ДанныеДокумента.РасшифровкаПоДоговорам Тогда
ОбластьМакетаГруппировка.Параметры.ПартнерВалюта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1, в валюте: %2'"), СтрокаЗадолженности.Договор, ВыборкаДетальныхЗаписей.Валюта);
Иначе
ОбластьМакетаГруппировка.Параметры.ПартнерВалюта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='в валюте: %1'"), ВыборкаДетальныхЗаписей.Валюта);
КонецЕсли;

ТабличныйДокумент.Вывести(ОбластьМакетаГруппировка);

ОбластьМакетаШапка.Параметры.Заполнить(СтруктураПредставленийУчастников);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);

ПредставленияДокументов = ПредставленияДокументов();
ПредставленияВладельцевДокументов = ПредставленияВладельцевДокументов();

ПредставлениеДокумента = "";
ПредставлениеВладельцаДокумента = "";

НачальныйОстаток = 0;
КонечныйОстаток  = 0;

ДетальныеЗаписи = ВыборкаДетальныхЗаписей.Выбрать();

// { ol
ОборотДебет=0; ОборотКредит=0;
// ol }

ПервыйПроход = Истина;
Пока ДетальныеЗаписи.Следующий() Цикл

Если ДетальныеЗаписи.Документ = Неопределено Тогда
Если ДетальныеЗаписи.Период = ДанныеДокумента.НачалоПериода Тогда
НачальныйОстаток = НачальныйОстаток + ДетальныеЗаписи.СуммаНачальныйОстаток;
Иначе
КонечныйОстаток = КонечныйОстаток + ДетальныеЗаписи.СуммаКонечныйОстаток;
КонецЕсли;
Иначе

Если ПервыйПроход
И ЗначениеЗаполнено(ДанныеДокумента.НачалоПериода) Тогда

ОбластьМакетаНачОстаток.Параметры.НачалоПериодаСверки = Формат(ДанныеДокумента.НачалоПериода, "ДЛФ=ДД");
Если НачальныйОстаток > 0 Тогда
ОбластьМакетаНачОстаток.Параметры.СуммаНашДолг = 0;
ОбластьМакетаНачОстаток.Параметры.СуммаДолгПартнера = НачальныйОстаток;
Иначе
ОбластьМакетаНачОстаток.Параметры.СуммаНашДолг = -НачальныйОстаток;
ОбластьМакетаНачОстаток.Параметры.СуммаДолгПартнера = 0;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаНачОстаток);

КонецЕсли;

ИмяДокумента = ДетальныеЗаписи.Документ.Метаданные().Имя;
ПредставленияДокументов.Свойство(ИмяДокумента, ПредставлениеДокумента);
ПредставленияВладельцевДокументов.Свойство(ИмяДокумента, ПредставлениеВладельцаДокумента);

Если ЗначениеЗаполнено(ПредставлениеВладельцаДокумента) Тогда
ПредставлениеВладельцаДокумента = ПредставлениеВладельцаДокумента + " " + ?(ДетальныеЗаписи.ЭтоВходящийДокумент,
СтруктураПредставленийУчастников.КонтрагентНаименование,
СтруктураПредставленийУчастников.ПредставлениеОрганизации);
КонецЕсли;

Если ЗначениеЗаполнено(ДетальныеЗаписи.Номер) Тогда
Если ИмяДокумента = "СписаниеБезналичныхДенежныхСредств" Тогда
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДетальныеЗаписи.Номер,, Истина);
ИначеЕсли ДетальныеЗаписи.ЭтоВходящийДокумент Тогда
НомерНаПечать = УбратьЛидирующиеНули(ДетальныеЗаписи.Номер);
Иначе
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДетальныеЗаписи.Номер);
КонецЕсли;
Иначе
НомерНаПечать = "_______";
КонецЕсли;

ОписаниеДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 №%2 от %3'"),
?(ПредставлениеДокумента <> Неопределено, ПредставлениеДокумента, ""),
НомерНаПечать,
?(ЗначениеЗаполнено(ДетальныеЗаписи.ДатаВходящегоДокумента), Формат(ДетальныеЗаписи.ДатаВходящегоДокумента, "ДЛФ=D") + " " + НСтр("ru='г.'"), "'  .  .    '"));

Если ЗначениеЗаполнено(ДетальныеЗаписи.ОрганизацияРеглУчет) Тогда

СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДетальныеЗаписи.ОрганизацияРеглУчет, ДанныеДокумента.Дата);
ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации,
"ПолноеНаименование");

ОписаниеДокумента = НСтр("ru='Перенос задолженности'");
ПредставлениеВладельцаДокумента = НСтр("ru='от'") + " " + ПредставлениеОрганизации;

КонецЕсли;

ОбластьМакетаСтрока.Параметры.Дата = Формат(ДетальныеЗаписи.Дата, "ДЛФ=D");
ОбластьМакетаСтрока.Параметры.Документ = ОписаниеДокумента;
ОбластьМакетаСтрока.Параметры.ОтКого = ПредставлениеВладельцаДокумента;
ОбластьМакетаСтрока.Параметры.СуммаДолгПартнера = ДетальныеЗаписи.СуммаДолгПартнера;
ОбластьМакетаСтрока.Параметры.СуммаНашДолг = ДетальныеЗаписи.СуммаНашДолг;
ОбластьМакетаСтрока.Параметры.ДокументСсылка = ДетальныеЗаписи.Документ;
ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);

// { ol
ОборотДебет=ОборотДебет+?(ДетальныеЗаписи.СуммаДолгПартнера=null,0,ДетальныеЗаписи.СуммаДолгПартнера);
ОборотКредит=ОборотКредит+?(ДетальныеЗаписи.СуммаНашДолг=null,0,ДетальныеЗаписи.СуммаНашДолг);
// ol }
ПервыйПроход = Ложь;

КонецЕсли;

КонецЦикла;

Если ПервыйПроход
И ЗначениеЗаполнено(ДанныеДокумента.НачалоПериода) Тогда

ОбластьМакетаНачОстаток.Параметры.НачалоПериодаСверки = Формат(ДанныеДокумента.НачалоПериода, "ДЛФ=ДД");
Если НачальныйОстаток > 0 Тогда
ОбластьМакетаНачОстаток.Параметры.СуммаНашДолг = 0;
ОбластьМакетаНачОстаток.Параметры.СуммаДолгПартнера = НачальныйОстаток;
Иначе
ОбластьМакетаНачОстаток.Параметры.СуммаНашДолг = -НачальныйОстаток;
ОбластьМакетаНачОстаток.Параметры.СуммаДолгПартнера = 0;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаНачОстаток);

КонецЕсли;

// { ol
ОбластьМакетаОбороты  = Макет.ПолучитьОбласть("СтрокаТаблицыРасчетыОбороты");
ОбластьМакетаОбороты.Параметры.ОборотДебет=ОборотДебет;
ОбластьМакетаОбороты.Параметры.ОборотКредит=ОборотКредит;
ТабличныйДокумент.Вывести(ОбластьМакетаОбороты);
// ol }


ОбластьМакетаКонОстаток.Параметры.КонецПериодаСверки = Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД");
Если КонечныйОстаток > 0 Тогда
ОбластьМакетаКонОстаток.Параметры.СуммаНашДолг = 0;
ОбластьМакетаКонОстаток.Параметры.СуммаДолгПартнера = КонечныйОстаток;
Иначе
ОбластьМакетаКонОстаток.Параметры.СуммаНашДолг = -КонечныйОстаток;
ОбластьМакетаКонОстаток.Параметры.СуммаДолгПартнера = 0;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаКонОстаток);

Если КонечныйОстаток <> 0 Тогда
СтрокаЗадолженности.Сумма = КонечныйОстаток;
Иначе
ТаблицаЗадолженности.Удалить(СтрокаЗадолженности);
КонецЕсли;

Возврат ТабличныйДокумент;

КонецФункции

Функция ТекстЗапросаОтборПоАналитике()

Возврат "
|ВЫБРАТЬ
| АналитикаУчетаПоПартнерам.КлючАналитики КАК КлючАналитики
|ПОМЕСТИТЬ ОтборПоАналитике
|ИЗ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам
|ГДЕ
| АналитикаУчетаПоПартнерам.Организация = &Организация
| И АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
| И (АналитикаУчетаПоПартнерам.Партнер = &Партнер
|  ИЛИ &НеИспользоватьОтборПоПартнеру)
| И (АналитикаУчетаПоПартнерам.Договор = &Договор
|  ИЛИ &НеИспользоватьОтборПоДоговору)
|;
|/////////////////////////////////////////////////////////////////////////////
|";

КонецФункции

Функция ПредставлениеПартнера(Партнер)

Запрос = Новый Запрос("
|ВЫБРАТЬ
| Партнеры.НаименованиеПолное КАК НаименованиеПолное
|ИЗ
| Справочник.Партнеры КАК Партнеры
|ГДЕ
| Партнеры.Ссылка = &Партнер
|");
Запрос.УстановитьПараметр("Партнер", Партнер);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ПредставлениеПартнера = Выборка.НаименованиеПолное;
Иначе
ПредставлениеПартнера = "";
КонецЕсли;

Возврат ПредставлениеПартнера;

КонецФункции

Функция ПредставлениеДоговора(Договор)

Запрос = Новый Запрос("
|ВЫБРАТЬ
| ДоговорыКонтрагентов.НаименованиеДляПечати КАК НаименованиеДляПечати
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Ссылка = &Договор
|");
Запрос.УстановитьПараметр("Договор", Договор);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ПредставлениеДоговора = Выборка.НаименованиеДляПечати;
Иначе
ПредставлениеДоговора = "";
КонецЕсли;

Возврат ПредставлениеДоговора;

КонецФункции

Функция УбратьЛидирующиеНули(Строка)

Рез = СокрЛП(Строка);
Пока Лев(Рез, 1) = "0" Цикл
Рез = Сред(Рез, 2);
КонецЦикла;
Возврат Рез;

КонецФункции

Функция ПредставленияВладельцевДокументов()

ВидыДокументовКонтрагента = Новый Структура;

ВидыДокументовКонтрагента.Вставить("АвансовыйОтчет",      НСтр("ru='получатель'"));
ВидыДокументовКонтрагента.Вставить("АктВыполненныхРабот",      НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровМеждуОрганизациями",  НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровОтКлиента",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровПоставщику",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ЗаказКлиента",        НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ЗаказПоставщику",       НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ЗаявкаНаВозвратТоваровОтКлиента",   НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаПоступления",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаРеализации",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ОперацияПоПлатежнойКарте",    НСтр("ru='плательщик'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомиссионера",      НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомиссионераОСписании",   НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомитенту",      НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомитентуОСписании",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ОтчетПоКомиссииМеждуОрганизациями",  НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ПередачаТоваровМеждуОрганизациями",  НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеБезналичныхДенежныхСредств", НСтр("ru='плательщик'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеТоваровУслуг",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеУслугПрочихАктивов",   НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ПриходныйКассовыйОрдер",    НСтр("ru='получатель'"));
ВидыДокументовКонтрагента.Вставить("РасходныйКассовыйОрдер",    НСтр("ru='плательщик'"));
ВидыДокументовКонтрагента.Вставить("РеализацияТоваровУслуг",     НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("РеализацияУслугПрочихАктивов",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("СписаниеБезналичныхДенежныхСредств",  НСтр("ru='плательщик'"));
ВидыДокументовКонтрагента.Вставить("СчетНаОплатуКлиенту",      НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("СчетФактураВыданный",      НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("СчетФактураПолученный",     НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ТаможеннаяДекларацияИмпорт",    НСтр("ru='от'"));


// { ol
ВидыДокументовКонтрагента.Вставить("ПриобретениеТоваровУслуг",    НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("ПриобретениеУслугПрочихАктивов",   НСтр("ru='от'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаПриобретения",    НСтр("ru='от'"));
// ol }

Возврат ВидыДокументовКонтрагента;

КонецФункции

Функция ОстаткиРасчетов(ДанныеДокумента) Экспорт

ЗапросНашихДанных = Новый Запрос;

ЗапросНашихДанных.Текст = ТекстЗапросаОтборПоАналитике() + "
|ВЫБРАТЬ
| ОстаткиЗадолженности.ЗаказКлиента    КАК РасчетныйДокумент,
| ОстаткиЗадолженности.Валюта      КАК ВалютаВзаиморасчетов,
| РегистрАналитикаУчетаПоПартнерам.Партнер  КАК Партнер,
| ВЫБОР
|  КОГДА ОстаткиЗадолженности.СуммаОстаток > 0
|   ТОГДА ОстаткиЗадолженности.СуммаОстаток
|  ИНАЧЕ 0
| КОНЕЦ           КАК СуммаДолгПартнера,
| ВЫБОР
|  КОГДА ОстаткиЗадолженности.СуммаОстаток < 0
|   ТОГДА -ОстаткиЗадолженности.СуммаОстаток
|  ИНАЧЕ 0
| КОНЕЦ           КАК СуммаНашДолг
|ПОМЕСТИТЬ ОстаткиЗадолженностиРазвернуто
|ИЗ
| РегистрНакопления.РасчетыСКлиентами.Остатки(
|   &КонецПериодаСверки,
|   АналитикаУчетаПоПартнерам В (ВЫБРАТЬ
|           ОтборПоАналитике.КлючАналитики
|           ИЗ
|           ОтборПоАналитике)
|   ) КАК ОстаткиЗадолженности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО ОстаткиЗадолженности.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.ЗаказПоставщику   КАК РасчетныйДокумент,
| ОстаткиЗадолженности.Валюта      КАК ВалютаВзаиморасчетов,
| РегистрАналитикаУчетаПоПартнерам.Партнер  КАК Партнер,
| ВЫБОР
|  КОГДА ОстаткиЗадолженности.СуммаОстаток > 0
|   ТОГДА ОстаткиЗадолженности.СуммаОстаток
|  ИНАЧЕ 0
| КОНЕЦ           КАК СуммаДолгПартнера,
| ВЫБОР
|  КОГДА ОстаткиЗадолженности.СуммаОстаток < 0
|   ТОГДА -ОстаткиЗадолженности.СуммаОстаток
|  ИНАЧЕ 0
| КОНЕЦ           КАК СуммаНашДолг
|ИЗ
| РегистрНакопления.РасчетыСПоставщиками.Остатки(
|   &КонецПериодаСверки,
|   АналитикаУчетаПоПартнерам В (ВЫБРАТЬ
|           ОтборПоАналитике.КлючАналитики
|           ИЗ
|           ОтборПоАналитике)
|   ) КАК ОстаткиЗадолженности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
|  ПО ОстаткиЗадолженности.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики
|;
|/////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент    КАК РасчетныйДокумент,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов    КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер       КАК Партнер,
| СУММА(ОстаткиЗадолженности.СуммаДолгПартнера) КАК СуммаДолгПартнера,
| СУММА(ОстаткиЗадолженности.СуммаНашДолг)   КАК СуммаНашДолг
|ПОМЕСТИТЬ ОстаткиЗадолженности
|ИЗ
| ОстаткиЗадолженностиРазвернуто КАК ОстаткиЗадолженности
|
|СГРУППИРОВАТЬ ПО
| ОстаткиЗадолженности.РасчетныйДокумент,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер
|;
|/////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ПОМЕСТИТЬ ЗадолженностьПоДокументамРасчетов
|ИЗ
| Документ.ОтчетКомиссионера КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ОтчетКомитенту КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.АктВыполненныхРабот КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ОтчетКомиссионераОСписании КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ЗаказКлиента КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ПоступлениеУслугПрочихАктивов КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.РеализацияУслугПрочихАктивов КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ЗаказПоставщику КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ОтчетКомитентуОСписании КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| Неопределено        КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| Неопределено        КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.КорректировкаПоступления КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.КорректировкаРеализации КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ТаможеннаяДекларацияИмпорт КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер    КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.Номер      КАК НомерРасчетногоДокумента,
| ДанныеДокумента.Дата      КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ВыкупВозвратнойТарыКлиентом КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| ДанныеДокумента.НомерВходящегоДокумента  КАК НомерРасчетногоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента  КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер    КАК Партнер,
| ДанныеДокумента.Договор      КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ИСТИНА          КАК ЭтоВходящийНомер
|ИЗ
| Документ.ВыкупВозвратнойТарыУПоставщика КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОстаткиЗадолженности.РасчетныйДокумент  КАК РасчетныйДокумент,
| НЕОПРЕДЕЛЕНО        КАК НомерРасчетногоДокумента,
| НЕОПРЕДЕЛЕНО        КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов  КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер     КАК Партнер,
| ОстаткиЗадолженности.РасчетныйДокумент  КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера  КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг   КАК СуммаНашДолг,
| ЛОЖЬ          КАК ЭтоВходящийНомер
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиЗадолженности КАК ОстаткиЗадолженности
|  ПО ОстаткиЗадолженности.РасчетныйДокумент = ДанныеДокумента.Ссылка
|
|;
|/////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗадолженностьПоДокументамРасчетов.РасчетныйДокумент     КАК РасчетныйДокумент,
| ЗадолженностьПоДокументамРасчетов.НомерРасчетногоДокумента КАК НомерРасчетногоДокумента,
| ЗадолженностьПоДокументамРасчетов.ДатаРасчетногоДокумента  КАК ДатаРасчетногоДокумента,
| ЗадолженностьПоДокументамРасчетов.ВалютаВзаиморасчетов    КАК ВалютаВзаиморасчетов,
| ЗадолженностьПоДокументамРасчетов.Партнер       КАК Партнер,
| ЗадолженностьПоДокументамРасчетов.Договор       КАК Договор,
| ЗадолженностьПоДокументамРасчетов.СуммаДолгПартнера     КАК СуммаДолгПартнера,
| ЗадолженностьПоДокументамРасчетов.СуммаНашДолг      КАК СуммаНашДолг,
| ЗадолженностьПоДокументамРасчетов.ЭтоВходящийНомер     КАК ЭтоВходящийНомер
|ИЗ
| ЗадолженностьПоДокументамРасчетов КАК ЗадолженностьПоДокументамРасчетов
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Неопределено              КАК РасчетныйДокумент,
| Неопределено              КАК НомерРасчетногоДокумента,
| Неопределено              КАК ДатаРасчетногоДокумента,
| ОстаткиЗадолженности.ВалютаВзаиморасчетов        КАК ВалютаВзаиморасчетов,
| ОстаткиЗадолженности.Партнер           КАК Партнер,
| Неопределено              КАК Договор,
| ОстаткиЗадолженности.СуммаДолгПартнера        КАК СуммаДолгПартнера,
| ОстаткиЗадолженности.СуммаНашДолг         КАК СуммаНашДолг,
| ЛОЖЬ                КАК ЭтоВходящийНомер
|ИЗ
| ОстаткиЗадолженности КАК ОстаткиЗадолженности
| ЛЕВОЕ СОЕДИНЕНИЕ ЗадолженностьПоДокументамРасчетов КАК ЗадолженностьПоДокументамРасчетов
|  ПО ЗадолженностьПоДокументамРасчетов.РасчетныйДокумент = ОстаткиЗадолженности.РасчетныйДокумент
|  И ЗадолженностьПоДокументамРасчетов.ВалютаВзаиморасчетов = ОстаткиЗадолженности.ВалютаВзаиморасчетов
|ГДЕ
| ЗадолженностьПоДокументамРасчетов.РасчетныйДокумент ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| ДатаРасчетногоДокумента,
| НомерРасчетногоДокумента
|";

ЗапросНашихДанных.УстановитьПараметр("КонецПериодаСверки", Новый Граница(
КонецДня(ДанныеДокумента.КонецПериода),
ВидГраницы.Включая));
ЗапросНашихДанных.УстановитьПараметр("Организация",     ДанныеДокумента.Организация);
ЗапросНашихДанных.УстановитьПараметр("Контрагент",     ДанныеДокумента.Контрагент);
ЗапросНашихДанных.УстановитьПараметр("Партнер",        ДанныеДокумента.Партнер);
ЗапросНашихДанных.УстановитьПараметр("Договор",        ДанныеДокумента.Договор);
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоПартнеру", НЕ ЗначениеЗаполнено(ДанныеДокумента.Партнер));
ЗапросНашихДанных.УстановитьПараметр("НеИспользоватьОтборПоДоговору", НЕ ЗначениеЗаполнено(ДанныеДокумента.Договор));

// { ol     адаптация под УТ 11.4
если не Метаданные.Документы.Найти("ПриобретениеТоваровУслуг")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.ПоступлениеТоваровУслуг"),"Документ.ПриобретениеТоваровУслуг");
КонецЕсли;
если не Метаданные.Документы.Найти("ПриобретениеУслугПрочихАктивов")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.ПоступлениеУслугПрочихАктивов"),"Документ.ПриобретениеУслугПрочихАктивов");
КонецЕсли;
если не Метаданные.Документы.Найти("КорректировкаПриобретения")=неопределено тогда
ЗапросНашихДанных.Текст=стрзаменить(врег(ЗапросНашихДанных.Текст),врег("Документ.КорректировкаПоступления"),"Документ.КорректировкаПриобретения");
КонецЕсли;
// ol }


РезультатЗапросаНашихДанных = ЗапросНашихДанных.Выполнить();

Если НЕ РезультатЗапросаНашихДанных.Пустой() Тогда
ТаблицаНашихДанных = РезультатЗапросаНашихДанных.Выгрузить();

СписокПолейГруппировки = "ВалютаВзаиморасчетов,ЭтоВходящийНомер";
Если ДанныеДокумента.РасшифровкаПоЗаказам Тогда
СписокПолейГруппировки = СписокПолейГруппировки + ", РасчетныйДокумент, НомерРасчетногоДокумента, ДатаРасчетногоДокумента";
КонецЕсли;
Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
СписокПолейГруппировки = СписокПолейГруппировки + ", Партнер";
КонецЕсли;
Если ДанныеДокумента.РасшифровкаПоДоговорам Тогда
СписокПолейГруппировки = СписокПолейГруппировки + ", Договор";
КонецЕсли;
ТаблицаНашихДанных.Свернуть(СписокПолейГруппировки, "СуммаДолгПартнера, СуммаНашДолг");
Иначе
ТаблицаНашихДанных = Неопределено;
КонецЕсли;

Возврат ТаблицаНашихДанных;

КонецФункции

Функция ПредставленияДокументов()

ВидыДокументовКонтрагента = Новый Структура;

ВидыДокументовКонтрагента.Вставить("АвансовыйОтчет",      НСтр("ru='Приходный кассовый ордер'"));
ВидыДокументовКонтрагента.Вставить("АктВыполненныхРабот",      НСтр("ru='Акт выполненных работ'"));
ВидыДокументовКонтрагента.Вставить("ВводОстатков",       НСтр("ru='Корректировка задолженности'"));
ВидыДокументовКонтрагента.Вставить("ВзаимозачетЗадолженности",    НСтр("ru='Взаимозачет задолженности'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровМеждуОрганизациями",  НСтр("ru='Накладная (возврат)'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровОтКлиента",    НСтр("ru='Накладная (возврат)'"));
ВидыДокументовКонтрагента.Вставить("ВозвратТоваровПоставщику",    НСтр("ru='Накладная (возврат)'"));
ВидыДокументовКонтрагента.Вставить("ВыкупВозвратнойТарыКлиентом",    НСтр("ru='Выкуп возвратной тары'"));
ВидыДокументовКонтрагента.Вставить("ВыкупВозвратнойТарыУПоставщика",   НСтр("ru='Выкуп возвратной тары'"));
ВидыДокументовКонтрагента.Вставить("ЗаказКлиента",        НСтр("ru='Заказ'"));
ВидыДокументовКонтрагента.Вставить("ЗаказПоставщику",       НСтр("ru='Заказ'"));
ВидыДокументовКонтрагента.Вставить("ЗаявкаНаВозвратТоваровОтКлиента",   НСтр("ru='Заказ (возврат)'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаПоступления",    НСтр("ru='Корректировка задолженности'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаРеализации",    НСтр("ru='Корректировка задолженности'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаРегистров",    НСтр("ru='Корректировка задолженности'"));
ВидыДокументовКонтрагента.Вставить("ОперацияПоПлатежнойКарте",    НСтр("ru='Эквайринговая операция'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомиссионера",      НСтр("ru='Отчет комитенту'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомиссионераОСписании",   НСтр("ru='Отчет комитенту'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомитенту",      НСтр("ru='Отчет комитенту'"));
ВидыДокументовКонтрагента.Вставить("ОтчетКомитентуОСписании",    НСтр("ru='Отчет комитенту'"));
ВидыДокументовКонтрагента.Вставить("ОтчетПоКомиссииМеждуОрганизациями",  НСтр("ru='Отчет комитенту'"));
ВидыДокументовКонтрагента.Вставить("ПередачаТоваровМеждуОрганизациями",  НСтр("ru='Накладная'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеБезналичныхДенежныхСредств", НСтр("ru='Платежное поручение'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеТоваровУслуг",    НСтр("ru='Накладная'"));
ВидыДокументовКонтрагента.Вставить("ПоступлениеУслугПрочихАктивов",   НСтр("ru='Акт'"));
ВидыДокументовКонтрагента.Вставить("ПриходныйКассовыйОрдер",    НСтр("ru='Приходный кассовый ордер'"));
ВидыДокументовКонтрагента.Вставить("РасходныйКассовыйОрдер",    НСтр("ru='Расходный кассовый ордер'"));
ВидыДокументовКонтрагента.Вставить("РеализацияТоваровУслуг",     НСтр("ru='Накладная'"));
ВидыДокументовКонтрагента.Вставить("РеализацияУслугПрочихАктивов",   НСтр("ru='Акт'"));
ВидыДокументовКонтрагента.Вставить("СписаниеБезналичныхДенежныхСредств",  НСтр("ru='Платежное поручение'"));
ВидыДокументовКонтрагента.Вставить("СписаниеЗадолженности",     НСтр("ru='Списание задолженности'"));
ВидыДокументовКонтрагента.Вставить("СчетНаОплатуКлиенту",      НСтр("ru='Счет на оплату'"));
ВидыДокументовКонтрагента.Вставить("СчетФактураВыданный",      НСтр("ru='Счет-фактура'"));
ВидыДокументовКонтрагента.Вставить("СчетФактураПолученный",     НСтр("ru='Счет-фактура'"));
ВидыДокументовКонтрагента.Вставить("ТаможеннаяДекларацияИмпорт",    НСтр("ru='Таможенная декларация'"));

// { ol
ВидыДокументовКонтрагента.Вставить("ПриобретениеТоваровУслуг",    НСтр("ru='Накладная'"));
ВидыДокументовКонтрагента.Вставить("ПриобретениеУслугПрочихАктивов",  НСтр("ru='Акт'"));
ВидыДокументовКонтрагента.Вставить("КорректировкаПриобретения",    НСтр("ru='Корректировка задолженности'"));
// ol }

Возврат ВидыДокументовКонтрагента;

КонецФункции

Функция ВывестиТаблицуЗадолженности(
ПараметрыТаблицыЗадолженностей,
Партнер = Неопределено,
ТаблицаРасхождений = Неопределено,
ЭтоДанныеКонтрагента = Ложь)

ДанныеДокумента                      = ПараметрыТаблицыЗадолженностей.ДанныеДокумента;
ТаблицаОстатков                      = ПараметрыТаблицыЗадолженностей.ТаблицаОстатков;
МассивВалют                          = ПараметрыТаблицыЗадолженностей.МассивВалют;
СтруктураПредставленийУчастников     = ПараметрыТаблицыЗадолженностей.СтруктураПредставленийУчастников;
Макет                                = ПараметрыТаблицыЗадолженностей.Макет;
ВыводитьПодвал                       = ПараметрыТаблицыЗадолженностей.ВыводитьПодвал;

ТабличныйДокумент = Новый ТабличныйДокумент;

ОбластьМакетаГруппировка = Макет.ПолучитьОбласть("ГруппировкаПартнерВалюта");
ОбластьМакетаШапка   = Макет.ПолучитьОбласть("ШапкаТаблицыЗадолженность");
ОбластьМакетаСтрока   = Макет.ПолучитьОбласть("СтрокаТаблицыЗадолженность");
Если ВыводитьПодвал Тогда
ОбластьМакетаПодвал  = Макет.ПолучитьОбласть("ПодвалТаблицыЗадолженность");
КонецЕсли;

ПредставлениеПартнера = ПредставлениеПартнера(Партнер);

Для Каждого ВалютаВзаиморасчетов Из МассивВалют Цикл

СуммаДолгПартнера = 0;
СуммаНашДолг = 0;

СтруктураОтбора = Новый Структура("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
Если Партнер <> Неопределено Тогда
СтруктураОтбора.Вставить("Партнер", Партнер);
КонецЕсли;
МассивСтрокЗадолженности = ТаблицаОстатков.НайтиСтроки(СтруктураОтбора);

Если МассивСтрокЗадолженности.Количество() > 0 Тогда
Если Партнер <> Неопределено Тогда
ОбластьМакетаГруппировка.Параметры.ПартнерВалюта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1, в валюте: %2'"), ПредставлениеПартнера, ВалютаВзаиморасчетов);
Иначе
ОбластьМакетаГруппировка.Параметры.ПартнерВалюта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='в валюте: %1'"), ВалютаВзаиморасчетов);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаГруппировка);
ОбластьМакетаШапка.Параметры.Заполнить(СтруктураПредставленийУчастников);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
КонецЕсли;

Для Каждого СтрокаЗадолженности Из МассивСтрокЗадолженности Цикл

ОбластьМакетаСтрока.Параметры.СуммаДолгПартнера = СтрокаЗадолженности.СуммаДолгПартнера;
ОбластьМакетаСтрока.Параметры.СуммаНашДолг   = СтрокаЗадолженности.СуммаНашДолг;
Если ТаблицаОстатков.Колонки.Найти("РасчетныйДокумент") <> Неопределено Тогда
ОбластьМакетаСтрока.Параметры.ДокументСсылка = СтрокаЗадолженности.РасчетныйДокумент;
КонецЕсли;
Если НЕ ЭтоДанныеКонтрагента Тогда
Если ТаблицаОстатков.Колонки.Найти("РасчетныйДокумент") <> Неопределено Тогда
ОбластьМакетаСтрока.Параметры.Документ = ОписаниеРасчетногоДокумента(СтрокаЗадолженности.РасчетныйДокумент,
СтрокаЗадолженности.НомерРасчетногоДокумента,
СтрокаЗадолженности.ДатаРасчетногоДокумента,
СтруктураПредставленийУчастников,
СтрокаЗадолженности.ЭтоВходящийНомер,
(СтрокаЗадолженности.СуммаДолгПартнера > 0));
КонецЕсли;
Иначе
ОбластьМакетаСтрока.Параметры.Документ = СтрокаЗадолженности.ОписаниеДокумента;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);

СуммаДолгПартнера = СуммаДолгПартнера + СтрокаЗадолженности.СуммаДолгПартнера;
СуммаНашДолг   = СуммаНашДолг    + СтрокаЗадолженности.СуммаНашДолг;

КонецЦикла;

Если ВыводитьПодвал Тогда
ОбластьМакетаПодвал.Параметры.СуммаДолгПартнера = СуммаДолгПартнера;
ОбластьМакетаПодвал.Параметры.СуммаНашДолг = СуммаНашДолг;
ОбластьМакетаПодвал.Параметры.КонецПериодаСверки = Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД");
ТабличныйДокумент.Вывести(ОбластьМакетаПодвал);
КонецЕсли;

Если ТаблицаРасхождений <> Неопределено Тогда
СтрокаТаблицыРасхождений = ТаблицаРасхождений.Добавить();
СтрокаТаблицыРасхождений.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
Если Партнер <> Неопределено Тогда
СтрокаТаблицыРасхождений.Партнер = Партнер;
КонецЕсли;
Если НЕ ЭтоДанныеКонтрагента Тогда
СтрокаТаблицыРасхождений.СуммаДолгПартнера = СуммаДолгПартнера;
СтрокаТаблицыРасхождений.СуммаНашДолг = СуммаНашДолг;
Иначе
СтрокаТаблицыРасхождений.СуммаДолгПартнера = -СуммаДолгПартнера;
СтрокаТаблицыРасхождений.СуммаНашДолг = -СуммаНашДолг;
КонецЕсли;
КонецЕсли;

КонецЦикла;

Возврат ТабличныйДокумент;

КонецФункции

Функция ОписаниеРасчетногоДокумента(
ДокументСсылка,
Номер,
Дата,
СтруктураПредставленийУчастников,
ЭтоВходящийНомер,
ЭтоДолгПартнера = Неопределено) Экспорт

ПредставленияДокументов        = ПредставленияДокументов();
ПредставленияВладельцевДокументов = ПредставленияВладельцевДокументов();
МассивДокументовКонтрагента    = ИменаМетаданныхВходящихДокументов();

ПредставлениеДокумента = "";
ПредставлениеВладельцаДокумента = "";

Если ТипЗнч(ДокументСсылка) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда

ОписаниеДокумента = ДокументСсылка;

ИначеЕсли ДокументСсылка <> Неопределено И НЕ ДокументСсылка.Пустая() Тогда

ПредставленияДокументов.Свойство(ДокументСсылка.Метаданные().Имя, ПредставлениеДокумента);

ОписаниеДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 №%2 от %3'"),
?(ПредставлениеДокумента <> Неопределено, ПредставлениеДокумента, ""),
?(ЗначениеЗаполнено(Номер), ?(ЭтоВходящийНомер,
УбратьЛидирующиеНули(Номер),
ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер)), "_______"),
?(ЗначениеЗаполнено(Дата), Формат(Дата, "ДЛФ=D") + " " + НСтр("ru='г.'"), "'  .  .    '"));

ПредставленияВладельцевДокументов.Свойство(ДокументСсылка.Метаданные().Имя, ПредставлениеВладельцаДокумента);

Если ЗначениеЗаполнено(ПредставлениеВладельцаДокумента) Тогда

Если МассивДокументовКонтрагента.Найти(ДокументСсылка.Метаданные().Имя) <> Неопределено Тогда
ВладелецДокумента = СтруктураПредставленийУчастников.КонтрагентНаименование;
Иначе
ВладелецДокумента = СтруктураПредставленийУчастников.ПредставлениеОрганизации;
КонецЕсли;

ОписаниеДокумента = ОписаниеДокумента + " (" + ПредставлениеВладельцаДокумента + " " + ВладелецДокумента + ")";
КонецЕсли;

Иначе

ПредставлениеДебитора = "";
Если ЭтоДолгПартнера <> Неопределено Тогда
ПредставлениеДебитора = ?(ЭтоДолгПартнера,
СтруктураПредставленийУчастников.ПредставлениеОрганизации,
СтруктураПредставленийУчастников.КонтрагентНаименование);
КонецЕсли;

ОписаниеДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Предоплата от %1'"), ПредставлениеДебитора);

КонецЕсли;

Возврат ОписаниеДокумента;

КонецФункции

Функция ИменаМетаданныхВходящихДокументов()

МассивДокументовКонтрагента = Новый Массив;

МассивДокументовКонтрагента.Добавить("АвансовыйОтчет");
МассивДокументовКонтрагента.Добавить("ВозвратТоваровОтКлиента");
МассивДокументовКонтрагента.Добавить("ЗаказКлиента");
МассивДокументовКонтрагента.Добавить("ЗаявкаНаВозвратТоваровОтКлиента");
МассивДокументовКонтрагента.Добавить("КорректировкаПоступления");
МассивДокументовКонтрагента.Добавить("ОтчетКомиссионера");
МассивДокументовКонтрагента.Добавить("ОтчетКомиссионераОСписании");
МассивДокументовКонтрагента.Добавить("ПоступлениеБезналичныхДенежныхСредств");
МассивДокументовКонтрагента.Добавить("ПоступлениеТоваровУслуг");
МассивДокументовКонтрагента.Добавить("ПоступлениеУслугПрочихАктивов");
МассивДокументовКонтрагента.Добавить("СчетФактураПолученный");
МассивДокументовКонтрагента.Добавить("ТаможеннаяДекларацияИмпорт");

// { ol
МассивДокументовКонтрагента.Добавить("ПриобретениеТоваровУслуг");
МассивДокументовКонтрагента.Добавить("ПриобретениеУслугПрочихАктивов");
МассивДокументовКонтрагента.Добавить("КорректировкаПриобретения");
// ol }

Возврат МассивДокументовКонтрагента;

КонецФункции

Функция СформироватьПечатнуюФормуАктСверкиВзаимныхРасчетов(МассивОбъектов, ОбъектыПечати,ВыводитьФаксимиле=ложь)

УстановитьПривилегированныйРежим(Истина);

ДанныеДокумента = ВыборкаДанныхДокумента(МассивОбъектов);

ТабличныйДокумент = Новый ТабличныйДокумент;

ПервыйДокумент = Истина;
Пока ДанныеДокумента.Следующий() Цикл

ДетальныеРасчеты = ДетальныеРасчеты(ДанныеДокумента);

Если ДетальныеРасчеты = Неопределено Тогда

Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'По документу %1 нет расчетов с партнерами. Печать акта сверки взаимных расчетов не требуется.'"),
ДанныеДокумента.ДокументСсылка);

ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
Текст,
ДанныеДокумента.ДокументСсылка);

Продолжить;

КонецЕсли;

// { ol
//Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.СверкаВзаиморасчетов.ПФ_MXL_АктСверкиВзаимныхРасчетов");
Макет = получитьМакет("ПФ_MXL_АктСверкиВзаимныхРасчетов");
// ol }

НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;

// ШАПКА ДОКУМЕНТА

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеДокумента.ДокументСсылка);

ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеДокумента, НСтр("ru='Акт сверки взаимных расчетов'"));

Если ДанныеДокумента.НачалоПериода = '00010101' Тогда

ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'по состоянию на %1'"),
Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД"),);

ПредставлениеПериодаРасчетов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'По состоянию на %1'"),
Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД"),);

Иначе

ПредставлениеПериода = ПредставлениеПериода(ДанныеДокумента.НачалоПериода, КонецДня(ДанныеДокумента.КонецПериода));

ПервыйСимволПредставлениеПериода = Лев(ПредставлениеПериода, 1);
Если  КодСимвола(ПервыйСимволПредставлениеПериода) >= 48
И КодСимвола(ПервыйСимволПредставлениеПериода) <= 57 Тогда

ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='за период: %1'"), ПредставлениеПериода);

Иначе

ПредставлениеПериода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='за %1'"), ПредставлениеПериода);

КонецЕсли;

ПредставлениеПериодаРасчетов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В период с %1 по %2'"),
Формат(ДанныеДокумента.НачалоПериода, "ДЛФ=ДД"),
Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД"),);

КонецЕсли;

СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеДокумента.Организация, ДанныеДокумента.Дата);
ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации,
"ПолноеНаименование");
СведенияОКонтрагенте  = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеДокумента.Контрагент,  ДанныеДокумента.Дата);
КонтрагентНаименование = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте,
"ПолноеНаименование");

СтруктураПредставленийУчастников = Новый Структура;
СтруктураПредставленийУчастников.Вставить("ПредставлениеОрганизации", ПредставлениеОрганизации);
СтруктураПредставленийУчастников.Вставить("КонтрагентНаименование", КонтрагентНаименование);

ОбластьМакета.Параметры.Заполнить(ДанныеДокумента);
ОбластьМакета.Параметры.Заполнить(СтруктураПредставленийУчастников);
ОбластьМакета.Параметры.ТекстЗаголовка     = ТекстЗаголовка;
ОбластьМакета.Параметры.ФИОРуководителяКонтрагента = СокрЛП(ДанныеДокумента.ФИОРуководителяКонтрагента);
ОбластьМакета.Параметры.ПредставлениеПериода   = ПредставлениеПериода;
ОбластьМакета.Параметры.ПредставлениеПериодаРасчетов = ПредставлениеПериодаРасчетов;

ТабличныйДокумент.Вывести(ОбластьМакета);

// 1. ДЕТАЛЬНЫЕ РАСЧЕТЫ

ТаблицаЗадолженности = Новый ТаблицаЗначений;
ТаблицаЗадолженности.Колонки.Добавить("Валюта");
ТаблицаЗадолженности.Колонки.Добавить("Сумма");
Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
ТаблицаЗадолженности.Колонки.Добавить("Партнер");
КонецЕсли;
Если ДанныеДокумента.РасшифровкаПоДоговорам Тогда
ТаблицаЗадолженности.Колонки.Добавить("Договор");
КонецЕсли;

Пока ДетальныеРасчеты.Следующий() Цикл

Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
ВыборкаПоДетальнымРасчетам = ДетальныеРасчеты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоДетальнымРасчетам.Следующий() Цикл
ТабличныйДокумент.Вывести(ВывестиДетальныеЗаписи(ВыборкаПоДетальнымРасчетам, ДанныеДокумента, СтруктураПредставленийУчастников, Макет, ТаблицаЗадолженности, ДетальныеРасчеты.Партнер));
КонецЦикла;
ИначеЕсли ДанныеДокумента.РасшифровкаПоДоговорам Тогда
ВыборкаПоДетальнымРасчетам = ДетальныеРасчеты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоДетальнымРасчетам.Следующий() Цикл
ТабличныйДокумент.Вывести(ВывестиДетальныеЗаписи(ВыборкаПоДетальнымРасчетам, ДанныеДокумента, СтруктураПредставленийУчастников, Макет, ТаблицаЗадолженности, , ДетальныеРасчеты.Договор));
КонецЦикла;
Иначе
ТабличныйДокумент.Вывести(ВывестиДетальныеЗаписи(ДетальныеРасчеты, ДанныеДокумента, СтруктураПредставленийУчастников, Макет, ТаблицаЗадолженности));
КонецЕсли;

КонецЦикла;

// 2. ЗАДОЛЖЕННОСТЬ

Если ТаблицаЗадолженности.Количество() > 0 Тогда

ОбластьМакетаЗаголовок   = Макет.ПолучитьОбласть("ЗаголовокЗадолженность");
ОбластьМакетаСтрока    = Макет.ПолучитьОбласть("СтрокаЗадолженность");
ОбластьМакетаСтрокаПодробно1 = Макет.ПолучитьОбласть("СтрокаЗадолженностьПодробноВтч");
ОбластьМакетаСтрокаПодробно2 = Макет.ПолучитьОбласть("СтрокаЗадолженностьПодробно");

ОбластьМакетаЗаголовок.Параметры.КонецПериодаСверки = Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД");
ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовок);

ТаблицаЗадолженностиПоВалютам = ТаблицаЗадолженности.Скопировать();
ТаблицаЗадолженностиПоВалютам.Свернуть("Валюта", "Сумма");
Для Каждого СтрокаЗадолженностиПоВалютам Из ТаблицаЗадолженностиПоВалютам Цикл

ОбластьМакетаСтрока.Параметры.Валюта = СтрокаЗадолженностиПоВалютам.Валюта;
Если СтрокаЗадолженностиПоВалютам.Сумма > 0 Тогда
ОбластьМакетаСтрока.Параметры.Сумма = Формат(СтрокаЗадолженностиПоВалютам.Сумма, "ЧЦ=15; ЧДЦ=2; ЧГ=3,0");
Если ЗначениеЗаполнено(ДанныеДокумента.Партнер) Тогда
ОбластьМакетаСтрока.Параметры.Дебитор = ДанныеДокумента.ПредставлениеПартнера;
Иначе
ОбластьМакетаСтрока.Параметры.Дебитор = СтруктураПредставленийУчастников.КонтрагентНаименование;
КонецЕсли;
Иначе
ОбластьМакетаСтрока.Параметры.Сумма = Формат(-СтрокаЗадолженностиПоВалютам.Сумма, "ЧЦ=15; ЧДЦ=2; ЧГ=3,0");
Если ЗначениеЗаполнено(ДанныеДокумента.Партнер) Тогда
ОбластьМакетаСтрока.Параметры.Дебитор = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 перед %2'"),
СтруктураПредставленийУчастников.ПредставлениеОрганизации,
ДанныеДокумента.ПредставлениеПартнера);
Иначе
ОбластьМакетаСтрока.Параметры.Дебитор = СтруктураПредставленийУчастников.ПредставлениеОрганизации;
КонецЕсли;
КонецЕсли;
ОбластьМакетаСтрока.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СтрокаЗадолженностиПоВалютам.Сумма,СтрокаЗадолженностиПоВалютам.Валюта);
ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);

Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда

ПервыйПроходПоПартнерам = Истина;
МассивСтрокЗадолженности = ТаблицаЗадолженности.НайтиСтроки(Новый Структура("Валюта", СтрокаЗадолженностиПоВалютам.Валюта));
Для Каждого СтрокаЗадолженности Из МассивСтрокЗадолженности Цикл
Если ПервыйПроходПоПартнерам Тогда
ОбластьМакета = ОбластьМакетаСтрокаПодробно1;
Иначе
ОбластьМакета = ОбластьМакетаСтрокаПодробно2;
КонецЕсли;

ОбластьМакета.Параметры.Валюта = СтрокаЗадолженности.Валюта;
Если СтрокаЗадолженности.Сумма > 0 Тогда
ОбластьМакета.Параметры.Сумма = Формат(СтрокаЗадолженности.Сумма, "ЧЦ=15; ЧДЦ=2; ЧГ=3,0");
ОбластьМакета.Параметры.Дебитор = СтрокаЗадолженности.Партнер;
Иначе
ОбластьМакета.Параметры.Сумма = Формат(-СтрокаЗадолженности.Сумма, "ЧЦ=15; ЧДЦ=2; ЧГ=3,0");
ОбластьМакета.Параметры.Дебитор = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 перед %2'"),
СтруктураПредставленийУчастников.ПредставлениеОрганизации,
СтрокаЗадолженности.Партнер);
КонецЕсли;
ОбластьМакета.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СтрокаЗадолженности.Сумма, СтрокаЗадолженности.Валюта);
ТабличныйДокумент.Вывести(ОбластьМакета);

ПервыйПроходПоПартнерам = Ложь;
КонецЦикла;

КонецЕсли;

КонецЦикла;

Иначе

ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокЗадолженностьОтсутствует");
ОбластьМакета.Параметры.КонецПериодаСверки = Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД");
ТабличныйДокумент.Вывести(ОбластьМакета);

КонецЕсли;

// 3. РАСХОЖДЕНИЙ НЕ ВЫЯВЛЕНО

ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокРасхождения");
ТабличныйДокумент.Вывести(ОбластьМакета);

// ПОДПИСИ

ОбластьМакета = Макет.ПолучитьОбласть("Подписи");

// { ol
//ОбластьМакета.Параметры.Заполнить(ДанныеДокумента);
//ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации,
//                 "ПолноеНаименование,ИНН,ЮридическийАдрес");
//
//ОбластьМакета.Параметры.КонтрагентНаименование   = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте,
//                 "ПолноеНаименование,ИНН,ЮридическийАдрес");

ВыводитьПростыеПодписи=истина;
Если ВыводитьФаксимиле тогда
ВыводитьПростыеПодписи=не ВывестиФаксимилеВТабличныйДокумент(Макет, ОбластьМакета, ДанныеДокумента.Организация, Новый Структура("ОтображатьФаксимиле",истина));
КонецЕсли;

если ВыводитьПростыеПодписи  тогда

ОбластьМакета.Параметры.Заполнить(ДанныеДокумента);
ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации,
"ПолноеНаименование,ИНН,ЮридическийАдрес");

ОбластьМакета.Параметры.КонтрагентНаименование   = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте,
"ПолноеНаименование,ИНН,ЮридическийАдрес");
КонецЕсли;
// ol }

ТабличныйДокумент.Вывести(ОбластьМакета);

// ПРИЛОЖЕНИЕ
Если ДанныеДокумента.РасшифровкаПоЗаказам Тогда

ТаблицаОстатков = ОстаткиРасчетов(ДанныеДокумента);

Если ТаблицаОстатков <> Неопределено Тогда

ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();

ТекстЗаголовкаПриложения = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеДокумента,
НСтр("ru='к акту сверки взаимных расчетов'"));

ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПриложение");
ОбластьМакета.Параметры.ТекстЗаголовкаПриложения = ТекстЗаголовкаПриложения;
ОбластьМакета.Параметры.КонецПериодаСверки = Формат(ДанныеДокумента.КонецПериода, "ДЛФ=ДД");
ТабличныйДокумент.Вывести(ОбластьМакета);

МассивВалют = ОбщегоНазначенияУТ.УдалитьПовторяющиесяЭлементыМассива(ТаблицаОстатков.ВыгрузитьКолонку("ВалютаВзаиморасчетов"));
Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
МассивПартнеров = ОбщегоНазначенияУТ.УдалитьПовторяющиесяЭлементыМассива(ТаблицаОстатков.ВыгрузитьКолонку("Партнер"));
КонецЕсли;

ПараметрыТаблицыЗадолженностей = Новый Структура;
ПараметрыТаблицыЗадолженностей.Вставить("ДанныеДокумента", ДанныеДокумента);
ПараметрыТаблицыЗадолженностей.Вставить("ТаблицаОстатков", ТаблицаОстатков);
ПараметрыТаблицыЗадолженностей.Вставить("СтруктураПредставленийУчастников", СтруктураПредставленийУчастников);
ПараметрыТаблицыЗадолженностей.Вставить("МассивВалют", МассивВалют);
ПараметрыТаблицыЗадолженностей.Вставить("Макет", Макет);
ПараметрыТаблицыЗадолженностей.Вставить("ВыводитьПодвал", Ложь);

Если ДанныеДокумента.РасшифровкаПоПартнерам Тогда
Для Каждого Партнер Из МассивПартнеров Цикл
ТабличныйДокумент.Вывести(ВывестиТаблицуЗадолженности(ПараметрыТаблицыЗадолженностей, Партнер));
КонецЦикла;
Иначе
ТабличныйДокумент.Вывести(ВывестиТаблицуЗадолженности(ПараметрыТаблицыЗадолженностей));
КонецЕсли;

ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ОбластьМакета.Параметры.Заполнить(ДанныеДокумента);
ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации,
"ПолноеНаименование,ИНН,ЮридическийАдрес");

ОбластьМакета.Параметры.КонтрагентНаименование   = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте,
"ПолноеНаименование,ИНН,ЮридическийАдрес");
ТабличныйДокумент.Вывести(ОбластьМакета);

КонецЕсли;

КонецЕсли;

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеДокумента.ДокументСсылка);

КонецЦикла;

ТабличныйДокумент.АвтоМасштаб = Истина;

Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;

Возврат ТабличныйДокумент;

КонецФункции
#КонецОбласти


Функция Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт


//СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
возврат СформироватьПечатнуюФормуАктСверкиВзаимныхРасчетов(МассивОбъектов, ОбъектыПечати, ПараметрыПечати.ОтображатьФаксимиле);


КонецФункции

ЭтоУТ11_4=лев(Метаданные.Версия,4)="11.4";

 

 

5 Comments

  1. user604957_bap-omsk

    Интересно, НО — а нельзя ли ГРУППОВОЕ получение АКТОВ сверки по АРЕНДЕ недвижимости получить (1С БУХ +модуль Аренда), а потом по полученному списку эти акты и отправить… У нас проблема по получению ГРУППОВЫМ методом актов сверок

    Reply
  2. waol

    (1) Это вам нужно писать четкое ТЗ и нанять специалиста. Или просто нанять специалиста, все ему пояснив

    Reply
  3. waol

    (1) 2 — > 1

    Reply
  4. user604957_bap-omsk

    (2) Спасибо! Я как раз пишу четкое ТЗ с образцами, просто — хотелось бы, чтобы откликнулся кто то, кто работал с модулем «АРЕНДА», ибо разработчик сказал, что задача не актуальна, но — если 1000 договоров у кого то, то неужели в каждый договор заходят и выпускают регулярно (например, раз в квартал) Акт сверки? Тем более — у них 5 групповых обработок начиная со счетов и счет фактур

    Reply
  5. yavezde

    Здравствуйте, Управление торговлей, редакция 11 (11.4.6.230).

    Пишет вот такую ошибку.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *