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

10.02.22

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

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

Файлы

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

Наименование Скачано Купить файл
РассчитатьПартиюРекурсивно
.bsl 29,76Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

11691 руб.

21.10.2017    101100    442    185    

370

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

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

14640 руб.

01.08.2025    5331    22    2    

22

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

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

14640 руб.

29.04.2020    50918    138    162    

93

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

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

9760 руб.

25.02.2026    1077    5    2    

6

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

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

5500 руб.

09.10.2020    23934    68    24    

60

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

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

28466 руб.

20.03.2018    86421    294    79    

318

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

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

7564 руб.

15.03.2016    124716    312    174    

292
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 208 23.01.24 09:06 Сейчас в теме
(3)
Далее локализовал источник ошибки и исправил ситуацию


Подскажите, очень похожая ситуация на вашу, тоже с возвратной тарой. А каким образом исправили ситуацию? Оприходование просто перенесли на начало месяца или какие-то другие манипуляции проводили (например подгоняли даты возвратов к датам реализаций, чтобы минуса не было в следующей реализации). Несколько дней уже бьюсь, номенклатуру - вижу, вроде исправил уже минуса. А зацикливание всё равно происходит. Может какие-то дополнительно манипуляции произвести необходимо или куда внимательнее посмотреть?
5. user650551_lvh 08.11.24 10:31 Сейчас в теме
Большое спасибо автору! Чуть подправила под текущие функции релиза и наш сентябрь был спасен :-) Вот оно, простое счастье 1с-ника :-)
6. Dragonim 156 15.07.25 21:47 Сейчас в теме
(5) Добрый день. А можете поделиться знаниями где что и как менять? Или готовой доработкой для текущей версии?
7. CYMTU 2 30.09.25 10:26 Сейчас в теме
(5) Присоединяюсь, к просьбе выше. А может у кого уже есть решение для версий 2.5.22.91?
Для отправки сообщения требуется регистрация/авторизация