Бесплатный бриф
Практическая инструкция

Расширения 1С: как добавить и не потерять доработки

Иван Бохан· · Установка, разработка, обновление

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

Ниже — порядок для 1С:Предприятия 8.3 с управляемыми формами. Названия команд зависят от конфигурации и версии интерфейса. Если вы устанавливаете готовый файл, начните с раздела про добавление. Раздел про формы адресован тому, кто работает в Конфигураторе.

Что остаётся в типовой, а что хранится отдельно

В основной конфигурации описаны документы, справочники, формы и алгоритмы поставщика. У расширения своё дерево метаданных. В него можно заимствовать нужные объекты основной конфигурации: платформа сопоставит их при подключении. Заимствование не создаёт второй справочник с копией клиентов. Оно задаёт связь с уже существующим объектом.

Собственные объекты расширения — другое дело. У добавленного справочника или реквизита есть свои хранимые данные. Они находятся в той же информационной базе. Файл .cfe переносит описание расширения, а не выгрузку документов и записей, созданных во время работы.

Конфигурация и расширение: отдельные описания, общая информационная база Основная конфигурацияТиповые документы и алгоритмыОписание поставщика Расширение · файл CFEСвязи с заимствованными объектамиСвои формы, логика и реквизиты При работе — вместеПлатформа объединяет описанияДанные хранятся в общей базе
Отдельно хранится описание доработки. Резервная копия базы нужна для сохранности самих данных.

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

Где посмотреть установленные расширения

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

В конфигурациях на БСП вход часто находится в разделе «Администрирование» → «Печатные формы, отчёты и обработки» → «Расширения». В Конфигураторе используйте «Конфигурация» → «Расширения конфигурации». Если команда недоступна, администратор должен проверить права и ограничения среды. В облачном сервисе установку может выполнять только обслуживающая организация.

Список показывает загруженные расширения. Наличие строки ещё не означает, что расширение подключилось в вашем сеансе. Смотрите сообщения проверки и состояние после нового входа. Состав колонок различается; основные параметры читаются так:

«Активно»
Разрешает использовать расширение. Снятый флаг отключает его применение при следующем подключении. Уже открытый сеанс нужно перезапустить. Ошибка применимости может помешать подключению даже при установленном флаге.
«Безопасный режим»
Ограничивает потенциально опасные возможности исполняемого кода — например, работу с внешними ресурсами. Конкретные разрешения зависят и от профиля безопасности. Это не проверка качества расширения и не гарантия правильного учёта.
«Защита от опасных действий»
Отдельный механизм контроля потенциально опасных действий, в том числе с предупреждениями на клиенте. Он не заменяет безопасный режим. Отключать оба флага просто потому, что так написано в случайной инструкции, не нужно.
«Используется в распределённой информационной базе»
Относится к участию расширения в РИБ и его передаче по соответствующим планам обмена. Для обычной отдельной базы это не способ «включить обмен». Настройку согласуют с администратором РИБ.
Имя, версия и назначение
Имя идентифицирует расширение, версия помогает подобрать нужный выпуск. Назначение — «Исправление», «Адаптация» или «Дополнение» — описывает его роль и участвует в порядке подключения. Это не оценка надёжности.
Область действия и профиль безопасности
Область определяет применение ко всей базе или области данных при разделении данных. Профиль задаёт разрешённые внешние действия в серверной среде. Эти настройки не меняют наугад ради исчезновения ошибки.

Разрешения на внешние ресурсы задаются в профилях безопасности 1С; работа расширений в распределённой базе зависит также от настроек планов обмена.

Как добавить расширение из файла

Для установки нужен файл .cfe от известного поставщика и права на управление расширениями. Файл .epf — внешняя обработка, .cf — файл конфигурации: в этот список их не загружают.

  1. Запишите версии. В окне «О программе» посмотрите полный номер платформы, название и релиз конфигурации. Сверьте их с требованиями расширения. Формулировки «для 8.3» недостаточно: возможности внутри этой ветки различаются.
  2. Подготовьте восстановление и тестовую базу. Сделайте резервную копию штатным для вашей базы способом и убедитесь, что её можно восстановить. Создайте отдельную копию для проверки. Отключите в ней реальные рассылки, платежи и обмены, чтобы тест не ушёл контрагентам.
  3. Проверьте режим совместимости. Попросите разработчика сверить свойства основной конфигурации и расширения с поддерживаемой платформой. «Режим совместимости расширения конфигурации» ограничивает доступные ему возможности. Это свойство разработки в Конфигураторе, а не галочка в окне загрузки CFE. Не меняйте режим типовой базы и не ставьте «Не использовать» ради одного файла: нужен подходящий выпуск расширения либо согласованное обновление среды.
  4. Загрузите файл на копии. Откройте список расширений, нажмите «Добавить» и выберите CFE. Подтвердите загрузку, прочитав предупреждения. Если расширение уже есть, используйте предусмотренную команду обновления или загрузки в выбранную строку; не создавайте вторую копию и не удаляйте прежнюю ради обновления.
  5. Разберите настройки безопасности. Начните с включённых защит. Если поставщик требует доступ к файлам, сети или внешним компонентам, выясните, какой именно. Администратор проверит происхождение файла и допустимые разрешения. Отключение безопасного режима допустимо только как осознанная настройка доверенного решения, а не универсальное лечение.
  6. Проверьте применимость и перезапустите сеанс. Выполните доступную в списке команду проверки; в Конфигураторе она обычно называется «Проверка возможности применения». Устраните сообщения об ошибках. Если запрошено обновление структуры базы, прочитайте список изменений и обеспечьте требуемый доступ. Затем закройте сеанс и войдите заново.
  7. Проверьте результат обычным пользователем. Откройте изменённую форму, выполните нужное действие, запишите документ и откройте его повторно. Для доработки проведения сравните движения и итоговый отчёт. После успешной проверки повторите установку в рабочей базе в согласованное время, с актуальной резервной копией.
Путь добавления расширения: версии, копия базы, загрузка, проверка и новый сеанс 1. Сверить требованияПлатформа, релиз, совместимость 2. Подготовить копию базыПроверить возможность восстановления 3. Добавить CFE на копииБезопасность → применимостьОшибка? Сначала разобраться 4. Новый сеанс и проверкаЗаписать → закрыть → открытьУспех → установка в рабочей базе
Проверка применимости отвечает за подключение. Рабочий сценарий проверяет, правильно ли действует доработка.

Смысл свойства и его ограничения описаны в документации по свойствам расширения. Сверяйте справку именно с вашей версией платформы.

Как добавить реквизит и элемент на форму

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

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

  1. На копии базы создайте расширение. В Конфигураторе откройте «Конфигурация» → «Расширения конфигурации», добавьте новое, задайте имя, префикс собственных объектов и подходящее назначение. Проверьте совместимость.
  2. Заимствуйте нужную управляемую форму. Найдите документ и его форму в основной конфигурации, вызовите «Добавить в расширение». Дальше редактируйте форму в дереве расширения. Основную конфигурацию для этого менять не нужно.
  3. Добавьте источник значения. Для временного ввода создайте собственный реквизит формы с нужным типом. Для постоянного значения добавьте собственный реквизит заимствованного документа в расширении, если это поддерживает ваш режим. Проверьте, что он доступен в данных основного реквизита формы — обычно это «Объект».
  4. Выведите элемент. Перетащите реквизит в дерево элементов формы либо создайте поле и задайте «Путь к данным». Для хранимого значения путь должен вести к реквизиту объекта, а не к одноимённому временному реквизиту формы. Разместите поле в нужной группе и задайте понятный заголовок.
  5. Обновите расширение в базе и проверьте. Сохраните изменения, выполните проверку применимости и необходимое обновление конфигурации базы данных. В новом сеансе введите значение, запишите документ, закройте и откройте его. Повторите под пользователем с рабочими правами.

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

Изменения формы объединяются с основной формой при подключении. Правила заимствования элементов и поведения при их изменении разобраны в разделе документации 1С о формах расширения.

Что можно менять в объектах и документах

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

Свои объекты и реквизиты

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

Модули и поведение программы

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

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

Где проходит граница

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

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

Почему после обновления всё перестало работать

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

Обновление типовой: проверка применимости и отдельная проверка поведения расширения Новый релиз типовойФорма или метод могли измениться Проверка применимостиСвязи и контролируемые свойстваОшибка → адаптировать расширение Подключилось? Проверить работуЗапись, проведение, обмен, отчётОшибка → исправить и повторить Проверки пройденыМожно планировать рабочее обновление
Успешное подключение не доказывает правильность расчётов. Проверка должна доходить до результата в документе или отчёте.

Расширение вообще не подключается

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

Подключается, но падает при действии

Запишите, какая команда вызвала сбой, под каким пользователем и на каком документе. Разработчик проверит изменившиеся параметры методов, заимствованные формы и обращения к данным. Если расширений несколько, конфликт проверяют на копии с разными сочетаниями подключений, учитывая зависимости. Массово отключать доработки в рабочем учёте для эксперимента не стоит.

Ошибки нет, но результат стал другим

Это тоже сбой. Сравните на тестовых данных движения документа, печатную форму, итог отчёта или результат обмена до и после обновления. Метод, заменённый расширением, мог сохранить старое поведение и пропустить исправление поставщика. Одного открытия базы без предупреждений здесь недостаточно.

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

Для следующего обновления сохраните короткий паспорт: версии компонентов, список расширений, необходимые разрешения, проверочные операции и ответственный за доработку. Тогда при сбое будет с чего начать, кроме сообщения «раньше работало».

Короткие ответы

Как посмотреть установленные расширения в 1С?
Откройте «Функции для технического специалиста» → «Стандартные» → «Управление расширениями конфигурации». В старых интерфейсах первый пункт называется «Все функции». Если команды нет, проверьте настройки интерфейса и права с администратором.
Как добавить расширение из файла CFE?
Сначала проверьте файл на копии базы: откройте управление расширениями, выберите «Добавить», укажите CFE, проверьте применимость и перезапустите сеанс. До установки сверьте версии платформы, конфигурации и требования поставщика.
Почему расширение не работает, хотя стоит флаг «Активно»?
Флаг разрешает подключение, но не гарантирует его. Возможны ошибка применимости, ограничения безопасности или старый сеанс. Перезапустите 1С и посмотрите сообщение о подключении; затем проверьте проблемную операцию на копии базы.
Как сохранить значение нового поля документа?
Добавьте хранимый реквизит документа в расширении и свяжите с ним элемент формы. Отдельный реквизит формы сам по себе не сохраняет значение в документе. Проверьте результат после записи, закрытия и повторного открытия.
Что делать, если расширение перестало работать после обновления?
Сохраните текст ошибки и версии компонентов. На копии базы проверьте применимость, затем изменившиеся объекты, формы и методы. Возьмите совместимый выпуск расширения или адаптируйте его и повторите рабочие сценарии. Не удаляйте расширение с данными ради переустановки.

Когда расширения недостаточно

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

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

Большой объём сам по себе не доказывает, что пора менять типовую. Сравнивают поддерживаемость вариантов: что произойдёт при следующем релизе, кто проверит результат и как будут перенесены данные. Если ограничения подтвердились, стоит обсудить доработку 1С с перечнем конкретных изменений. Начинать такой разговор удобнее с описания нужного поведения и ограничений базы.

Иван Бохан
Основатель VANTEAM · внедрение, доработка и сопровождение 1С с ИИ по Agile:SCRUM