[УТ11] Дебиторка Фифо, вариант с внедрением нового регистра накопления (для значительного ускорения формирования отчета)

09.02.14

Учетные задачи - Взаиморасчеты

Если в УТ11 взаиморасчеты ведутся по договорам, то очень удобно использовать принцип фифо для выяснения документов, по которым возникает долг, это в свою очередь приводит к достаточно "тяжелому" запросу при увеличении количества рассматриваемых документов. Есть несколько способов оптимизации данного отчета, которые иногда дают эффект, а иногда, могут наоборот увеличить время формирования отчета.
В тоже время удобно "поручить" базе данных хранить нужную информацию в удобном для отчета виде. В текущей реализации для этой цели используется регистр накопления остатков, в котором в нужном порядке хранится необходимая информация.

Скачать файлы

Наименование Файл Версия Размер
ВсеФайлыВОдномАрхиве.zip
.zip 17,13Kb
25
.zip 17,13Kb 25 Скачать
ДолгиКлиентовPХ.erf
.erf 15,23Kb
1
.erf 15,23Kb 1 Скачать
Proc.txt
.epf 6,68Kb
0
.epf 6,68Kb Скачать
СозданиеДвиженийПоРегиструДокументыУвеличенияДолгаРХ.epf
.epf 6,68Kb
0
.epf 6,68Kb Скачать

Начнем с общей упрощенной методики расчета:

1. Получаем Партнеров / Договора, по которым имеется долг перед нашей организацией на расчетную дату.

2. Отбираем документы, которые формируют этот долг (обычно нас интересуют реализации товаров)

3. Методом соединения двух одинаковых таблиц, полученных в пп 2, в запросе получаем "обратный нарастающий итог" с детализацией до документа реализации. Этот этап и занимает значительное количество времени при формировании отчета. Здесь возможны некоторые оптимизации, примененные / описанные:

[УТ11] Дебиторка fifo по долгам контрагентов (СКД, управляемый интерфейс) - оптимизация по времени возникновения долга

Нарастающие итоги в запросе и методы ускорения его выполнения. - методы ускорения

Отчет по просроченной задолженности/задолженность по интервалам (УПП УТ 8.1, СКД) - реализация одного из них (применение данного метода для УТ11 дало обратный эффект, отчет формируется раза в 2 дольше обычного без этой оптимизации))

Баттерфляй - метод быстрого расчета нарастающего итога в запросе - еще один метод оптимизации.

Есть варианты вычисления нарастающего итога на "языке 1С", скорее всего, на больших БД тоже будет преимущество.

4. Отбираем из таблицы, полученной в пп. 3, нужные документы и распределяем их а порядке убывания, до момента исчерпания суммы задолженности.

Время исполнения всех пунктов в запросе, за исключением третьего - линейно зависят от количества элементов. Продолжительность исполнения третьего  пункта - пропорциональна квадрату количества элементов, и в больших базах формирование дебиторки по всем клиентам может занимать значительне время (у нас порядка 10 - 15 минут при ~ 2000 клиентов за ~ 2+ года).

Текущая реализация отчета по тому же объему информации формируется не более 20 секунд.

Что для этого сделано (УТ 11.0.9.15):

1. Добавлен регистр накопления "ДокументыУвеличенияДолга" с измерениями "АналитикаУчетаПоПартнерам", "ЗаказКлиента", Ресурсом "Сумма", движения в нем будет делать документ РеализацияТоваровУслуг. Структура этого регистра есть упрощение регистра накопления РасчетыСКлиентами
.

2. В модуль объекта документа "РеализацияТоваровУслуг", некоторое количество кода, для формирования движений по вышеописанному регистру. 

Этот код просто формирует движение прихода в вышеописанном регистре:

В конце процедуры ИнициализироватьДанныеДокумента модуля менеджера, добавим вызов Процедуры ДополнитьДанныеДокументаДляДокументыУвеличенияДолга(ДокументСсылка, ДополнительныеСтойства.ТаблицыДляДвижений); (Реализация во вложении)

Ближе к концу процедуры ОбработкаПроведения модуля объекта (после вызова СкладыСервер.ОтразитьДвиженияСерийТоваров) добавим вызов процедуры ОтразитьДокументыУвеличенияДолга(ДополнительныеСвойства, Движения, Отказ); (Реализация во вложении) 

3. Чтобы сформировались движения по уже проведенным документам, создана специальная обработка, которая дописывает нужные движения в новом регистре (во вложении).

Логика самого отчета (СКД), существенно упрощается, т.к. все данные есть уже в "готовом" виде.

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

 

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

Дебиторка

См. также

"Акты сверки +" Групповая подготовка и рассылка актов сверки для Бухгалтерии 3.0.

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    22071    162    4    

148

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки

Обмен между базами 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    190421    268    238    

268

SALE! 25%

УТ 11, КА 2, ERP 2: Настраиваемые под каждую организацию печать и подпись ответственных лиц в печатных формах (ТОРГ-12, Счёт-фактура, УПД, УКД, Заказ клиента, Акт сверки, М-15 и др.)

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Оперативный учет Управляемые формы 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.

12000 9000 руб.

13.03.2018    56441    179    76    

112

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81562    128    123    

147

Автоматический зачет авансов в 1С:УНФ по ФИФО

Взаиморасчеты Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Знаем о взаиморасчетах в Управлении нашей фирмой все, что только можно знать. Самая большая проблема взаиморасчетов в УНФ в том, что зависают непонятные долги и предоплаты, в Пульсе бизнеса показываются неадекватные цифры, отчеты по долгам показывают не пойми что.

12000 руб.

22.07.2021    23548    24    34    

31

SALE! 25%

Дебиторская задолженность по срокам долга

Взаиморасчеты Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бухгалтерский учет Управленческий учет Платные (руб)

Один из лучших вариантов отчета по дебиторской задолженности. Отображает сроки возникновения задолженности, просроченной задолженности с точностью до регистратора, а также многое другое, вне зависимости от схемы взаиморасчетов (online / offline) и объекта расчетов (УТ 11.3, 11.4, 11.5, КА 2.4, 2.5, ERP 2.4, 2.5), состояния флажка "по документам расчета" ( УТ 10, КА 1.1, УПП 1.3) в договоре. Группирует задолженность по интервалам. Имеет большое количество настроек. Не требует доработок конфигурации.

15120 11340 руб.

28.09.2012    94475    588    268    

139

Групповое создание актов сверок

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработки предназначены для массового создания актов сверки и отправки их по электронной почте для конфигураций Управление торговлей 10.3. и Бухгалтерия предприятия 3.0. Для Бухгалтерии 3.0 Разработка велась на 1С:Предприятие 8.3 (8.3.15.1830). проверялась на Бухгалтерия предприятия 3.0 (3.0.71.83) и 3.0.76.77 Для Управление торговлей 10.3 Разработка велась на 1С:Предприятие 8.3 релиз конфигурации (10.3.61.2) . РАБОТАЕТ НА БАЗОВЫХ и ПРОФ. ВЕРСИЯХ.

2000 руб.

24.04.2020    30341    117    66    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. anig99 2843 08.02.14 02:06 Сейчас в теме
По поводу 3 пункта из первой части статьи: пробовали на СКД или чистым запросом???? Столкнулся с тем, что СКД независимо от настроек что-то странное творит и увеличивает время выполнения отчета.
2. mxm2 1263 08.02.14 21:42 Сейчас в теме
(1) anig99, Вашу оптимизацию делал на СКД (где-то валяется отчет, попробую запросом в консоли). Обычное соединение для вычисления нарастающего итога пробовал и так и эдак - на больших объемах (визуально) одинаковые тормоза, На малых - субъективно СКД - быстрее.
7. ildarovich 7850 28.02.14 15:49 Сейчас в теме
(1) Тоже столкнулся с тем, что
СКД независимо от настроек что-то странное творит и увеличивает время выполнения отчета
- вроде бы разработчики обещали исправить это в ближайшем релизе платформы.
(6) Опубликовал свой "многообещающий" подход к этой задаче: Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали. Правда, пример приведен пока только для УТ10.3, УПП, КА, но это очень просто и в самое ближайшее время сделаю для УТ11. Сравнение с СКД все еще любопытно.
3. ildarovich 7850 09.02.14 11:05 Сейчас в теме
Интересная тема. Но вот какой вопрос: - Вы же сами написали статью Сложные отчеты для управляемых форм с использованием СКД: просто. На примере отчета ABC анализ номенклатуры, клиентов для УТ11. Наверняка прочитали комментарий Якова http://forum.infostart.ru/forum24/topic91425/message963869/#message963869 (он там тремя плюсами отмечен). А почему не попробовали состыковать для решения данной задачи две СКД: в первой с помощью функции ВычислитьВыражение рассчитать нарастающий итог, а во второй - сделать все остальное? Эта идея вроде бы лежит на поверхности. Судя, например, по комментарию http://forum.infostart.ru/forum24/topic94658/message986776/#message986776 к моей статье Баттерфляй - метод быстрого расчета нарастающего итога в запросе. Дело в том, что из-за этого (из-за отсутствия данных по скорости решения на основе двухступенчатой СКД) я не пробую пока свой подход к этой задаче.
4. mxm2 1263 09.02.14 12:52 Сейчас в теме
(3) ildarovich, Если использовать "ВычислитьВыражение" в СКД, (хотя не соображу как конкретно), то можно обойтись стандартом СКД, без "прокладки" в виде языка 1С, но и в этом случае всеравно будет Вычисление нарастающего итога, а при использовании регистра накопления остатков, мы берем готовые значения (почти готовые).
Отчет с "прокладкой" - работает быстрее чем через соединение, но медленнее чем с использованием регистра (в общем то понятно почему).
5. ildarovich 7850 09.02.14 13:39 Сейчас в теме
(4) Нарастающий итог в первом СКД может вычисляться так
ВычислитьВыражение("Сумма(Значение)", "МояГруппировка" , , "Первая", "Текущая")
Собственно расчет должен выполняться ОЧЕНЬ быстро. Пусть этот подход съест 5 лишних секунд по сравнению с использованием регистра. Тогда будет не 20, а 25 секунд (очень хочется знать сколько именно). Но зато не придется менять конфигурацию! Это существенно расширит область применения отчета. Тут действует "правило ступеньки" - всего одна ступенька перед входом в магазин может отпугнуть до 70% потенциальных покупателей.
6. mxm2 1263 09.02.14 13:55 Сейчас в теме
(5) ildarovich, согласен, попробую на досуге.
8. vx_gas 26 14.05.14 14:16 Сейчас в теме
Не знаю за другие конфигурации, но в упп этот велосипед уже придуман, регистр называется "расчеты по реализации в условных единицах" ну и по приобретению где - то так же. На вскидку не помню, конфигуратор уже закрыл :)
Оставьте свое сообщение