Обновление расширения конфигурации 1С: все способы и разбор ошибок
Содержание
Расширение обновляют тремя путями: через сервис обновления прямо в режиме 1С:Предприятие, загрузкой нового файла .cfe в Конфигураторе или командной строкой пакетного режима. Если расширение подключено к хранилищу, версию берут оттуда. Первый путь самый короткий, но работает не для каждого расширения. Второй подходит почти всегда. Третий нужен, когда баз много и руками их не обойти.
Главное правило одно: расширение зависит от конфигурации, на которую оно «надето». После обновления типовой конфигурации расширение нередко приходится обновлять следом, иначе оно начнёт ругаться на отсутствующие объекты и реквизиты. Поэтому сначала решаем, что обновляем и в какой последовательности, и только потом открываем Конфигуратор.
Что проверить до обновления расширения
Эти пять минут экономят часы восстановления. Расширение лежит в базе вместе с данными, и ошибка при замене может оставить базу в полурабочем состоянии.
Резервная копия и монопольный доступ
Перед любым обновлением выгрузите информационную базу в файл .dt или сделайте копию файловой базы
целиком. Для серверной базы подойдёт бэкап СУБД. Копию кладите вне каталога базы.
Для замены расширения в Конфигураторе нужен монопольный режим, поэтому заранее попросите пользователей выйти. Список активных сеансов смотрите в консоли кластера серверов или в разделе «Администрирование — Активные пользователи» самой базы. Забытый сеанс в фоне — частая причина отказа.
Версии: что с чем совместимо
Выясните три вещи:
- версия вашей основной конфигурации (в форме «О программе»);
- версия самого расширения (в списке расширений, колонка с версией, если разработчик её заполнил);
- на какую версию основной конфигурации рассчитана новая сборка расширения. Это написано в описании от поставщика или в сопроводительном файле.
Если расширение купили или заказали, запросите у разработчика сборку под вашу версию. Подгонять чужой .cfe под другой релиз самостоятельно не стоит.
Что сделано в расширении руками
Часто в расширение со временем дописывают правки вручную: новый реквизит, доработанная печатная форма. Новый файл от поставщика эти правки затрёт. Выгрузите текущую версию расширения в файл, прежде чем заменять, и сохраните её рядом с копией базы. Тогда доработки можно будет сравнить и перенести.
Выгрузка: в Конфигураторе откройте список расширений («Конфигурация» — «Расширения конфигурации»), выделите нужное и выберите команду сохранения в файл. Имя файла лучше сразу снабдить датой.
Обновление расширения из режима 1С:Предприятие
Если в базе есть библиотека стандартных подсистем (БСП, она входит в большинство типовых решений), расширениями можно управлять без Конфигуратора. Это самый безопасный вариант для обычного пользователя с правами администратора: вы не лезете в структуру базы.
- Откройте раздел «Администрирование» и найдите пункт «Печатные формы, отчёты и обработки». Внутри будет ссылка на расширения. Если не нашли, воспользуйтесь поиском по командам интерфейса и введите слово «расширения».
- В списке выберите нужное расширение. Колонка «Активно» покажет, включено ли оно сейчас.
- Отключите расширение через флажок активности, если поставщик это требует. Для большинства достаточно сразу заменить.
- Нажмите команду добавления нового расширения и выберите файл
.cfe. Система спросит, что делать с одноимённым: заменить его. - Согласитесь с предупреждением о безопасности (о нём ниже) и дождитесь перезапуска сеанса.
После перезапуска базы расширение применяется само. Список объектов и форм обновится, а ссылки на справочники и документы останутся на местах.
Если на диалог о «защите от опасных действий» нажать «Отключить», расширение сможет выполнять небезопасный код. Снимайте защиту только для файла, в источнике которого вы уверены. Чужие .cfe из интернета открывают базе путь к вредоносному коду.
Этот способ не годится, если в базе нет БСП или раздела управления расширениями (например, в самописной конфигурации). Тогда переходите к Конфигуратору.
Замена файла .cfe через Конфигуратор
Универсальный путь. Работает в любой базе, где есть Конфигуратор и права администратора.
Шаг за шагом
- Закройте всех пользователей и откройте базу в режиме Конфигуратора.
- Выберите «Конфигурация» — «Расширения конфигурации ». Откроется окно со списком.
- Если расширение уже есть, не удаляйте его вручную. Выделите его и загрузите новый файл поверх: так сохраняется внутренний идентификатор, и данные, привязанные к расширению (например, дополнительные реквизиты), не потеряются.
- Выберите файл
.cfeи подтвердите загрузку. - Проверьте колонки «Версия», «Безопасный режим» и «Защита от опасных действий» в списке. Если поставщик не требует иного, оставьте защиту включённой.
- Закройте окно и нажмите F7 (обновление конфигурации базы данных), подробности в следующем разделе.
Если расширения в списке нет совсем, значит оно ещё не подключено: тогда его добавляют новой загрузкой, а не заменой.
Когда лучше удалить и поставить заново
Обычно замена поверх справляется. Но иногда расширение «залипает» после неудачного обновления: объекты есть, а формы не открываются. Тогда:
- Выгрузите текущее состояние в
.cfe(на случай, если понадобится вернуться). - Удалите расширение из списка.
- Загрузите свежий файл как новое расширение.
Перед удалением убедитесь, что в расширении нет собственных справочников или документов с данными. Удаление расширения вместе с такими объектами уничтожает и введённые записи.
Расширения в хранилище и автоматическая подгрузка
В командной разработке расширения лежат в хранилище конфигурации, и обновляются они как обычные объекты: получили последнюю версию и применили.
В Конфигураторе откройте хранилище расширения. Затем:
- «Получить версию» из хранилища и убедитесь, что версия в вашей базе совпала с головной.
- Если вы ведёте доработки сами, сначала «Захватить» объекты, потом «Поместить» изменения. Если только забираете чужую версию, захват не нужен.
- Пересохраните расширение в
.cfe, когда нужно раздать его другим базам.
Такая схема хороша тем, что у каждой версии есть история изменений и автор. Если новая версия сломала формы, откатываетесь на предыдущую одним действием.
Обновлять расширение «автоматом» без участия человека можно по расписанию. Для этого пишут bat-файл с вызовом пакетного режима 1cv8. Пример для одной базы:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Admin" /P "пароль" /LoadCfg "D:\Ext\MyExt.cfe" -Extension "МоёРасширение" /UpdateDBCfg -Extension "МоёРасширение" /Out "D:\Ext\log.txt" /DisableStartupDialogs
Номер версии платформы и каталог подставьте свои. Имя расширения должно совпадать с тем, что в списке. Лог-файл покажет, как прошла загрузка, и там же будет текст ошибки, если что-то пошло не так.
Пароль в bat-файле хранить небезопасно. Заведите отдельного пользователя только под обновление расширений и ограничьте доступ к скрипту средствами ОС.
Применение расширения: обновление конфигурации базы данных
Загрузить файл мало. Пока не обновлена конфигурация базы данных, структура таблиц не изменена, а новые реквизиты и справочники из расширения не появятся.
В Конфигураторе нажмите F7 или команду «Конфигурация» — «Обновить конфигурацию базы данных». Система сравнит структуру расширений с таблицами базы и перестроит их. На больших базах это занимает от нескольких минут до часа, особенно если расширение добавило реквизиты в крупные документы.
Что происходит на разных этапах:
| Этап | Что делает 1С | Время |
|---|---|---|
| Проверка | Сравнивает структуру расширения и базы | секунды |
| Реструктуризация | Добавляет колонки и таблицы | зависит от размера базы |
| Обновление регистров | Пересчитывает индексы при изменениях | минуты |
Если в расширении поменялись только модули и формы, структура не затрагивается, и обновление проходит почти мгновенно.
Для серверной базы понадобится монопольный доступ к ней. Установите сначала запрет на соединения в консоли кластера или с помощью параметров информационной базы. Иначе F7 прервётся сообщением о том, что база занята.
После обновления запустите 1С:Предприятие под администратором и проверьте, что расширение показано как активное и версия в списке новая.
Как проверить, что обновление прошло чисто
Запуститься без ошибок мало. Пройдите короткую проверку на копии или в рабочей базе в нерабочее время:
- откройте две-три формы, которые меняет расширение, и убедитесь, что реквизиты на месте;
- проведите тестовый документ из тех, что расширение затрагивает;
- сформируйте печатную форму, если расширение её дорабатывает;
- загляните в журнал регистрации и отфильтруйте события уровня «Ошибка» за время после обновления.
Если ошибок нет, а пользователи через день не жалуются, считайте обновление принятым. Копию базы
и прежний .cfe держите минимум неделю.
Диагностика ошибок и проблем совместимости
Большинство сбоев после обновления можно отнести к трём причинам: расширение не соответствует версии конфигурации, повреждён файл, не хватает прав.
Расширение рассчитано на другой релиз
Типовая картина: после обновления бухгалтерии до нового релиза расширение стало ругаться. В тексте ошибки названы объекты или методы, которых в основной конфигурации больше нет. Расширение «перехватывает» процедуры основной конфигурации. Если разработчик типового решения переименовал процедуру или изменил её параметры, перехват перестаёт срабатывать.
Что делать:
- запросить у поставщика новую сборку расширения под ваш релиз;
- временно отключить расширение , чтобы вернуть работоспособность основной конфигурации;
- если расширение собственное, сравнить модули с новой версией типовой конфигурации и внести правки.
Отключайте расширение флажком активности, не удаляя его: так проще вернуться.
Режим совместимости и версия платформы
Расширение имеет собственный режим совместимости. Если он выше возможностей платформы в вашей среде, загрузка пройдёт с ошибкой. Такое бывает, когда расширение подготовили на свежей платформе, а у заказчика стоит старая. Решение одно: обновить платформу или получить сборку под старый режим совместимости.
Проверьте версию платформы в форме «О программе» (или в запуске 1С, колонка версии). Сравните с требованиями к расширению.
Повреждённый файл и права
Файл .cfe, скачанный не до конца или переданный по почте с вложением-архивом, не загрузится: Конфигуратор сообщит о неверном формате. Проверьте размер и скачайте заново.
Если после загрузки в журнале регистрации видны сообщения об отказе в доступе, проверьте, что у пользователя есть права на изменение конфигурации. Для этого понадобится роль администратора.
Если не помогло
- Выгрузите прежний
.cfe, который вы сохраняли в начале, и загрузите его обратно. База вернётся в рабочее состояние. - Включите расширение по одному объекту за раз, если разработчик даёт такую возможность. Так найдёте проблемную форму.
- Посмотрите журнал регистрации: события конфигурации и ошибки выполнения покажут строку модуля и текст сбоя.
- Разверните копию базы на тестовом сервере и проверьте новую сборку там.
Не продолжайте работу пользователей в рабочей базе, если после обновления расширения возникают ошибки при проведении документов. Отключите расширение и разбирайтесь на копии.