В начало

«Взаиморасчеты» в СКД

           

Есть регистр накопления «Взаиморасчеты» с типом «Остатки». Регистр имеет измерение «Контрагент» и ресурс «СуммаДолга». Движения формируются документами «ПриходнаяНакладная» и «РасходнаяНакладная».

Необходимо сформировать отчет по контрагентам кто, кому и сколько должен.

Сначала нужно сформировать движения регистра накопления «Взаиморасчеты» по документам «ПриходнаяНакладная» и «РасходнаяНакладная».

 

Листинг 1. Движение по документу «ПриходнаяНакладная»

СуммаДокумента = Товары.Итог("Сумма");

Если НЕ Валюта.Пустая() Тогда

      Курс = ОбщиеМеханизмы.ПолучитьКурсВалюты (Валюта);

      СуммаДокумента = СуммаДокумента / Курс;

КонецЕсли;

     

//Регистр накопления Взаиморасчеты

Движение = Движения.Взаиморасчеты.ДобавитьРасход();

Движение.Период = Дата;

Движение.Контрагент = Контрагент;

Движение.СуммаДолга = СуммаДокумента;

 

Листинг 2. Движение по документу «РасходнаяНакладная»

СуммаДокумента = Товары.Итог("Сумма");

Если НЕ Валюта.Пустая() Тогда

      Курс = ОбщиеМеханизмы.ПолучитьКурсВалюты (Валюта);

      СуммаДокумента = СуммаДокумента / Курс;

КонецЕсли;

 

//Регистр накопления Взаиморасчеты

Движение = Движения.Взаиморасчеты.ДобавитьПриход();

Движение.Период = Дата;

Движение.Контрагент = Контрагент;

Движение.СуммаДолга = СуммаДокумента;

 

            Если провести документы, то в регистре сведений сформируются следующие движения.

Рис. 1. Движения по регистру сведений «Взаиморасчеты»

 

            Затем, открываем дерево объектов и создаем новый отчет, называем его просто – «Взаиморасчеты» и открываем основную схему компоновки данных (СКД). Добавляем новый запрос, напускаем конструктор запроса, выбираем виртуальную таблицу «Взаиморасчеты.Остатки», а в ней все поля.

            Потом немножко колдуем с основной схемой компоновки данных, запускаем конфигурацию и получаем отчет. В конструкторе запроса разделяем поля с нашим долгом и долгом нам. Для этого пишем функцию выбора.

Листинг 3. Наш долг

ВЫБОР

                КОГДА ВзаиморасчетыОстатки.СуммаДолгаОстаток < 0

                               ТОГДА -ВзаиморасчетыОстатки.СуммаДолгаОстаток

КОНЕЦ

 

Рис. 2. Сформированный отчет