При проведении документа вышла такая ошибка "Переполнение стека встроенного языка на сервере".
Но в журнале регистрации никакой ошибки не видно. Как отследить где это ошибка. ПРи моделировании ситуации такого не получилось произвести.
Как отследить не подскажу, но замечу что одна из причин переполнения стека это рекурсивный вызов функций, то есть когда функция сама себя вызывает, поэтому советую посмотреть нет ли такого кода при проведении, если есть то скорее всего в этом причина.
Где-то в коде на сервере возникает бесконечная рекурсия.
Как отследить — запустить отладку на сервере и воспроизвести ошибку.
Например, имеем код внешней обработки:
У меня была такая проблема. Как не странно проблема была даже не в коде, а в данных. Справочник ссылался сам на себя. И когда запускалась определенная процедура стала выходить такая ошибка. (На старых платформах просто вылетала программа без объяснений).
(4) Спасибо!
Не представляете, как вы мне помогли!
Документооборот. Регистр "СвязиДокументов".
Вместо бесконечного шагания отладчиком (что ни к чему бы и не привело), просто вычислил лишнюю связь документов, из-за чего цикл возникал при запуске процесса (Договор связан с допсоглашением, которое связано тем же типом связи с этим же договором, который связан... и так до бесконечности).
У меня тоже такая же ошибка возникает при копировании пользователя и при записи прав доступа.
Переполнение стека встроенного языка на сервере
{Справочник.Пользователи.Форма.ФормаЭлемента.Форма(1713)}: Записать(ПараметрыЗаписи);
{mngcore/MessageBox.clf(4)}: Close(-100);
по причине:
Переполнение стека встроенного языка на сервере
по причине:
Справочник.Пользователи.Форма.ФормаЭлемента.Форма : 403 : МодульУправлениеДоступомСлужебный.ПриКопированииПравНовомуПользователю(Источник, Приемник);
ОбщийМодуль.УправлениеДоступомСлужебный.Модуль : 1964 : УправлениеДоступом.ВключитьПрофильПользователю(Приемник, Выборка.Профиль);
ОбщийМодуль.УправлениеДоступом.Модуль : 562 : ВключитьОтключитьПрофильПользователя(Пользователь, Профиль, Истина);
ОбщийМодуль.УправлениеДоступом.Модуль : 3105 : ГруппаДоступаОбъект.Записать();
...
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 225 : ЗапретитьИспользованиеУдаляемыхОбъектов(Источник, Отказ);
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 1044 : Если Не ПроверятьИспользованиеУдаляемыхОбъектов() Тогда
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 1533 : ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено();
ОбщийМодуль.ОбщегоНазначения.Модуль : 0
по причине:
Переполнение стека встроенного языка на сервере
Подскажите пожалуйста, где конкретно смотреть эту ошибку, что-то я не могу понять.
(7)У меня была проблема со ссылкой самого на себя(Была внутри справочника таблица с этим же справочником). И вовремя запроса вываливалось с такой проблемой. Но это было давно на УПП.
А тут судя по коду какая-то свежая конфигурация. И походу возникает, когда вы пытаетесь скопировать права пользователю новому или уже созданному.
Вы в конфигурации меняли ссылки на справочники или в режиме предприятия??
Я пробовала удалять все данные из справочника профили групп доступа (кроме администратора) , ошибка сохраняется.
При нажатии на кнопку изменить и закрыть.
Я также создала тему на форуме
https://forum.infostart.ru/forum9/topic265513/#message2683146
база после переноса или нет- я не могу ответить на этот вопрос.
Бух Корп 3.0 + БИТ.ФИНАНС 3.1 (3.0.90.53/3.1.48.3)
в чистой новой базе
при сохранении спр.Профили групп доступа ошибки не возникает.
Я очистила все значения из старой конфигуции, оставила только администратора.
Но я не могу изменить доступные роли- не активна кнопка включить /исключить роли.
Может кому-то будет интересно. Возникла такая же ошибка в серверной базе. При этом заметили, что при закрытии на файловой - ее нет. Ответ оказался простым и неочевидным. Оказывается в настройках закрытия месяца имеется специальный параметр, который отслеживает длину цепочек движения партии в рекурсии. По умолчанию установлено значение 880 (для файловой, наверное, не актуально). Нужно подобрать эмпирическим путем требуемое.
Тоже добавлю немного в археологические данные...
Перестали происходить регламентные обмены.
При ручных обменах клиент просто начал закрываться во время загрузки.
По журналу посмотрели детали о проблеме:
Переполнение стека встроенного языка на сервере
по причине:
Путём установки контрольной точки отладки на УдалитьНаборЗаписейВРегистреСведений нашли, что единица измерения постоянно регистрируется с типом ошибки "Незаполненные реквизиты".
Заканчивает регистрировать - и снова то же самое. Как бы вот она - рекурсия.
Проверили единицу измерения и выяснили, что у её владельца-номенклатуры вместо единицы отчетов стоит "Объект не найден". Тут же в процессе отладки параллельно открыл клиент, исправил номенклатуру... и обмен поехал дальше.
П.С. Вспомнил, что когда-то у нас закрывался клиент при записи определенных единиц измерения. Там тоже была рекурсия, связанная с перезаписью коэффициента единицы хранения на "1" у владельца записываемой единицы. Как оказалось, единица хранения была указана та же самая. И так как коэффициент был не равен единице - то запись единицы уходила в рекурсию (проверяла единицу хранения у владельца, при перезаписи коэффициента снова уходила в проверку единицы хранения у владельца и так бесконечно до вылета).
Исправили записью коэффициента = 1 в режиме обмена. Заодно подправили типовой код (УПП), чтобы он дополнительно проверял, а не является ли единица хранения той же самой единицей, которую мы записываем. Проблема ушла...
на самом деле эта процедура (ПередЗаписью) была частью нашлёпки на типовую УПП, называющая себя "Агент Плюс. Управление производственным предприятием для Украины, редакция 1.3"