Данная ошибка может выходить при открытии договора организации (Справочники — Организации — открываем на редактирование любую из выбранных организаций — вкладка “Договоры” — открываем на редактирование договор), либо при нажатии на кнопку «Аванс» в модуле «Платные услуги».
Может быть две причины, почему возникает такая ошибка:
Случай 1:
нужно запустить скрипт 1
select * from GROUPSERVICES where OWNER = ID
Где GROUPSERVICES — таблица , где хранятся группы услуг, OWNER — поле в таблице GROUPSERVICES, которое указывает на “родителя” этой записи, ID — идентификатор записи.
Если при выполнении этого запроса вышел результат с записями, получается, что “родитель” ссылается сам на себя, такого быть не может! В таком случае надо выяснить, к какой родительской группе принадлежит данная запись(можно зайти в прайс, по названию группы услуг определить, где находится она), либо если у неё нет родителя, нужно обновить OWNER этой записи, поставить 0, то есть нужно выполнить один из скриптов:
1.1 если эта запись принадлежит к какой-то родительской группе:
update GROUPSERVICES set OWNER = здесь указываете ID родительской группы where ID = здесь указываете ID записи
1.2 если у записи нет родителя
update GROUPSERVICES set OWNER = 0 where ID = здесь указываете ID записи
Случай 2:
Когда группа услуг ‘A’ является с одной стороны родителем для группы услуг ‘B’, но с другой стороны эта группа услуг ‘B’ тоже является родителем для группы услуг ‘A’. Из-за данной особенности получается бесконечная рекурсия и возникает ошибка.
Скрипт, который отобразит данные группы:
Select * from GROUPSERVICES GS where GS.OWNER IN (Select GS2.ID FROM GROUPSERVICES GS2 WHERE GS2.OWNER = GS.ID)
