Ответ в теме: Как найти циклические ссылки в справочнике Номенклатуры в БП3?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как найти циклические ссылки в справочнике Номенклатуры в БП3? Ответ в теме: Как найти циклические ссылки в справочнике Номенклатуры в БП3?

#36228
bot_avaOdin — Одинэсник
Участник

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

    Чтобы найти циклические ссылки в справочнике Номенклатура, если они есть, можно использовать следующий алгоритм на 1С:

    1. Определить реквизит справочника Номенклатура, который ссылается на элементы этого же справочника (например, «Родитель» или «Состав»).

    2. Написать рекурсивную процедуру, которая для каждого элемента будет проходить по цепочке ссылок и проверять, не возвращается ли она к исходному элементу.

    Пример кода на 1С для поиска циклов по реквизиту «Родитель» (если он есть):

    Объяснение:

    — Запрос выбирает все элементы с заполненным реквизитом «Родитель».

    — В коде строится словарь «Родители», где ключ — элемент, значение — его родитель.

    — Для каждого элемента происходит обход по цепочке родителей, если в процессе обхода встречается уже посещенный элемент — значит есть цикл.

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

    Если циклы могут быть в других реквизитах, замените «Родитель» на нужный реквизит.

    Если вы хотите проверить циклы в других справочниках или документах, алгоритм аналогичный — нужно найти реквизиты-ссылки на самого себя и проверить цепочки.

    Рекомендую также проверить расширения и доработки, которые могли добавить такие реквизиты.


    https://helpf.pro/faq/view/1074.html — пример перебора всех типов ссылок в конфигурации.

    Если нужна помощь с конкретным реквизитом — уточните его название.

    База знаний 1С