Ускорение расчета себестоимости в УПП (партионный учет)

31.01.14

База данных - HighLoad оптимизация

Не секрет, что в момент закрытия периода в УПП приходится неоднократно перепроводить регламентный документ «Расчет себестоимости» для устранения ошибок в учете и получения корректной себестоимости выпуска. И здесь ключевую роль играет время, за которое выполняется полный расчет себестоимости.

Используем партионный учет. Списание партий "по средней".

Как то в очередной раз разбираясь с расчетом себестоимости я заметил такую вещь, что в файловой базе полный расчет выполнялся за 30 секунд, а в серверной порядка 10 минут.

Отладчиком был найден типовой код, выполнение которого занимало большую часть времени. Как это ни удивительно, это оказались запросы по способам распределения статей затрат организации в общем модуле ПроцедурыРасчетаСебестоимостиВыпуска.

Посмотрев текст запроса и просто добавив соответствующие индексы во временные таблицы по способам распределения мы получили ускорение при проведении документа «Расчет себестоимости» в серверной базе почти в 20 раз (10 минут => 30 секунд).

Здесь следует сделать одно замечание: данный способ хорошо работает только в том случае, если в результирующей временной таблице по способам распределения большое число записей. Проверить это просто – выполните запрос из процедуры СформироватьВременнуюТаблицуСпособыРаспределения в консоли. В моем случае в выборке было порядка 100 тыс. записей (90 способов распределения на ~ 1200 подразделений организации (у нас это объекты строительства с этапами)).

Ниже приведены фрагменты кода:

  1. В процедуру СформироватьВременнуюТаблицуСпособыРаспределения сразу после запроса добавляем строки (см. комментарии //ТВИ):

ТекстЗапросаСКомментариями = "

|ВЫБРАТЬ РАЗЛИЧНЫЕ

…(полный текст запроса)...

|";

 

 

//

            ТекстЗапросаСКомментариями = ТекстЗапросаСКомментариями + "ИНДЕКСИРОВАТЬ ПО

|           СтатьяЗатрат,

|           Подразделение,

|           //ДляБухУчета СчетЗатрат,

|           //ДляНалУчета СчетЗатрат,

|           //ДляМеждУчета СчетЗатрат,

|           Период";

//


  1. В функцию СформироватьЗапросПоСпособамРаспределенияЗатрат сразу после строки ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//Поместить", ""); добавляем следующие строки (см. комментарии //ТВИ):

           

Если ФормироватьВременнуюТаблицу Тогда

                        ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//Поместить", "");

                        //

                        Если ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете Тогда

                                   ТекстЗапроса = ТекстЗапроса + "ИНДЕКСИРОВАТЬ ПО

                                                           СпособыРаспределения.СтатьяЗатрат,    

                                                           СпособыРаспределения.Подразделение";

                        Иначе

                                   ТекстЗапроса = ТекстЗапроса + "ИНДЕКСИРОВАТЬ ПО

                                                           СпособыРаспределения.СтатьяЗатрат,    

                                                           СпособыРаспределения.Подразделение,

                                                           СпособыРаспределения.СчетЗатрат";

                        КонецЕсли;

                        //

Вступайте в нашу телеграмм-группу Инфостарт

ускорение расчет себестоимости УПП

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Анализ учета Закрытие периода НДС 22% Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Налог на прибыль НДС Платные (руб)

Каждый бухгалтер не раз сталкивался с требованием от налоговой инспекции пояснить расхождения в показателях декларации по Налогу на прибыль («Доходы от реализации» + «Внереализационные доходы») и налоговой базой по НДС за год. Являются ли ошибкой подобные расхождения? Как пояснить налоговой их причину? Отчет «Анализ расхождений выручки НДС и Налога на прибыль в декларациях» для 1С (БП 3.0 ПРОФ и КОРП, КА 2, ЕRP) поможет найти все расхождения.

11691 руб.

21.10.2017    101303    444    185    

371

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    51146    140    162    

95

Регламентированный учет и отчетность Операции по ВЭД Закрытие периода Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Расширение для заполнения реестров НДС в 1С:Бухгалтерии предприятия 3.0. Реестр по НДС: КНД 1155112, КНД 1155113, КНД 1155114, КНД 1155115.

14640 руб.

01.08.2025    5468    24    3    

23

Учет доходов и расходов Закрытие периода Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение регламентирует учет доходов будущих периодов (ДБП) в организации: сохраняет подробную информацию о объекте ДБП. По окончании месяца на основе введенной информации формируются проводки списания ДБП, отчеты для бухгалтерского и налогового учета. Подходит как для различных версий Бухгалтерии 8.3, так и для ERP и КА.

5500 руб.

09.10.2020    23980    68    24    

60

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

В современных конфигурациях УТ 11, КА 2, ERP 2 и их аналогах присутствует механизм закрытия периода. Но при ошибках учета закрыть период корректно становится практически невозможно! Давайте попробуем разобраться, как можно устранить ошибки и закрыть корректно месяц!

28466 руб.

20.03.2018    86635    294    79    

318

Закрытие периода 1С 8.3 1С 8.5 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Дополняет стандартную форму закрытия месяца полем «по» и кнопкой «Закрыть период». Позволяет последовательно закрыть несколько месяцев подряд — от выбранного месяца до указанного конечного — в фоне, с отображением прогресса и протоколом по каждому месяцу.

10980 руб.

09.06.2026    337    2    0    

3

Анализ продаж Учет доходов и расходов Закрытие периода Анализ учета Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Отчет показывает валовую прибыль, не требуя закрытия месяца. Показатели выручки и количества полностью совпадают с показателями стандартного отчета. Плюс добавлены дополнительные показатели, которых нет в стандартном - процент наценки, средняя цена закупа, средняя цена продажи за период отчета. Себестоимость товаров рассчитывается исходя из цен закупа на дату продажи (предусмотрено три варианта сбора цен закупа). Учитывает упаковки, валюты, с/без НДС, поддерживает обе версии 2 и 2.5 ценообразования, отбор по сегментам, позволяет исключить продажи между собственными фирмами. Возможна адаптация под вашу конфигурацию

9760 руб.

25.02.2026    1132    5    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kapustinag 05.02.14 10:45 Сейчас в теме
Воспользовался Вашим советом и получил сначала на тестовой базе, а потом и на рабочей ускорение расчета себестоимости по бух.учету примерно в 2.5 - 3 раза. Проведение документа было 2ч 40 минут - 2ч 50 минут - стало 50 минут - 1 ч.
Временная таблица, которую индексировали в функции СформироватьВременнуюТаблицуСпособыРаспределения(), у меня содержит 142000 строк.

Думаю, программисты фирмы 1С не предполагали в ней такого большого количества строк.
А, если вдуматься, разбухание этой таблицы практически неизбежно на производственной информационной базе - хотя бы из-за пометки на удаление некоторых подразделений и создания новых. Старые-то подразделения удалить нельзя.
katod1985; V.Nikonov; +2 Ответить
3. wolfsoft 2420 05.02.14 11:23 Сейчас в теме
(1) kapustinag, есть стойкое ощущение, что программисты 1с вообще не предполагают, как их детища будут работать на реальных предприятиях...
Zerocool-2013; +1 Ответить
2. kapustinag 05.02.14 10:50 Сейчас в теме
На самом деле, при внимательном взгляде на запросы в этом общем модуле ПроцедурыРасчетаСебестоимостиВыпуска, видны еще возможности для ускорения.
Попробую; напишу, если будет существенный эффект.
4. I_r_a 11.02.14 11:01 Сейчас в теме
Раньше себестоимость считалась 20-30 мин, сейчас около 5 минут, большое спасибо.
katod1985; +1 Ответить
6. olbu 10.10.14 09:59 Сейчас в теме
(4) I_r_a,
Доброго времени суток!
Можно у вас спросить, как вы добились таких скоростных результатов?
Исключая "железо"...
Может какие настройки у вас на это повлияли? у нас проведение РСВ длится уже 2 часа...
5. olbu 07.10.14 10:15 Сейчас в теме
Вот и я столкнулся с этой проблемой... РСВ БУ проводится около 1,5 часа, финансисты в ужасе...
сделал как тут указано... скорость проведения, со слов финансистов не изменилась...
сисадмин уже провел все возможные комбинации с sql и 1с сервером, теперя все косые взгляды на меня... :(

Вопрос:
Используется "котловой" метод, 2 номенклатурные группы, Партионный учет... Без 40 счета...
Может есть какие - либо настройки в УПП, влияющие на скорость проведения РСВ?
Для отправки сообщения требуется регистрация/авторизация