Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Переполнение стека встроенного языка на сервере

Переполнение стека встроенного языка на сервере
Я
   Анастасия_85
 
09.07.21 - 08:10
Доброго дня.

При создании/копировании прав доступа пользователя возникает такая ошибка.
Переполнение стека встроенного языка на сервере
{Справочник.Пользователи.Форма.ФормаЭлемента.Форма(1713)}:    Записать(ПараметрыЗаписи);
{mngcore/MessageBox.clf(4)}:    Close(-100);

по причине:
Переполнение стека встроенного языка на сервере
по причине:

Справочник.Пользователи.Форма.ФормаЭлемента.Форма : 403 : МодульУправлениеДоступомСлужебный.ПриКопированииПравНовомуПользователю(Источник, Приемник);
ОбщийМодуль.УправлениеДоступомСлужебный.Модуль : 1964 : УправлениеДоступом.ВключитьПрофильПользователю(Приемник, Выборка.Профиль);
ОбщийМодуль.УправлениеДоступом.Модуль : 562 : ВключитьОтключитьПрофильПользователя(Пользователь, Профиль, Истина);
ОбщийМодуль.УправлениеДоступом.Модуль : 3105 : ГруппаДоступаОбъект.Записать();
...
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 225 : ЗапретитьИспользованиеУдаляемыхОбъектов(Источник, Отказ);
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 1044 : Если Не ПроверятьИспользованиеУдаляемыхОбъектов() Тогда
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 1533 : ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено();
ОбщийМодуль.ОбщегоНазначения.Модуль : 0
по причине:
Переполнение стека встроенного языка на сервере


Подскажите пожалуйста, может быть кто-то сталкивался с такой ошибкой и как исправить.

Я пробовала.
-копировать модули из другой конфигурации, к сожалению ошибка продолжает возникать.
-Пробовала обновить конфигурацию, может из более старой версии стоит попробовать обновить.
-Также пробовала делать тестирование конфигурации

пока что нет результата.
   ДенисЧ
 
1 - 09.07.21 - 08:14
Данные кривые, где-то циклическая ссылка.
   WhiteDragon93
 
2 - 09.07.21 - 08:20
(0) Присоединяюсь к (1) если есть база с той же версией конфигурации, в которой ошибки нет, проблема в данных.
   Анастасия_85
 
3 - 09.07.21 - 08:21
(1)
Денис, а каким образом её найти??
Пользователь сохраняется, а вот кода пытаюсь назначить ему права, доступ по организациям, то выскакивает ошибка.
   youalex
 
4 - 09.07.21 - 08:24
замер производительности - и смотреть в каком участке кода дикое количество проходов
   Анастасия_85
 
5 - 09.07.21 - 08:32
(4)
Подскажите пожалуйста, а если ошибка всё же в данных- замер производительности поможет или нет? И поможет ли в таком случае перенос данных в справочник.ГруппыДоступа или в РегистрыСведений.ТаблицыГруппДоступа??
   youalex
 
6 - 09.07.21 - 08:38
(5) Замер покажет только в каком участке кода возможно происходит сваливание  в бесконечную рекурсию
   Анастасия_85
 
7 - 09.07.21 - 09:26
(6)
Я сделала замер производительности.
К сожалению, я раньше никогда этим инструментом не пользовалась.
Как найти то, что уходит в рекурсию??
   Анастасия_85
 
8 - 09.07.21 - 09:40
(4) это колонка кол.??

А если 8 или 9, то это много или может быть??
   youalex
 
9 - 09.07.21 - 09:47
(7) Косвенно, по количеству проходов (колонка "Кол" в Замере)
(8) Не похоже. У меня ошибка на 937 проходах (каких-то конкретных значений я не знаю)
Причем если открыть стек вызовов, наглядно видно, как он "растет" при каждом вызове проблемной функции.
   Анастасия_85
 
10 - 09.07.21 - 10:23
(9)
А как добавить что-либо в стек вызовов??
   youalex
 
11 - 09.07.21 - 10:29
(10) что значит добавить? Оно само добавляется при новом вызове функции/процедуры. Через стек можно наглядно увидеть, что если одна и та же процедура повторяется - то это рекурсивный вызов.
   Анастасия_85
 
12 - 09.07.21 - 10:40
не добавляется ничего в стек вызовов :(
стек пустой, в замере производительности не изменилось количество
   youalex
 
13 - 09.07.21 - 11:13
(12) Ну просто отладчиком пройдись и смотри когда отвалится
   1Сергей
 
14 - 09.07.21 - 11:21
Думаю, тут без программиста не обойтись
   Анастасия_85
 
15 - 09.07.21 - 11:33
(14)
Форум для того и существует, если люди не знают чего-то, то они спрашивают.
И с некоторыми вещами люди сталкиваются впервые.
   1Сергей
 
16 - 09.07.21 - 11:35
(15) Извините, просто по вопросу показалось что Вы просто пользователь
   rozer76
 
17 - 09.07.21 - 11:37
   Анастасия_85
 
18 - 09.07.21 - 11:37
(15)
я работала с отладчиком в конкретной процедуре и форме, там, где у меня были ошибки. Я смотрела в табло значения переменных.
Но когда касается общего модуля или вызова из других модулей, то мне сложно понять, в каком месте запустить отладчик.
   youalex
 
19 - 09.07.21 - 11:46
(18) ну видимо, где то здесь
ОбщийМодуль.УдалениеПомеченныхОбъектовСлужебный.Модуль : 225 : ЗапретитьИспользованиеУдаляемыхОбъектов(Источник, Отказ);

А у тебя назначенные группы профилей, кстати, не помечены, случайно?
   Анастасия_85
 
20 - 09.07.21 - 11:54
(19)
нет, они не помечены на удаление.

А вот кстати перенести права пользователей с помощью обработки переноса данных получилось и они всталив нужном (новом) пользователе. Я выгрузила нужные данные из регистра сведений ТаблицаГруппДоступа и загрузила для того пользователя, у кого не было.

Только это конечно же не вариант.Знаю об этом, что нужно исправлять в базе
   Анастасия_85
 
21 - 09.07.21 - 11:57
(19)
Благодарю Вас за подсказку, сейчас попробую в этом месте сделать отладку.
   Анастасия_85
 
22 - 09.07.21 - 13:36
(20) не получилось перенести. Права просто у старого пользователя затёрлись :(
   Анастасия_85
 
23 - 09.07.21 - 16:49
Поняла свою ошибку.

Отладка-остановка по ошибке нужно было добавить, и тогда в стеке вызовов отобразятся данные, которые прерывают выполнение кода.
   Анастасия_85
 
24 - 16.07.21 - 08:12
Доброго утра.

Мне помогли найти ошибку.
Было дело в расширениях- при помощи отладки и обработки ОбновлениеВспомогательныхДанных.epf мы нашли, что ошибка была в расширениях. Возможно, что произошли изменения в ролях пользователей, которые конфликтуют с основной конфигурацией


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.