При выполнении операции закрытия месяца "Распределение затрат и расчет себестоимости" произошла ошибка: Переполнение стека встроенного языка на сервере

10.02.22

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

Описание решения проблемы переполнения стека при выполнении операции закрытия месяца "Распределение затрат и расчет себестоимости" в 1С:ERP Управление предприятием, редакция 2.4.13.123.

Скачать исходный код

Наименование Файл Версия Размер
РассчитатьПартиюРекурсивно
.bsl 29,76Kb
4
.bsl 29,76Kb 4 Скачать

Столкнулись с проблемой, когда при распределении затрат и расчете себестоимости при закрытии месяца (1С:ERP Управление предприятием, редакция 2.4.13.123) получили ошибку "Переполнение стека встроенного языка на сервере". Мы воспользовались встроенным ограничителем (в настройках формы закрытия месяца) для рекурсивных функции и экспериментально выяснили, что для избежания этой ошибки значение по умолчанию 650 надо уменьшить до 430, тогда ошибка уходит, но и затраты полностью не распределяются. Проблема не решена.

Анализ работы алгоритма и данных, показал, что проблема не в циклических ссылках (в штатном алгоритме заложена проверка на циклические ссылки), а просто очень большой список документов для распределения, где-то порядка 1300+, а штатный алгоритм на каждый шаг для распределения вызывает рекурсивно сам себя и чтобы полностью распределить все затраты, понадобилась бы глубина рекурсии 1300+ соответственно.

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

Привожу получившийся результат:

 
 Измененная функция РасчетСебестоимостиПрикладныеАлгоритмы.РассчитатьПартиюРекурсивно

После применения измененного алгоритма затраты распределились и себестоимость рассчиталась. Ограничение на количество шагов из алгоритма удалять не стал, поэтому ограничение в настройках выставили в 2000.

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

На этом все. Надеюсь, это будет полезно еще кому-нибудь.

Переполнение стека расчет себестоимости

См. также

Анализ расхождений выручки НДС и Налога на прибыль в декларациях (БП 3.0 ПРОФ и КОРП, КА 2, ЕRP)

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

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

7200 руб.

21.10.2017    84608    267    171    

260

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    28548    86    147    

61

Помощник закрытия месяца

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

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

9000 руб.

20.03.2018    70792    269    58    

295

Обработка "Списание доходов будущих периодов" и расширение

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

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

5500 руб.

09.10.2020    18908    41    18    

38

Автоматическое закрытие месяца в УНФ

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

Закрытие месяца в Управлении нашей фирмой — это очень важная задача, которую надо выполнять регулярно. Как обычно, все важное и регулярное делать мы почему-то забываем =)

3600 руб.

30.09.2022    7394    14    0    

13

Помощник исправления развернутого сальдо по видам запасов и ГТД

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

Обработка позволяет исправить развернутое сальдо по видам запасов, которое осталось после штатной обработки перепроведения документов. Подходит для конфигураций: УТ 11, КА 2, ERP

2400 руб.

15.07.2017    62772    146    45    

142

Книга доходов и расходов и кассовая книга для 1С 8.х любой конфигурации для предприятий на УСН, ПСН, ЕСХН

Закрытие периода Оптовая торговля Розничная торговля Кассовые операции Учет доходов и расходов Платформа 1С v8.3 Бухгалтерский учет 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:CRM ПРОФ, КОРП Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Гостиничный бизнес Пищевая промышленность Россия Бухгалтерский учет Налоговый учет ЕНВД ЕСХН ИП, ПБОЮЛ, КФХ Налог на прибыль НДС УСН Платные (руб)

Внешняя обработка для ведения в электронной форме КУДиР - книги учёта доходов и расходов для предприятий на УСН, ПСН, ЕСХН. Заполнение раздела 1 - "доходы и расходы" из журнала документов вашей ИБ (любой конфигурации 1С:Предприятие 8). Формирование отчета Кассовая книга КО-4 по данным раздела 1.

7788 руб.

15.03.2016    115715    285    157    

276
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SkorikA 83 23.01.23 16:31 Сейчас в теме
1С:ERP релиз 2.5.8.378 столкнулся с такой же проблемой.
(shsa) не подскажете, данный вариант решения все еще актуален? Я понимаю что код из статьи уже нет, но сам вариант решения с уходом от рекурсии в сторону итераций?
A.Belash; +1 Ответить
2. anna_kr 02.03.23 10:14 Сейчас в теме
(1) Добрый день! удалось вам решить проблему на релизе 2.5.8.378?
3. SkorikA 83 03.03.23 04:58 Сейчас в теме
(2) Добрый день! Проблема решилась. В моём случае она была в исходных данных. Решал иначе: сначала уменьшил максимальную длину цепочки - для того чтобы при расчете корректно фиксировалась ошибка ("превышена максимальная длина цепочки..", а не переполнение стека с прекращением расчета). На ошибке ставил точку остановки и уже смотрел на какой аналитике/цепочке вызывалась ошибка. С этой информацией уже анализировал данные.

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

В моём случае бы хватило уменьшения ограничителя (все остальное корректно посчиталось), но долг требовал разобрать ситуацию полностью:)
4. insurgut 207 23.01.24 09:06 Сейчас в теме
(3)
Далее локализовал источник ошибки и исправил ситуацию


Подскажите, очень похожая ситуация на вашу, тоже с возвратной тарой. А каким образом исправили ситуацию? Оприходование просто перенесли на начало месяца или какие-то другие манипуляции проводили (например подгоняли даты возвратов к датам реализаций, чтобы минуса не было в следующей реализации). Несколько дней уже бьюсь, номенклатуру - вижу, вроде исправил уже минуса. А зацикливание всё равно происходит. Может какие-то дополнительно манипуляции произвести необходимо или куда внимательнее посмотреть?
Оставьте свое сообщение