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

10.02.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
РассчитатьПартиюРекурсивно
.bsl 29,76Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

См. также

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

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

10200 руб.

21.10.2017    90285    351    173    

313

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

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

14400 руб.

29.04.2020    35262    113    152    

77

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

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

28000 руб.

20.03.2018    76634    280    76    

305

Закрытие периода Оптовая торговля Розничная торговля Кассовые операции Учет доходов и расходов Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 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.

6990 руб.

15.03.2016    118744    301    158    

285

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

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

2400 руб.

15.07.2017    64391    157    49    

154

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

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

5880 руб.

12.03.2014    134560    81    97    

108

Закрытие периода Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Менеджер забывает перемещать товар между складами, а в УТ отключен контроль остатков ? Бухгалтер готов застрелиться при закрытии месяца и выравнивании отрицательных остатков по складам и фирмам ? Используй автоматическое перемещение товаров между складами и организациями для 1С УТ 11.

5000 руб.

30.05.2019    29852    33    10    

37

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

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

3600 руб.

30.09.2022    8555    21    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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с-ника :-)
Оставьте свое сообщение