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

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36227
      Фото аватараOdineski
      Участник

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

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

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

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

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

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

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

          Объяснение:

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

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

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

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

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

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

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


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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С