Доработанная типовая 1С: обновление без потери своих изменений
Содержание
Измененную конфигурацию 1С обновляют в Конфигураторе через Конфигурация → Поддержка → Обновить конфигурацию. Платформа сравнивает три версии: вашу текущую, старую версию поставщика и новую. Объекты, которые вы не трогали, обновляются сами. Где правили и вы, и фирма 1С, решение о слиянии принимаете вы.
Главная боль тут одна: после кнопки «Выполнить» пропадает доработанная печатная форма или перестаёт проводиться документ. Ниже порядок, при котором ваши изменения переживают обновление, а рабочая база не простаивает. Инструкция общая для платформы 8.3 и подходит для БП 3.0, ЗУП 3.1, УТ 11 и других типовых решений на поддержке.
1. Подготовка к обновлению доработанной конфигурации
Начните с проверки, что конфигурация вообще стоит на поддержке. Откройте Конфигурация → Поддержка → Настройка поддержки. В окне видно имя поставщика, версию и режим.
| Что видите в настройке поддержки | Что это значит для обновления |
|---|---|
| Изменения разрешены, версия указана | Нормальный случай: обновление с трёхсторонним сравнением |
| Изменения не разрешены | Конфигурация типовая, правок нет, обновится без сравнения |
| Конфигурация снята с поддержки | Обновить штатно нельзя, сначала нужно вернуть поддержку |
У каждого объекта свой режим. Объект поставщика не редактируется обновится полностью. Редактируется с сохранением поддержки попадёт в сравнение. Снят с поддержки обновляться не будет вообще: ваша версия останется как есть, а новшества поставщика в этот объект не придут.
Что подготовить заранее
- 💾 Выгрузку базы в .dt.
Администрирование → Выгрузить информационную базув Конфигураторе. Для этого нужен монопольный доступ, поэтому выгрузку делают, когда пользователи вышли. - 📄 Копию текущей конфигурации.
Конфигурация → Сохранить конфигурацию в файл. Этот .cf пригодится, если придётся откатить только конфигурацию без данных. - 🧾 Список своих доработок. Через
Конфигурация → Сравнить конфигурациисравните основную конфигурацию с конфигурацией поставщика. Получится перечень всех изменённых объектов. Сохраните отчёт: по нему потом проверяют, что ничего не потерялось. - 🧪 Копию базы для пробного прогона. Разверните .dt в отдельную пустую базу. Всё дальнейшее сначала делается там.
Первое обновление делайте только на копии. Рабочую базу трогают, когда на копии всё прошло и проверено.
2. Где взять новую версию и как сравнить её с текущей
Обновления распространяются в двух форматах:
- .cfu — файл обновления. Подходит только для перехода с определённых версий. Список версий, с которых он ставится, указан в описании релиза.
- .cf — полный дистрибутив конфигурации. Ставится с любой версии, но для доработанных баз сравнение будет крупнее.
Файлы берут на сайте поддержки с вашим логином ИТС или скачивают прямо из Конфигуратора через поиск доступных обновлений. После установки шаблона ищите их в каталоге шаблонов, обычно это %APPDATA%\1C\1cv8\tmplts\1c\<имя конфигурации>\<версия>.
Нельзя ли перепрыгнуть через релизы
Технически с полным .cf платформа обновит конфигурацию с любой версии. Но обработчики обновления данных в типовых конфигурациях часто требуют минимальную исходную версию. Это написано в описании релиза: «обновление возможно с версии…».
Если ваша версия ниже, ставьте цепочку. Для каждого промежуточного релиза выполняйте весь цикл, включая запуск в режиме 1С:Предприятие: только тогда отработают обработчики обновления данных.
💡 Чем дольше база не обновлялась, тем больше конфликтов в сравнении. Доработанную конфигурацию выгоднее обновлять каждый месяц или квартал, а не раз в год.
3. Как разрешать конфликты при слиянии изменений
Запустите Конфигурация → Поддержка → Обновить конфигурацию, выберите файл обновления. Откроется окно сравнения в три колонки: основная конфигурация, старая конфигурация поставщика и новая конфигурация поставщика.
Сразу включите фильтр показа только дважды изменённых свойств. Это и есть настоящие конфликты: объект менял и разработчик, и фирма 1С. Остальное программа объединит без вас.
Режимы объединения
| Режим | Когда выбирать | Риск |
|---|---|---|
| Взять из новой конфигурации поставщика | Ваша правка устарела или 1С сделала то же самое | Ваша доработка в объекте пропадёт |
| Объединить с приоритетом основной конфигурации | Модуль или реквизиты, где ваша логика важнее | Можно не получить исправление ошибки от 1С |
| Объединить с приоритетом новой конфигурации поставщика | Ваши правки точечные, остальное лучше взять новое | При пересечении строк победит поставщик |
| Не объединять (оставить своё) | Объект полностью переписан вами | Новшества поставщика не придут, возможны ошибки ссылок |
Модули: объединяйте по процедурам
Для общих модулей и модулей объектов откройте настройку объединения модуля. В ней можно выбрать, откуда брать каждую процедуру: из вашей версии или из новой. Это точнее, чем объединять весь модуль одной галочкой.
Конфликтные процедуры откройте в режиме сравнения текста. Смотрите строки, где изменения пересекаются. Платформа помечает их, но решить, чья логика правильная, может только программист.
Формы и макеты
Управляемые формы сливаются хуже модулей. Практичный путь: взять форму поставщика и заново добавить свои элементы. Если правок в форме мало, это 10–15 минут работы, зато без скрытых поломок.
Макеты печатных форм объединять бессмысленно. Берите новый макет поставщика и вносите свои изменения поверх. Сохранённый на шаге 1 отчёт сравнения подскажет, что именно вы меняли.
Каждый объект, где пришлось выбрать «оставить своё» или вручную переносить правки, запишите. Это кандидаты на перенос в расширение, о котором ниже.
4. Обновление измененной конфигурации по шагам
Сам процесс на пробной копии выглядит так:
- Выгоните пользователей из копии и откройте её в Конфигураторе.
Конфигурация → Поддержка → Обновить конфигурацию, выберите поиск обновлений или файл .cf/.cfu.- Дождитесь окна сравнения. На крупных конфигурациях вроде ERP это может занять десятки минут.
- Разберите дважды изменённые объекты, как описано выше.
- Нажмите «Выполнить». Если появится окно с новыми объектами поставщика и правилами поддержки, оставьте предложенное, если нет причин менять.
- Запустите
Конфигурация → Проверка конфигурациии исправьте синтаксические ошибки в своих модулях. - Выполните
Конфигурация → Обновить конфигурацию базы данных(F7). Здесь нужен монопольный доступ. Платформа покажет список изменений структуры: просмотрите его и примите. - Запустите базу в режиме 1С:Предприятие под администратором. Подтвердите легальность получения обновления и дождитесь, пока отработают обработчики обновления данных.
Перенос результата в рабочую базу
Когда копия проверена, повторять всё сравнение в рабочей базе не нужно. В копии сохраните готовую конфигурацию в .cf через Конфигурация → Сохранить конфигурацию в файл.
В рабочей базе после выгрузки .dt выполните Конфигурация → Загрузить конфигурацию из файла, затем обновление конфигурации
базы данных и первый запуск в пользовательском режиме. Настройки поддержки хранятся в .cf, поэтому следующее обновление пройдёт так же штатно.
Этот приём работает, только если копия снята с той же рабочей базы и в рабочей никто не менял конфигурацию между копированием и загрузкой. Иначе свежие правки в рабочей базе перезапишутся.
5. Что проверить после обновления в первую очередь
Сразу после первого запуска проверьте то, что сломается заметнее всего:
- 🖨 Свои печатные формы и отчёты. Откройте каждый из списка доработок и выведите на тестовом документе.
- 📑 Проведение ключевых документов. Перепроведите несколько документов за текущий месяц в копии и сравните движения с рабочей базой.
- 🔄 Обмены. Запустите обмен с сайтом, кассой, другой базой. Новый релиз мог поменять формат или правила.
- 👥 Права. Зайдите под обычным пользователем: новые объекты могут не попасть в ваши профили доступа.
- 📊 Регламентированные отчёты. Сформируйте последний сданный отчёт и сравните цифры.
- 🧩 Журнал регистрации. Отфильтруйте ошибки за время обновления.
Если что-то сломалось, сравните объект в Конфигураторе с отчётом доработок из шага 1. Часто причина в том, что при слиянии взяли версию поставщика и ваша правка просто исчезла.
6. Расширения и внешние обработки при обновлении
Расширения конфигурации (появились в платформе 8.3.6) не участвуют в трёхстороннем сравнении. Они лежат поверх основной конфигурации и после обновления применяются заново.
Чем больше доработок вынесено в расширения, тем короче окно сравнения. В идеале основная конфигурация остаётся типовой и обновляется без конфликтов вообще.
Что проверить в расширениях
- 🔗 Заимствованные объекты. Если поставщик переименовал или удалил реквизит, на который ссылается расширение, при запуске появится ошибка применения расширения.
- 🧷 Перехваты процедур. Аннотации
&Перед,&После,&Вместо,&ИзменениеИКонтрольпривязаны к имени процедуры. Переименовали процедуру в новом релизе — перехват перестанет работать. - ⚙️ Активность расширений. После обновления проверьте, что расширения подключены: список в
Администрирование → Печатные формы, отчеты и обработки → Расширенияв БП 3.0 или в Конфигураторе черезКонфигурация → Расширения конфигурации.
Внешние обработки и отчёты
Внешние обработки и печатные формы из справочника дополнительных отчётов и обработок обновлением не затрагиваются. Но код в них обращается к объектам конфигурации по именам.
Откройте каждую внешнюю обработку на копии после обновления. Если новый релиз изменил структуру документа, обработка выдаст ошибку «Поле объекта не обнаружено» или что-то похожее. Правят её отдельно от конфигурации.
7. Как ускорить и автоматизировать обновление
Ручной цикл на одной базе занимает час-два. Если доработанных баз несколько, имеет смысл сделать процесс воспроизводимым.
Пакетный режим Конфигуратора
Выгрузку и обновление базы данных можно запускать из командной строки:
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F"D:\Bases\Copy" /N"Admin" /P"pass" /DumpIB "D:\Backup\base.dt" /Out "D:\Logs\dump.log"
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F"D:\Bases\Copy" /N"Admin" /P"pass" /LoadCfg "D:\Update\ready.cf" /UpdateDBCfg /Out "D:\Logs\update.log"
Номер платформы в пути замените на свой. Второй вариант загружает уже подготовленный .cf, как в способе переноса из раздела 4. Само трёхстороннее сравнение с ручным выбором режимов в пакетном режиме не воспроизвести. Для объединения по файлу настроек есть параметр /MergeCfg, подробности смотрите в справке платформы по параметрам командной строки.
Что ещё помогает
- 🗂 Хранилище конфигурации. Если доработки ведут несколько программистов, обновление делают в хранилище один раз, остальные получают изменения.
- 🧰 1С:EDT и Git. Позволяют видеть историю каждой правки и находить, кто и зачем менял объект.
- 🤖 Автотесты. Сценарии в Vanessa Automation прогоняют проверки из раздела 5 без ручного кликанья.
- 🏷 Комментарии в коде. Помечайте свои правки в типовых модулях, например
// Доработка 2024-03 Иванов >>и// <<. В окне сравнения такие куски видно сразу.
8. Ошибки, из-за которых обновление идёт не так
Отдельно про снятие с поддержки. Иногда, чтобы «быстро поправить», объект или всю конфигурацию снимают с поддержки. Через год обновление превращается в ручное сравнение тысяч объектов. Если правку можно сделать в режиме «редактируется с сохранением поддержки» или в расширении, делайте так.
Частые вопросы
Сколько времени занимает обновление доработанной конфигурации?
Можно ли обновлять доработанную базу самостоятельно, без программиста?
Слетят ли пользовательские настройки и данные?
Нужно ли обновлять платформу вместе с конфигурацией?
Что делать, если обновление прошло неудачно в рабочей базе?
Администрирование → Загрузить информационную базу. Данные, введённые после выгрузки, придётся внести заново, поэтому обновляют в нерабочее время.