Содержание:
1. Что такое нарастающие итоги в 1С
2. Задача по определению просроченных долгов
3. Алгоритм решения с нарастающими итогами в 1С
1. Что такое нарастающие итоги в 1С
В данной статье будет описано, что такое нарастающие итоги в 1С, а также как проводить работу с нарастающими итогами для оптимизации бизнес-процессов.
Нарастающий итог – это некоторые промежуточные суммы, которые необходимы для общего представления всей суммы по данным относительно времени. При помощи сумм нарастающих итогов можно проводить оценку суммарного вклада некоторой величины в конкретном периоде.
2. Задача по определению просроченных долгов
Пусть у нас есть две таблицы – «Долги» и «Обороты», как показано ниже:
Рис. 1 Таблица Долгов
Рис. 2 Таблица «Обороты»
Задача: сделать таблицу «Просроченные основные долги», как показано ниже:
Рис. 3 Таблица просроченных основных долгов
В исходной таблице находится документация на величину, которая равна сумме долга контрагента.
Принцип нахождения исходной таблицы – это распределение строки «Накл. 2», которая имеет регистратор, внутри таблицы «Обороты».
Таким образом сумма долга будет иметь такой вид сложения:
· Строка «Накл. 4» – 100;
· Строка «Накл. 3» – 80;
· Строка «Накл. 2» – 20, а 20 – это некоторая часть из «Сумма» в текущей строке внутри таблицы «Обороты».
То есть получается, что нужно найти внутри таблицы «Обороты» строку, которая будет являться крайней во всём порядке строк в таблице, которая подбирает в противоположном порядке строки до нужной суммы долга.
3. Алгоритм решения с нарастающими итогами в 1С
Рассмотрим подробный алгоритм для решения данной задачи.
1. Для начала, необходимо получить общие обороты, учитывая нарастающие итоги с начала каждого месяца в таблице «Обороты». Так как у контрагента в нашем примере долг = 200, то это входит в сентябрь, в котором интервал 180-280. Остаток по долгу, чтобы снова найти нужный поиск, будет происходить так: 200-180 = 20. Верхняя часть таблицы заполняется нарастающими итогами для оборотов, как показано в примере таблице ниже:
Рис. 4 Верхняя часть таблицы заполняется нарастающими итогами
2. Далее у нас появится правильный перечень документации, которая содержит нарастающий итог с начала месяца. Так как последний остаток у нас составляет 20 и он находится в промежутке от 0 до 60, мы нашли необходимую строчку в таблице «Обороты», как показано ниже:
Рис. 5 Нарастающий итог с начала сентября
3. Следующим шагом нужно будет скопировать те строчки в таблице «Обороты», в которых период равен, либо превышает 20.09.09 для новой таблицы. Далее прибавим новые столбцы: «Долг» и «Просроченный долг». Дальше нужно произвести заполнение новых столбцов так, что «Долг» нарастающим итогом в строчке «Накл. 2» = 20, а «Дата отсрочки» – 01.11.09, как демонстрируется на скриншоте ниже:
Рис. 6 Заполнение столбца таблицы «Долг нарастающим итогом»
Выше было описано только два варианта промежутка месяц-документ. Обычно в таблице «Обороты» довольно большая временная плотность, так что необходимо использовать интервал поиска таким образом: год → квартал → месяц → декада → день → документ.
Решение задачи при помощи запросов
Рассмотрим, как должен выглядеть запрос по отчёту в 1С «Просроченный долг», который находится в конфигурации «ПросроченныйДолг.dt». Первичные две таблицы, «Долги» и «Оборот», в запросе будут описаны как справочники.
Для начала необходимо описать ежемесячные обороты, тогда запрос будет выглядеть следующим образом:
Рис. 7 Описание ежемесячных оборотов
Первичная таблица, основанная на запросе «ОборотыПоМесяцам» будет иметь такой вид:
Рис. 8 Таблица ежемесячных оборотов
Далее нужно организовать запрос, чтобы определять итоги, которые нарастают, в «ОборотыПоМесяцам». Текст запроса будет следующим:
Рис. 9 Текст запроса для определения нарастающих итогов в 1С
Результатом данного запроса будет таблица с доходами нарастающим итогом «ОборотыПоМесяцамНарастающие», как демонстрируется на скриншоте ниже:
Рис. 10 Таблица с доходами нарастающим итогом
Далее ищем строку, которая будет иметь промежуток от «СуммаДо» до «СуммаПосле» и будет содержать внутри себя необходимое значение долга нарастающим итогом, для этого, в запросе нужно задействовать таблицы «Долги» и «ОборотыПоМЕсяцамНарастающие» и их соединение:
Рис. 11 Запрос для поиска значения долга нарастающим итогом
В результате выполнения запроса формируется таблица «ДолгиПоВыбраннымМесяцам»:
Рис. 12 Таблица долга нарастающим итогом
Следующим шагом в запросе будет выбор из таблицы с оборотами документации за конкретный временной промежуток:
Рис. 13 Запрос с выбором документации с суммой нарастающим итогом
Результатом будет таблица «ДвиженияПоВыбраннымМесяцам»:
Рис. 14 Таблица Движение по выбранным месяцам с нарастающим итогом в 1С
Дальше нужно получить долги нарастающим итогом, по необходимой документации, для этого запрос будет следующим:
Рис. 15 Запрос для выбора документации по долгам нарастающим итогом
Получим промежуточную таблицу «ДвиженияПредварительные»:
Рис. 16 Таблица Движения предварительные с нарастающим итогом в 1С
Далее, согласно нашему параметру «ОстатокДолга» = 20, нужно выявить одну строку и вывести её внутри таблицы «ДвиженияОкончательные», как демонстрируется в тексте запроса ниже:
Рис. 17 Выбор остатка долга нарастающим итогом
Итогом выполнения данного запроса будет таблица «ДвиженияОкончательные», которая представлена ниже:
Рис. 18 Таблица с остатком дога нарастающим итогом
Последний шаг – это получение окончательной таблицы при помощи таблицы «ДвиженияОкончательные» и таблицы «Обороты»:
Рис. 19 Окончательный запрос с нарастающим итогом
Далее получаем окончательную таблицу «ПросроченныеДолги», как показано ниже:
Рис. 20 Окончательная таблица Просроченные долги
Специалист компании «Кодерлайн»
Айдар Фархутдинов