Как исправить ошибки аудита при добавлении расширения в 1С:Фреш

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

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

Выясняем причину: почему аудит Фреша строже обычной проверки

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

Когда вы заимствуете в расширение какой-либо объект (например, форму документа РеализацияТоваровУслуг или справочник ККТКлиента), система аудита начинает анализировать связи этого объекта со всей остальной конфигурацией. Если заимствованный объект обращается к общему модулю, который не включен в ваше расширение, или использует свойства, которые определяются динамически, аудит может пометить их как ошибочные, так как в «изолированном» мире расширения он их не видит.

Решение 1. Синхронизация режима совместимости

Первое, на что необходимо обратить внимание — это Режим совместимости расширения. Рассмотрим типичный случай: конфигурация во Фреше обновлена до последней версии (например, используется платформа 8.3.27), а ваше расширение было создано на более старой версии (например, 8.3.14).

Разберем, как это исправить:

  1. Откроем свойства вашего расширения (корневой узел в дереве конфигурации расширения).
  2. Найдем свойство Режим совместимости.
  3. Установим его в значение «Не использовать» или выставим точно такое же значение, которое установлено в основной конфигурации, актуальной для текущего релиза Фреша.

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

Решение 2. Обновление заимствованных объектов (Метаданных)

Часто ошибки «Возможно ошибочное свойство» в документах (РеализацияТоваровУслуг, ПриходныйКассовыйОрдер) возникают из-за того, что в расширении хранится «старый слепок» объекта. Если во Фреше обновился релиз программы, состав реквизитов или типов в модулях мог измениться.

Выполним следующие действия для актуализации:

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

Это действие заставит расширение «перечитать» структуру объекта из актуальной конфигурации и снимет ложные подозрения аудита на отсутствие свойств вроде ДополнительнаяКолонкаПечатныхФормДокументов или Руководитель.

Решение 3. Обход прямого обращения к свойствам (Safe Mode)

Аудит часто ругается на свойства, связанные с НДС (НДС20, НДС10_110 и т.д.) или контактной информацией (ФаксКонтрагенты, ЮрАдресКонтрагента). Проблема в том, что в современных типовых решениях (БП 3.0) многие из этих свойств являются программно добавляемыми или определяются через механизмы БСП.

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

Вместо кода:


// Ошибочный вариант для аудита
ЮрАдрес = КонтрагентОбъект.ЮрАдресКонтрагента;

Рекомендуется использовать безопасные методы обращения к реквизитам:


// Безопасный вариант
ЮрАдрес = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КонтрагентСсылка, "ЮрАдресКонтрагента");

Если же вы работаете с перечислениями или предопределенными значениями, используйте метод ПредопределенноеЗначение(). Это позволит избежать ошибок синтаксического контроля при проверке типов в расширении.

Решение 4. Минимизация состава расширения

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

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

  1. Удалите из расширения все общие модули, в которых вы не меняли код (например, ПечатьТорговыхДокументов, УчетНДСПереопределяемый).
  2. Удалите формы документов, если вам нужно изменить только движения документа или его печатную форму через модуль менеджера.
  3. Если вы правите только один реквизит справочника, убедитесь, что в расширение не попали его экранные формы со всеми их обработчиками событий.

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

Решение 5. Расширенная проверка конфигурации

Чтобы не гадать, пройдет ли расширение аудит, мы можем запустить аналогичную проверку у себя локально. Обычной проверки «синтаксис — проконтролировать» недостаточно.

Разберем алгоритм полной проверки:

  1. В конфигураторе перейдем в меню Конфигурация — Проверка конфигурации.
  2. Обязательно установим галочки:
    • Проверка логической целостности расширений конфигурации;
    • Проверка возможности применения расширений;
    • Синтаксический контроль (с установленным режимом «Тонкий клиент» и «Сервер»).
  3. Нажмем «Выполнить».

Все ошибки, которые вы увидите в этом списке, гарантированно «выстрелят» при аудите во Фреше. Исправив их локально, вы значительно повысите шансы на успешную загрузку расширения в облако.

Итоги и рекомендации

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

← На главную