В начало

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

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

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

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

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

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

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

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

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

      КонецЕсли;

     

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

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

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

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

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

 

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

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

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

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

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

      КонецЕсли;

     

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

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

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

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

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

 

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

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

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

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

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

ВЫБОР

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

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

КОНЕЦ

 

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