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

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

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

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

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

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

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