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

Содержание:

1.      Что такое стек в конфигурации программы 1С?

2.      Для чего нужен стек и откуда появляется ошибка переполнения стека?

3.      Причины, вызывающие переполнение стека в системе программы 1С: Предприятие  

1.      Что такое стек в конфигурации программы 1С?

При работе в конфигурации системы 1С, после обновления конфигурации или платформы, или по каким-то другим причинам, все мы сталкиваемся с различными всплывающими ошибками. Разберемся сегодня, что можно сделать, если столкнуться с ошибкой – «Переполнение стека встроенного языка на сервере». Разберемся, что вызывает эту ошибку:

Переполнение стека возникает, когда в стек помещается больше элементов, чем он может вместить.

Стек – это по сути стопка элементов, в которой эти элементы «укладываются» один поверх другого. Работает этот механизм по принципу LIFO (Last In, First Out – последним вошел/первым вышел). Поэтому добраться мы можем в первую очередь до того элемента, который положили последним, потом предпоследним, и т.д.  

2.      Для чего нужен стек и откуда появляется ошибка переполнения стека?

Главное назначение стека — чтобы организовать команду вызова подпрограмм удобным образом. Например, вызывается «функция1» с определенными переменными, и которая при этом передает определенные параметры и вызывает «функцию2» со своими переменными. В свою очередь «функция2» передает свои параметры и вызывает «функцию3», и т.д. Все эти параметры и переменные нужно сохранять (куда-то складывать), и затем по порядку вызывать. Для этого как раз удобно использовать стек.

Если рассматривать стек абстрактно – это «безразмерный склад» для 1С хранения информации. Но фактически – это не так.

Появляется подобная ошибка именно от того, что стек по своей сути имеет границы, и его объем, а точнее память, выделенная под стек, ограничена. И поскольку стек организует команду вызова функций, при его переполнении функции уже не могут вызываться.  

3.      Причины, вызывающие переполнение стека в системе программы 1С: Предприятие

1. Самый распространенный вариант – это рекурсия. И если происходит бесконечная рекурсия, то прерывается она таким образом.

Выглядит это условно так:

Процедура ИмяПроцедурыВызываемойРекурсивно()

 ИмяПроцедурыВызываемойРекурсивно();

КонецПроцедуры

2. Локальные переменные, которые требуют себе большого объема оперативной памяти. Это может быть, например, массив из какого-нибудь миллиона локальных переменных или элементов. Вызывая функцию с таким массивом, можно легко получить в ответ переполнение стека.

Переполнение стека — фатальная ошибка, чаще всего встречающаяся в программах, программный код 1С, которых имеет рекурсивные функции. Либо, даже если вы не используете рекурсию, программа содержит множество локальных переменных или есть ошибки в ручном выделении в стеке оперативной памяти. Актуальны все классические правила:

1.      Если есть возможность – не используем в работе рекурсию.

2.      Не выполнять вручную ту работу, которую может выполнить компилятор. 

Специалист компании «Кодерлайн»
Марина Анапольская

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

Я
   Анастасия_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 мы нашли, что ошибка была в расширениях. Возможно, что произошли изменения в ролях пользователей, которые конфликтуют с основной конфигурацией

Содержание:

1.      Что такое стек в конфигурации программы 1С?

2.      Для чего нужен стек и откуда появляется ошибка переполнения стека?

3.      Причины, вызывающие переполнение стека в системе программы 1С: Предприятие  

1.      Что такое стек в конфигурации программы 1С?

При работе в конфигурации системы 1С, после обновления конфигурации или платформы, или по каким-то другим причинам, все мы сталкиваемся с различными всплывающими ошибками. Разберемся сегодня, что можно сделать, если столкнуться с ошибкой – «Переполнение стека встроенного языка на сервере». Разберемся, что вызывает эту ошибку:

Переполнение стека возникает, когда в стек помещается больше элементов, чем он может вместить.

Стек – это по сути стопка элементов, в которой эти элементы «укладываются» один поверх другого. Работает этот механизм по принципу LIFO (Last In, First Out – последним вошел/первым вышел). Поэтому добраться мы можем в первую очередь до того элемента, который положили последним, потом предпоследним, и т.д.  

2.      Для чего нужен стек и откуда появляется ошибка переполнения стека?

Главное назначение стека — чтобы организовать команду вызова подпрограмм удобным образом. Например, вызывается «функция1» с определенными переменными, и которая при этом передает определенные параметры и вызывает «функцию2» со своими переменными. В свою очередь «функция2» передает свои параметры и вызывает «функцию3», и т.д. Все эти параметры и переменные нужно сохранять (куда-то складывать), и затем по порядку вызывать. Для этого как раз удобно использовать стек.

Если рассматривать стек абстрактно – это «безразмерный склад» для 1С хранения информации. Но фактически – это не так.

Появляется подобная ошибка именно от того, что стек по своей сути имеет границы, и его объем, а точнее память, выделенная под стек, ограничена. И поскольку стек организует команду вызова функций, при его переполнении функции уже не могут вызываться.  

3.      Причины, вызывающие переполнение стека в системе программы 1С: Предприятие

1. Самый распространенный вариант – это рекурсия. И если происходит бесконечная рекурсия, то прерывается она таким образом.

Выглядит это условно так:

Процедура ИмяПроцедурыВызываемойРекурсивно()

 ИмяПроцедурыВызываемойРекурсивно();

КонецПроцедуры

2. Локальные переменные, которые требуют себе большого объема оперативной памяти. Это может быть, например, массив из какого-нибудь миллиона локальных переменных или элементов. Вызывая функцию с таким массивом, можно легко получить в ответ переполнение стека.

Переполнение стека — фатальная ошибка, чаще всего встречающаяся в программах, программный код 1С, которых имеет рекурсивные функции. Либо, даже если вы не используете рекурсию, программа содержит множество локальных переменных или есть ошибки в ручном выделении в стеке оперативной памяти. Актуальны все классические правила:

1.      Если есть возможность – не используем в работе рекурсию.

2.      Не выполнять вручную ту работу, которую может выполнить компилятор. 

Специалист компании «Кодерлайн»
Марина Анапольская

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

Я

  

Анастасия_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 мы нашли, что ошибка была в расширениях. Возможно, что произошли изменения в ролях пользователей, которые конфликтуют с основной конфигурацией

Владислаучык

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 637

1

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

21.09.2017, 17:00. Показов 15415. Ответов 6

Метки нет (Все метки)


Добрый день, вот такая ошибка

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

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ЗначениеПараметраПодразделение = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Подразделение"));
    Если ЗначениеПараметраПодразделение <> Неопределено Тогда
        ЗначениеПараметраПодразделение.Значение = Подразделение;
        ЗначениеПараметраПодразделение.Использование = Истина;
    КонецЕсли;
    
    //ТиповыеОтчеты.ОбновитьПараметрыПериодаПоФорме(КомпоновщикНастроек, ЭтаФорма);
    табДокумент = Новый ТабличныйДокумент;
    ЭтотОбъект.СкомпоноватьРезультат(табДокумент);
    
    МакетЗаголовокПодвал = ПолучитьМакет("Макет");
    ОбластьЗаголовок = МакетЗаголовокПодвал.ПолучитьОбласть("Заголовок");
    ОбластьЗаголовок.Параметры.Организация = Справочники.Организации.НайтиПоКоду("000000001");
    ОбластьЗаголовок.Параметры.Период = ПредставлениеПериода(НачалоПериода, КонецДня(КонецПериода));
    
    ОбластьПодразделение = МакетЗаголовокПодвал.ПолучитьОбласть("Подразделение");
    ОбластьПодразделение.Параметры.Подразделение = Подразделение;
    
        
    
    ДокументРезультат.Очистить();
    ДокументРезультат.АвтоМасштаб = Истина;
    ДокументРезультат.Вывести(ОбластьЗаголовок);
      Если ЗначениеЗаполнено(Подразделение) Тогда        
        ДокументРезультат.Вывести(ОбластьПодразделение);
    КонецЕсли;          
    
    ДокументРезультат.Вывести(табДокумент);
КонецПроцедуры

Подскажите плз, в чем проблема может быть?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Эксперт 1С

841 / 604 / 211

Регистрация: 24.07.2013

Сообщений: 2,101

21.09.2017, 17:05

2

При вызове метода СкомпоноватьРезультат выполняется обработчик события ПриКомпоновкеРезультата. Получается бесконечная рекурсия.

0

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 637

21.09.2017, 17:26

 [ТС]

3

Tklwegsd, Так а как это обойти?

0

Эксперт 1С

841 / 604 / 211

Регистрация: 24.07.2013

Сообщений: 2,101

21.09.2017, 17:29

4

Очень просто. Не надо вызывать метод СкомпоноватьРезультат() внутри обработчика события ПриКомпоновкеРезультата.

0

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 637

21.09.2017, 17:40

 [ТС]

5

Tklwegsd, Вот убрал это, и просто ничего не выводится, одна оболочка таблицы

Добавлено через 36 секунд
Tklwegsd, Хотя должно, при тех-же данных в обычной форме все выводится

Добавлено через 9 минут
ДокументРезультат — Это как я понимаю, мой Результат, который на форме создался?

0

Эксперт 1С

434 / 305 / 92

Регистрация: 28.05.2014

Сообщений: 1,247

21.09.2017, 17:50

6

Документ Результат это реквизит отчета с типом Табличный Документ

0

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 637

21.09.2017, 17:53

 [ТС]

7

Да, это у уточнял.

0

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.09.2017, 17:53

Помогаю со студенческими работами здесь

Переполнение стека
Всем привет. Помогите, пожалуйста с решением одной проблемы. Мне нужно в программе обрабатывать…

переполнение стека!
вот кодprocedure TForm1.CheckBox7Click(Sender: TObject);
begin
if checkbox7.Checked=false then…

Переполнение стека
Всем привет!

пишу программу, в ней достаточно много массивов, процедур и есть рекурсия….

Переполнение стека
Всем привет. Вобщем почему-то пишет переполнение стека, в чем проблема воот листинг:

uses graph;…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

7

Коллеги, добрый день! Ошибка возникает при открытии пакета «СФ (на авнс)», на вкладке «Для отправки».
Подскажите в чем может быть проблема?


Переполнение стека встроенного языка на сервере
{(1)}:ОткрытьФорму(ИмяФормы, ПараметрыФормы, Владелец, , , , ОписаниеОповещенияОЗакрытии, РежимОткрытияОкна)
{ВнешняяОбработка.КонтурЭДО.Форма.Модуль_СинхронныеМодальныеВызовы.Форма(392)}: Выполнить(«ОткрытьФорму(ИмяФормы, ПараметрыФормы, Владелец, , , , ОписаниеОповещенияОЗакрытии, РежимОткрытияОкна)»);
{ВнешняяОбработка.КонтурЭДО.Форма.ФормаУправляемая.Форма(347)}: смв().смв_ОткрытьФорму(ПутьКФормам + мИмяФормы, ПараметрыФормы, мВладелецФормы, , , , ОписаниеОповещения, РежимБлокирования);
{ВнешняяОбработка.КонтурЭДО.Форма.ФормаУправляемая.Форма(2114)}: ОткрытьФормуДиадокМодально(«ФормаПакетаУправляемая», ЭтаФорма, ПараметрыФормы);
{ВнешняяОбработка.КонтурЭДО.Форма.ФормаУправляемая.Форма(2083)}: ОткрытьФормуПакета(ВыбраннаяСтрока);

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

ВнешняяОбработка.КонтурЭДО.Форма.ФормаПакетаУправляемая.Форма : 220 : Пакет = Модуль_ЯдроНаСервере().Пакеты_ПодготовитьПакет(СтрокаСписка, Ложь);
по причине:
Переполнение стека встроенного языка на сервере

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

Ошибка прерывает работу и является критической.

Быстрый переход

  • Ситуация:
  • Причина:
  • Исправление:

Ситуация:

Управляемая формы, при открытии формы вышло сообщение об ошибке «Переполнение стека встроенного языка на сервере», событие «Ошибка выполнения»

Причина:

Реализованная пару лет назад (Платформа 8.3.1.531) система защиты от зацикливания, требуется найти рекурсивный вызов функций или процедур.

Исправление:

Действительно, не в ту процедуру воткнул вызов родительской процедуры.

Одно рекламное объявление стоит больше, чем сорок передовиц.

При регистрации документа производства выходит ошибка

Решение:

Обычно такая ошибка возникает из-за неправильного заполнения спецификаций (зацикливания). И при условии, что в настройках на вкладке «Расширенные настройки», «Производство» у вас стоит Иерархический автоподбор материалов.

  1. Зайдите в документ производства

  2. Откройте вкладку «Списываемые материалы»

  3. Скопируйте название сырья.

  1. Зайдите в меню «Ещё».

  2. Выберите пункт «Спецификации».

  3. Вставьте название в окно поиска.

  4. Дважды щелкните на выпавшую продукцию в поле «Наименование».

  5. Скопируйте название сырья в поле «Материал» из Спецификации.

  1. Снова вставьте название в окно поиска.

  2. Дважды щелкните на выпавшую продукцию в поле «Наименование».

  3. Мы видим, что название спецификации совпадает с тем, что мы вводили ранее.

Один и тот же материал не может дважды повторяться, поэтому удалите одну из спецификаций, выбрав нужную, затем нажав кнопку «Ещё» и «Удалить».

Далее «Записать и закрыть».

Анастасия Никулина.

Понравилась статья? Поделить с друзьями:
  • Состояние не отвечает как исправить
  • Как найти угол между градиентами в точке
  • Как найти пропавшего планшета
  • Как найти номер значения в списке питон
  • Как найти реактивную емкостную мощность