Как получить детальную информацию об ошибках при проверке конфигурации расширени

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить детальную информацию об ошибках при проверке конфигурации расширени

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38984
      Фото аватараOdineski
      Участник

        Как получить детальную инфромацию по ошибкам (чтобы было понятно что устранять) при проверке конфигурации расширения (с галочкой поиск некорректных ссылок) ?
        Строчки служебных сообщений об ошибке такие: Документ.ВерсияСоглашенияКоммерческийДоговор.Форма.ФормаДокумента.Форма Неразрешимые ссылки на объекты метаданных (2)
        Документ.ВерсияСоглашенияКоммерческийДоговор.Форма.ФормаДокумента.Форма Неразрешимые ссылки на типы (3)

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

          Такие сообщения в проверке конфигурации являются агрегированными. Число в скобках означает количество найденных ссылок, но платформа обычно не выводит, какое именно свойство формы содержит ошибочную ссылку.

          В вашем случае нужно проверять форму:

          ## Что означают ошибки

          ### 1. Неразрешимые ссылки на объекты метаданных (2)

          В форме есть две ссылки на объекты конфигурации, которые платформа не может найти. Обычно это:

          — удаленный объект метаданных;
          — объект, переименованный или перемещенный в расширение;
          — ссылка из расширения на объект, которого нет в основной конфигурации;
          — ссылка на объект другого расширения;
          — удаленная команда документа;
          — удаленный реквизит или табличная часть;
          — ссылка на картинку, стиль, общий реквизит или другой объект;
          — настройка динамического списка с несуществующим объектом;
          — параметр выбора или описание значения, ссылающееся на удаленный объект.

          ### 2. Неразрешимые ссылки на типы (3)

          В форме есть три описания типов, содержащие типы, которые недоступны в текущей конфигурации. Чаще всего это:

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

          ## Как найти конкретные свойства формы

          Откройте форму в конфигураторе:

          Проверяйте форму последовательно в следующем порядке.

          ### 1. Реквизиты формы

          В редакторе формы откройте узел:

          Для каждого реквизита проверьте свойство:

          Особенно подозрительны типы:

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

          Также проверьте составные типы, например:

          Иногда ошибочным является только один тип внутри составного типа.

          ### 2. Параметры формы

          Откройте узел:

          Проверьте свойство Тип у каждого параметра.

          Особое внимание уделите стандартным и добавленным параметрам, например:

          Если параметр был создан для объекта, который впоследствии удалили или заменили, его тип часто остается в форме.

          ### 3. Реквизиты элементов формы

          В дереве элементов формы проверьте элементы:

          — Поле формы;
          — Таблица формы;
          — Поле картинки;
          — Поле текста;
          — Поле выбора;
          — Таблица значений.

          У каждого элемента проверьте:

          Путь к данным должен указывать на реально существующий реквизит формы или реквизит объекта.

          Например, ошибочным будет путь:

          если СтарыйРеквизит или СтарыйПараметр уже удален.

          Для табличных полей отдельно проверьте колонки. У колонки также может остаться путь к удаленному реквизиту.

          ### 4. Команды формы

          Откройте узел:

          Проверьте:

          — команды, добавленные в расширении;
          — команды, связанные с удаленными объектами;
          — обработчики команд;
          — команды, размещенные в элементах формы;
          — команды, которых уже нет у документа или у расширяемого объекта.

          Если команда отображается в форме, но отсутствует в списке доступных команд документа, ее следует удалить из формы и при необходимости добавить заново.

          ### 5. Элементы формы, связанные с командами

          Для групп команд, кнопок и командных панелей проверьте:

          В расширениях часто остается кнопка, ссылающаяся на команду, удаленную из основной конфигурации или из самого расширения.

          Удалите подозрительную кнопку из формы и проверьте конфигурацию повторно. Если количество ошибок уменьшилось, причина найдена.

          ### 6. Динамические списки

          Если на форме есть динамический список, проверьте:

          — основную таблицу;
          — произвольный запрос;
          — параметры запроса;
          — настройки отбора;
          — настройки условного оформления;
          — настройки выбора;
          — типы параметров динамического списка.

          В произвольном запросе могли остаться ссылки на удаленные объекты. Например, в тексте запроса или настройках списка может использоваться удаленный регистр, справочник или реквизит.

          Также проверьте типы параметров динамического списка. Они часто не видны непосредственно в дереве элементов формы.

          ### 7. Условное оформление и настройки списка

          У таблиц формы проверьте:

          В условном оформлении часто остаются пути к удаленным реквизитам. Например:

          Такая ссылка может давать ошибку на объект метаданных, хотя визуально сама форма открывается нормально.

          ### 8. Картинки, стили, шрифты и рамки

          Для ошибки на объект метаданных проверьте свойства формы и элементов:

          Если объект был скопирован из другой конфигурации или из старой версии формы, ссылка на картинку или стиль могла стать недействительной.

          Подозрительное свойство можно временно очистить, записать форму и повторить проверку.

          ## Практический способ локализации

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

          1. Сделайте копию расширения.
          2. Откройте форму ФормаДокумента.
          3. Запишите список элементов формы.
          4. Временно удалите подозрительные элементы группами:
          — дополнительные реквизиты;
          — дополнительные параметры;
          — динамические списки;
          — кнопки и команды;
          — условное оформление;
          — недавно добавленные поля.
          5. Сохраните расширение.
          6. Выполните проверку конфигурации.
          7. Если количество ошибок уменьшилось, восстановите часть удаленных элементов и проверяйте их по одному.

          Например:

          — было Неразрешимые ссылки на объекты метаданных (2);
          — после удаления одной группы элементов стало (1);
          — значит, проблемная ссылка находится в удаленной группе;
          — возвращаете элементы по одному до повторного появления ошибки.

          Для двух ссылок на объекты и трех ссылок на типы этот способ обычно быстрее, чем ручная проверка всей формы.

          ## Более точный способ через выгрузку формы в XML

          Если визуальная проверка не помогает, сохраните расширение в файлы и найдите форму в выгруженных XML-файлах.

          В конфигураторе используйте команду, связанную с выгрузкой конфигурации в файлы. В выгрузке найдите каталог, соответствующий документу и форме:

          В XML формы выполните поиск по:

          Ищите:

          — имена удаленных справочников;
          — имена удаленных документов;
          — старые имена реквизитов;
          — идентификаторы объектов;
          — ссылки на объекты из другого расширения;
          — пустые или неполные описания типов.

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

          Например, если в форме обнаружено описание типа, содержащее:

          а справочника СтарыеПроекты нет ни в основной конфигурации, ни в расширении, нужно заменить тип или очистить это описание.

          После ручного редактирования XML напрямую загружать его в рабочую конфигурацию без резервной копии не рекомендуется. Надежнее найти соответствующий реквизит или параметр в конфигураторе и исправить его там.

          ## Проверка именно особенностей расширения

          Для расширения отдельно проверьте следующие случаи.

          ### Ссылка на объект основной конфигурации

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

          Проверяйте ссылки на:

          — реквизиты документа;
          — табличные части;
          — реквизиты табличных частей;
          — команды;
          — общие реквизиты;
          — определяемые типы;
          — общие формы;
          — общие картинки;
          — общие макеты.

          ### Ссылка на объект другого расширения

          Объекты одного расширения не всегда могут использоваться другим расширением напрямую. Если форма из расширения ссылается на объект, который находится в другом расширении, при проверке может появиться ошибка о неразрешимом объекте или типе.

          В этом случае нужно:

          — перенести объект в текущее расширение;
          — использовать объект основной конфигурации;
          — заменить тип на доступный;
          — удалить зависимость от другого расширения.

          ### Удаленный объект расширения

          Если объект был удален из расширения, но форма его использовала, удаление объекта не всегда автоматически очищает все ссылки.

          Типичный пример:

          1. В расширении был добавлен справочник.
          2. В форме документа был создан реквизит типа СправочникСсылка.ДобавленныйСправочник.
          3. Справочник удалили.
          4. Реквизит формы и параметр выбора остались.
          5. Проверка показывает ошибку о неразрешимом типе.

          В таком случае нужно удалить или изменить сам реквизит формы, параметр, элемент выбора и связанные настройки.

          ## Что проверить в первую очередь в вашей форме

          Для указанной формы я бы проверял в таком порядке:

          1. Реквизиты формы и их типы.
          2. Параметры формы и их типы.
          3. Дополнительные реквизиты, созданные в расширении.
          4. Поля формы с ПутемКДанным.
          5. Команды и кнопки.
          6. Реквизиты табличных частей.
          7. Динамические списки.
          8. Условное оформление.
          9. Параметры выбора и настройки списка.
          10. Картинки и стили.

          На практике ошибки с формулировками:

          чаще всего находятся в реквизитах формы, параметрах формы или настройках динамического списка, а не в модуле формы. Исправление кода модуля формы обычно не устраняет такие ошибки.

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