Медленно закрывается период по 20, 23, 25, 26 счетам в БП 2.0.42.5(6)

30.11.12

Задачи пользователя - Закрытие периода

Медленно закрывается период по 20, 23, 25, 26 счетам в БП 2.0.42.5(6)

Сегодня бухгалтерия меня поставила перед фактом, медленно закрывается период регламентной операцией закрытия 20, 23, 25, 26 счетов. Скорее даже не просто медленно, а бессмысленно ждать свыше получаса, то что закрывалось еще недавно минут за пять.

Расскопки показали, что обновление БП 2.0.42.5 вносит интересную ошибку. Вероятно это связано с исправлением еще одной ошибки "Исправлена ошибка 10092826 - Закрытие месяца может работать неоптимально на предприятиях с большим количеством производственных операций", однако же эффект радикально обратный.

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

 

Так или иначе в модуле документа "РегламентнаяОперация" изменена процедура "РасчетПрямыхЗатрат".

 

Код до изменения:

  

Процедура РасчетПрямыхЗатрат(СтруктураШапкиДокумента, ВыполненоРаспределениеОХРИлиОПР = Ложь, СтруктураДопПараметров)

    Если
ПорядокПеределов = Неопределено Или ПорядокПеределов.Количество() = 0 Тогда

        Если Не
СтруктураШапкиДокумента.УчетнаяПолитика.ПорядокРаспределенияРасходовНаОказаниеУслуг = Перечисления.ПорядокРаспределенияРасходовНаОказаниеУслуг.ПоПлановымЦенам Тогда

           
ДвиженияПоПрямымЗатратамПоУслугам(СтруктураШапкиДокумента, СтруктураДопПараметров, ВыполненоРаспределениеОХРИлиОПР);
        КонецЕсли;

        Возврат;
    КонецЕсли;

   
КоличествоПеределов = ПорядокПеределов[ПорядокПеределов.Количество() - 1].НомерПередела;

    Для
НомерПередела = 1 По КоличествоПеределов
Цикл

       
ПодразделенияИНоменклатурныеГруппы =
           
ПорядокПеределов.Скопировать(Новый Структура("НомерПередела", НомерПередела), "Подразделение, НоменклатурнаяГруппа");

        Если Не
ВыполненоРаспределениеОХРИлиОПР Тогда
           
ОценкаОстатковНЗПпоРазницам(СтруктураШапкиДокумента, СтруктураДопПараметров, ПодразделенияИНоменклатурныеГруппы);
        КонецЕсли;

       
// Распределение прямых расходов по тем подразделениям, которым присвоен
        // текущий номер передела.
       
МассивНоменклатуры = Новый Массив; // массив номенклатуры, у которой, в результате расчета себестоимости, изменилась средневзвешенная стоимость.
       
ДвиженияПоПрямымЗатратам(СтруктураШапкиДокумента, ПодразделенияИНоменклатурныеГруппы, ВыполненоРаспределениеОХРИлиОПР, МассивНоменклатуры, СтруктураДопПараметров);

        Если
МассивНоменклатуры.Количество() > 0 Тогда
           
КорректирровкаСтоимостиСписанияВыпущеннойПродукции(СтруктураШапкиДокумента, МассивНоменклатуры, ВыполненоРаспределениеОХРИлиОПР, СтруктураДопПараметров);
        КонецЕсли;

    КонецЦикла;

КонецПроцедуры
// РасчетПрямыхЗатрат()


Код после изменения:


Процедура РасчетПрямыхЗатрат(СтруктураШапкиДокумента, ВыполненоРаспределениеОХРИлиОПР = Ложь, СтруктураДопПараметров)

    Если
ПорядокПеределов = Неопределено Или ПорядокПеределов.Количество() = 0 Тогда

        Если Не
СтруктураШапкиДокумента.УчетнаяПолитика.ПорядокРаспределенияРасходовНаОказаниеУслуг = Перечисления.ПорядокРаспределенияРасходовНаОказаниеУслуг.ПоПлановымЦенам Тогда

           
ДвиженияПоПрямымЗатратамПоУслугам(СтруктураШапкиДокумента, СтруктураДопПараметров, ВыполненоРаспределениеОХРИлиОПР);
        КонецЕсли;

        Возврат;
    КонецЕсли;

    Для каждого
Передел Из ПорядокПеределов Цикл

       
ПодразделенияИНоменклатурныеГруппы =
           
ПорядокПеределов.Скопировать(Новый Структура("НомерПередела", Передел.НомерПередела), "Подразделение, НоменклатурнаяГруппа");

        Если
ПодразделенияИНоменклатурныеГруппы.Количество() = 0 Тогда
            Продолжить;
        КонецЕсли;

        Если Не
ВыполненоРаспределениеОХРИлиОПР Тогда
           
ОценкаОстатковНЗПпоРазницам(СтруктураШапкиДокумента, СтруктураДопПараметров, ПодразделенияИНоменклатурныеГруппы);
        КонецЕсли;

       
// Распределение прямых расходов по тем подразделениям, которым присвоен
        // текущий номер передела.
       
МассивНоменклатуры = Новый Массив; // массив номенклатуры, у которой, в результате расчета себестоимости, изменилась средневзвешенная стоимость.
       
ДвиженияПоПрямымЗатратам(СтруктураШапкиДокумента, ПодразделенияИНоменклатурныеГруппы, ВыполненоРаспределениеОХРИлиОПР, МассивНоменклатуры, СтруктураДопПараметров);

        Если НЕ
Отказ И МассивНоменклатуры.Количество() > 0 Тогда
           
КорректирровкаСтоимостиСписанияВыпущеннойПродукции(СтруктураШапкиДокумента, МассивНоменклатуры, ВыполненоРаспределениеОХРИлиОПР, СтруктураДопПараметров);
        КонецЕсли;

    КонецЦикла;

КонецПроцедуры
// РасчетПрямыхЗатрат()


Видно, что привнесли изменение в оператор цикла.

Раньше тело цикла вызывалось по числу раз не более чем число переделов, а теперь ровно столько сколько строк в таблице значений "ПорядокПеределов".

В моей случае в таблице "ПорядокПеределов" в колонке "НомерПередела" везде единица и раньше тело цикла выполнялось один раз для всех 200+ строк этой таблицы (других переделов нет). 

Теперь же выходит, что тело цикла выполняется 200+ раз (по числу строк таблицы значений "ПорядокПеределов"), тогда как достаточно одной итерации чтобы закрыть период.

200+ * 5 минут / 60 минут/час = 16+ часов. Неслабо для одного передела.


Пришлось откатить изменение в документе назад!!!

Если неправ, то прошу направьте на путь истинный

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

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

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

См. также

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

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

11691 руб.

21.10.2017    101576    450    185    

372

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

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

14640 руб.

29.04.2020    51533    141    162    

96

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

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

14640 руб.

01.08.2025    5738    24    3    

23

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

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

5500 руб.

09.10.2020    24094    69    28    

62

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

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

28466 руб.

20.03.2018    87059    295    79    

319

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

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

5084 руб.

30.09.2022    10746    26    1    

26

Корректировка данных Закрытие периода Мастера заполнения Программист Бизнес-аналитик Бухгалтер Пользователь 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 1С:УНФ Платные (руб)

Оптимизируйте процесс закрытия периодов. Автоматизируйте любые, даже самые сложные правила переноса и выполните инвентаризацию остатков за минуты. Гибкая обработка для 1С, которая работает как самостоятельный модуль — без привязки к БСП и с поддержкой большинства конфигураций. Ваш идеальный помощник для закрытия периода, исправления ошибок, реорганизации учета, корректировки и списания остатков.

6100 руб.

28.01.2026    1584    5    0    

4
Для отправки сообщения требуется регистрация/авторизация