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

09.02.14

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

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

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. Чтобы сформировались движения по уже проведенным документам, создана специальная обработка, которая дописывает нужные движения в новом регистре (во вложении).

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

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

 

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

Дебиторка

См. также

SALE! 10%

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

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

50722 45650 руб.

24.04.2015    194276    149    242    

279

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

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

14400 руб.

13.03.2018    59656    206    76    

120

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

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

3000 руб.

25.11.2020    24034    223    8    

194

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

Мы доработали типовой платежный календарь, добавив в него планируемые постоянные расходы. Теперь можно видеть картину денежных средств в совокупности с текущей динамикой ожидаемых поступлений и расходов. Отчет позволяет увидеть остатки денежных средств в кассе и банке, их движение в разрезе статей ДДС с возможностью выбрать любой период (день, неделя, месяц). Данный отчет подходит для всех основных конфигураций линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289): 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.77.95), 1С:Управление торговлей, 1С:Комплексная автоматизация 2 (2.4.11.67), Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2 (2.4.13.111). Также есть возможность адаптации отчета под другие конфигурации. Мобильное приложение работает как на Android, так и на IOS.

2880 руб.

16.03.2021    21880    13    13    

28

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

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

15120 руб.

28.09.2012    96567    594    283    

144

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

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

12000 руб.

22.07.2021    25300    31    34    

39
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anig99 2851 08.02.14 02:06 Сейчас в теме
По поводу 3 пункта из первой части статьи: пробовали на СКД или чистым запросом???? Столкнулся с тем, что СКД независимо от настроек что-то странное творит и увеличивает время выполнения отчета.
2. mxm2 1268 08.02.14 21:42 Сейчас в теме
(1) anig99, Вашу оптимизацию делал на СКД (где-то валяется отчет, попробую запросом в консоли). Обычное соединение для вычисления нарастающего итога пробовал и так и эдак - на больших объемах (визуально) одинаковые тормоза, На малых - субъективно СКД - быстрее.
7. ildarovich 7926 28.02.14 15:49 Сейчас в теме
(1) Тоже столкнулся с тем, что
СКД независимо от настроек что-то странное творит и увеличивает время выполнения отчета
- вроде бы разработчики обещали исправить это в ближайшем релизе платформы.
(6) Опубликовал свой "многообещающий" подход к этой задаче: Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали. Правда, пример приведен пока только для УТ10.3, УПП, КА, но это очень просто и в самое ближайшее время сделаю для УТ11. Сравнение с СКД все еще любопытно.
3. ildarovich 7926 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 1268 09.02.14 12:52 Сейчас в теме
(3) ildarovich, Если использовать "ВычислитьВыражение" в СКД, (хотя не соображу как конкретно), то можно обойтись стандартом СКД, без "прокладки" в виде языка 1С, но и в этом случае всеравно будет Вычисление нарастающего итога, а при использовании регистра накопления остатков, мы берем готовые значения (почти готовые).
Отчет с "прокладкой" - работает быстрее чем через соединение, но медленнее чем с использованием регистра (в общем то понятно почему).
5. ildarovich 7926 09.02.14 13:39 Сейчас в теме
(4) Нарастающий итог в первом СКД может вычисляться так
ВычислитьВыражение("Сумма(Значение)", "МояГруппировка" , , "Первая", "Текущая")
Собственно расчет должен выполняться ОЧЕНЬ быстро. Пусть этот подход съест 5 лишних секунд по сравнению с использованием регистра. Тогда будет не 20, а 25 секунд (очень хочется знать сколько именно). Но зато не придется менять конфигурацию! Это существенно расширит область применения отчета. Тут действует "правило ступеньки" - всего одна ступенька перед входом в магазин может отпугнуть до 70% потенциальных покупателей.
6. mxm2 1268 09.02.14 13:55 Сейчас в теме
(5) ildarovich, согласен, попробую на досуге.
8. vx_gas 32 14.05.14 14:16 Сейчас в теме
Не знаю за другие конфигурации, но в упп этот велосипед уже придуман, регистр называется "расчеты по реализации в условных единицах" ну и по приобретению где - то так же. На вскидку не помню, конфигуратор уже закрыл :)
Оставьте свое сообщение