Проверка расширения конфигурации 1С перед установкой

· 9 мин

Содержание

Чтобы проверить расширение, откройте Конфигуратор → Конфигурация → Расширения конфигурации, выделите нужное расширение и запустите Конфигурация → Проверка конфигурации с флажком проверки расширения. Отдельно прогоните синтаксический контроль модулей и обязательно примените .cfe сначала на копии базы, а не на рабочей.

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

Расширения как механизм появились в платформе 8.3.6. Всё, что ниже, относится к 1С:Предприятие 8.3 с интерфейсом «Такси».

Что за файл .cfe и какие у него свойства

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

  • 📛 Имя и синоним — как расширение называется внутри базы.
  • 🎯 Назначение — Исправление, Адаптация или Дополнение. От него зависит порядок применения: исправления накладываются раньше дополнений.
  • 🔒 Безопасный режим — если включён, код расширения не может выполнять потенциально опасные операции (работа с файлами, запуск внешних компонент, COM).
  • 🛡️ Защита от опасных действий — отдельный флажок, при котором платформа спрашивает пользователя перед небезопасной операцией.
  • ✅ Активно — применяется ли расширение к базе прямо сейчас.

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

Свойства назначения и безопасного режима задаются при создании расширения и видны в его свойствах (правая панель или двойной клик по расширению в списке). Поменять их можно, но после изменения расширение придётся заново применить.

Проверка совместимости и целостности в Конфигураторе

Главная проверка — встроенная. Выделите расширение в списке и запустите Конфигурация → Проверка конфигурации. В диалоге выберите, что проверять, и укажите, что проверка идёт по расширению, а не по основной конфигурации.

Что имеет смысл включить:

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

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

Контроль применимости аннотаций

Это ключевой момент, который часто упускают. Расширение «цепляется» к основной конфигурации через аннотации заимствованных методов: &Вместо, &Перед, &После, &ИзменениеИКонтроль. Если метод, указанный в &Вместо, в основной конфигурации переименовали или удалили, расширение не применится — платформа сообщит об ошибке при обновлении конфигурации базы данных.

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

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

Синтаксический контроль и проверка модулей

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

Запуск: откройте расширение в дереве объектов и выберите пункт проверки модулей в меню Конфигурация (или через контекстное меню по расширению). Платформа пройдёт по всем модулям и выведет список ошибок компиляции.

На что обращать внимание в результатах:

  • обращения к методам основной конфигурации, которых нет в текущей версии;
  • заимствованные реквизиты форм, которые в основной форме отсутствуют;
  • директивы компиляции (&НаСервере, &НаКлиенте), не совпадающие с контекстом заимствованного метода.

Синтаксический контроль не гарантирует, что расширение будет работать правильно, — он гарантирует только, что код скомпилируется. Логику всё равно проверяют запуском.

Что ещё добавляет расширение, кроме кода

Расширение заимствует не только методы. Оно может добавлять собственные объекты (справочники, обработки, отчёты), новые реквизиты и формы, а также роли. Роли — отдельный пункт проверки: расширение способно расширить права пользователей, и если оно пришло со стороны, стоит открыть добавленные им роли и посмотреть, какой доступ они дают.

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

Прогон на копии базы в изолированной среде

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

Порядок безопасного теста:

  1. Сделайте копию базы . Для файловой — скопируйте папку с 1Cv8.1CD. Для серверной — выгрузите в .dt (Администрирование → Выгрузить информационную базу) и загрузите в новую базу.
  2. В копии загрузите расширение: Конфигурация → Расширения конфигурации, кнопка добавления, выберите файл .cfe.
  3. Выполните Обновление конфигурации базы данных (F7). Загрузка .cfe и обновление конфигурации базы данных — два разных шага; пока не обновили, расширение в работе не участвует.
  4. Запустите 1С:Предприятие на копии и пройдите те участки, которые расширение затрагивает: формы, отчёты, печатные формы, проведение документов.

Что именно проверять на копии, зависит от того, что расширение меняет. Общий ориентир:

  • 📄 изменённые формы — открываются ли они без ошибок, появились ли добавленные поля и команды;
  • 🖨️ печатные формы и макеты — выводится ли печать, не слетела ли вёрстка;
  • 📊 отчёты — формируются ли и совпадают ли цифры с ожидаемыми;
  • 🔁 проведение документов — проходит ли проведение тех документов, в логику которых вмешивается расширение;
  • 👥 права — видят ли нужные объекты пользователи с обычными, а не административными правами.

Пройти стоит именно под той ролью, под которой работают пользователи: часть проблем видна только при ограниченных правах, а под администратором база открывается без ошибок.

Перед применением расширения на рабочей базе
Выполнено: 0 / 5

Если расширение меняет печатные формы или отчёты, проверьте именно вывод на печать и формирование отчёта — ошибки в макетах синтаксический контроль показывает не всегда.

Разбор ошибок применения и анализ журнала

Когда что-то идёт не так, информация о проблеме есть в двух местах: в окне служебных сообщений при обновлении конфигурации базы данных и в журнале регистрации (Администрирование → Журнал регистрации в Конфигураторе или в режиме 1С:Предприятие).

Типовые сообщения и что они значат:

Диагностика: выберите симптом

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

Пакетная проверка через командную строку

Когда расширений много или проверку встраивают в регламент обновления, её запускают пакетно через 1cv8 в режиме конфигуратора (DESIGNER). Это удобно для автоматизации: запуск без открытия интерфейса, результат — в лог-файл.

Проверка конфигурации по расширению:

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER ^
  /F"C:\base" /N"Администратор" /P"пароль" ^
  /CheckConfig -ConfigLogIntegrity -IncorrectReferences -Extension "ИмяРасширения" ^
  /Out"C:\check.log"

Выгрузка расширения в файл (для сверки или бэкапа):

... DESIGNER /F"C:\base" /DumpCfg "C:\ext.cfe" -Extension "ИмяРасширения"

Обновление конфигурации базы данных по расширению в пакетном режиме:

... DESIGNER /F"C:\base" /UpdateDBCfg -Extension "ИмяРасширения"

Ключ -Extension с именем расширения — то, что отличает эти команды от работы с основной конфигурацией. Результат проверки пишется в файл, указанный в /Out; его и разбирают.

Сверка расширения с эталоном

Если нужно убедиться, что присланный .cfe не отличается от проверенной ранее версии, выгрузите оба расширения в файл через /DumpCfg ... -Extension и сравните получившиеся .cfe любым инструментом сравнения файлов. Совпали байт в байт — расширение то же самое.

Более содержательную сверку даёт выгрузка расширения в XML-файлы конфигурации (/DumpConfigToFiles ... -Extension "ИмяРасширения") и последующее сравнение двух выгрузок построчно. Так видно не только факт различия, но и какие именно объекты и модули изменились между версиями. Это помогает, когда расширение обновляют часто и нужно понимать, что поменялось.

Полный и точный список ключей и модификаторов зависит от версии платформы. Если не уверены в параметре — запустите 1cv8.exe /? или откройте документацию по пакетному режиму, а не подбирайте ключи наугад.

Утилиты администрирования кластера (rac, ring) для проверки расширений не используются — они управляют сеансами и кластером, а не содержимым конфигурации. Проверка расширения — это всегда режим конфигуратора.

Финальная проверка перед вводом в работу

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

  1. Сделайте свежую резервную копию рабочей базы — применение расширения меняет структуру и откатить его чисто не всегда просто.
  2. Если база серверная и расширение меняет структуру данных, применяйте в окно, когда пользователей нет: Обновление конфигурации базы данных при активных сеансах может потребовать монопольного доступа и оборвать работу.
  3. Загрузите .cfe, выполните обновление конфигурации базы данных, проверьте, что расширение в статусе «Активно».
  4. Сразу после применения пройдите контрольные операции — те же, что проверяли на копии.

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

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

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

Частые вопросы

Чем проверка расширения отличается от проверки основной конфигурации?
Технически это тот же инструмент Проверка конфигурации, но запущенный в области расширения. Дополнительно у расширения есть контроль применимости — проверка того, что заимствованные методы и реквизиты существуют в текущей версии основной конфигурации.
Можно ли проверить расширение, не загружая его в базу?
Полноценно — нет. Осмотреть свойства файла и прогнать синтаксический контроль можно, но контроль применимости срабатывает только при наложении расширения на конкретную конфигурацию. Поэтому тест на копии базы обязателен.
Расширение загрузилось, но не работает. Почему?
Загрузка .cfe и применение — разные шаги. Проверьте, что выполнено Обновление конфигурации базы данных и у расширения стоит флажок «Активно». Если применение не прошло, причина будет в служебных сообщениях или журнале регистрации.
Что значит «безопасный режим» у расширения?
В безопасном режиме код расширения не может работать с файловой системой, запускать внешние компоненты и COM-объекты. Это защита от вредоносного кода в расширениях из непроверенных источников. Снимать его стоит только осознанно и для доверенного кода.
Почему расширение перестало применяться после обновления конфигурации?
Скорее всего, объект основной конфигурации, на который ссылалось расширение через &Вместо или заимствованный реквизит, переименовали или удалили при обновлении. Запустите проверку модулей — она покажет конкретное место.