Доработанная типовая 1С 8.3: как поставить новый релиз и не потерять свои правки
Содержание
Измененную конфигурацию 1С 8.3 обновляют в Конфигураторе через Конфигурация → Поддержка → Обновить конфигурацию файлом обновления .cfu или полным дистрибутивом .cf. Платформа сравнивает три версии: вашу текущую, старую конфигурацию поставщика и новую. Всё, что поставщик не трогал, переносится само, а вручную вы решаете только судьбу объектов, которые изменили и вы, и фирма-разработчик.
Если конфигурацию когда-то сняли с поддержки, этот путь не работает
. Тогда обновляют через Конфигурация → Сравнить, объединить с конфигурацией из файла и заодно возвращают типовую на поддержку. Третий вариант, самый спокойный для будущих обновлений, — перенести доработки в расширения, тогда основная конфигурация обновляется как типовая.
| Способ | Когда подходит | Риски |
|---|---|---|
Поддержка → Обновить конфигурацию с .cfu | Конфигурация на поддержке, ваш релиз есть в списке тех, с которых разрешён переход | Минимальные: конфликты только по дважды измененным объектам |
Поддержка → Обновить конфигурацию с полным .cf | На поддержке, но файла .cfu под ваш релиз нет | Те же, файл больше по размеру |
Сравнить, объединить с конфигурацией из файла | Конфигурация снята с поддержки | Двухстороннее сравнение: ваши правки и правки поставщика не различаются, ручной работы много |
| Расширения конфигурации | Доработок немного, они укладываются в возможности расширений | Расширение может перестать применяться после обновления, его нужно проверять |
Как понять, насколько изменена ваша конфигурация
Откройте Конфигуратор и выберите Конфигурация → Поддержка → Настройка поддержки. Окно покажет, на поддержке ли конфигурация и с какими правилами.
Возможны три состояния:
- 🔒 Конфигурация на поддержке, изменения запрещены. В дереве объекты с замком. Это чистая типовая, обновление проходит без вопросов.
- ✏️ Включена возможность изменения. Вверху окна недоступна кнопка
Включить возможность изменения, у объектов стоят правила «Объект поставщика редактируется с сохранением поддержки». Это основной случай «измененной конфигурации», ради которого всё и пишется. - ✂️ Снята с поддержки. Окно сообщает, что конфигурация не на поддержке, или у корня стоит правило «Объект поставщика снят с поддержки». Автоматического трёхстороннего сравнения не будет.
Чтобы увидеть, что именно изменено, выполните Конфигурация → Сравнить конфигурации. Слева выберите «Конфигурация поставщика», справа — «Основная конфигурация». Отчёт о различиях сохраните в файл кнопкой формирования отчёта: после обновления по нему удобно проверять, все ли доработки на месте.
Включите в окне сравнения отбор «Показывать только различия». Без него дерево разворачивается на тысячи строк, и ваши три измененных документа потеряются среди одинаковых объектов.
Подготовка базы к обновлению измененной конфигурации
Обновление доработанной базы — не та операция, которую делают в обеденный перерыв. Объединение конфигураций занимает от нескольких минут до нескольких часов, а обновление структуры БД требует монопольного доступа.
Резервные копии
- Выгрузите базу целиком:
Администрирование → Выгрузить информационную базув Конфигураторе, файл.dt. - Отдельно сохраните текущую основную конфигурацию:
Конфигурация → Сохранить конфигурацию в файл, файл.cf. Если объединение пойдёт не так, его можно отменить, просто загрузив этот файл. - Для клиент-серверной базы дополнительно сделайте бэкап средствами СУБД.
Без выгрузки .dt обновление измененной конфигурации
не начинайте: откатить реструктуризацию данных без копии нельзя.
Где взять файлы обновления
Файлы релизов после установки шаблона лежат в каталоге шаблонов, по умолчанию это %APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<номер_релиза>\. Внутри два нужных файла:
1cv8.cfu— файл обновления, применяется только к релизам, перечисленным внутри него;1cv8.cf— полный дистрибутив, подходит для обновления с любой версии этой конфигурации, если она на поддержке.
Цепочка релизов
Если ваша база отстала на несколько релизов, файл .cfu последней версии может не принять текущую. Тогда обновляются по цепочке: в описании каждого релиза указано, с каких версий на него можно перейти.
Между промежуточными релизами запускайте базу в режиме «1С:Предприятие» и дожидайтесь окончания обработчиков обновления. Пропуск этого шага — частая причина ошибок в данных после прыжка через несколько версий.
Проверка хранилища и сеансов
Если конфигурация подключена к хранилищу, захватите в нём корень конфигурации с флажком рекурсивного захвата. Без этого Конфигуратор не даст менять объекты, и обновление остановится на первом же заблокированном объекте.
Перед обновлением структуры попросите пользователей выйти. Если сеансы не закрываются, завершать их придётся принудительно — люди потеряют несохранённые документы, поэтому делайте это вне рабочего времени.
Обновление измененной конфигурации через режим поддержки
Это штатный способ, и для конфигурации на поддержке с включенной возможностью изменения он основной.
Запуск обновления
- В Конфигураторе откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - В диалоге выберите «Выбор файла обновления» и укажите
1cv8.cfuили1cv8.cfнужного релиза. Вариант «Поиск доступных обновлений» тоже работает, если шаблоны установлены в стандартный каталог. - Платформа покажет номер релиза и описание. Нажмите
Продолжить обновление. - Дождитесь окна сравнения и объединения. На большой конфигурации вроде ERP это занимает заметное время.
Что вы видите в окне объединения
В окне три колонки: основная конфигурация, старая конфигурация поставщика и новая конфигурация поставщика. Платформа сама размечает объекты:
- ✅ изменены только поставщиком — флажок стоит, объект возьмётся из нового релиза;
- 🟡 изменены только вами — флажок по умолчанию не стоит, ваша версия сохранится;
- 🔴 изменены и вами, и поставщиком — это дважды измененные объекты, ими и придётся заниматься.
Внизу окна включите отбор «Показывать только дважды измененные свойства». Список сразу сократится до тех мест, где нужно решение.
Завершение объединения
После разбора конфликтов нажмите Выполнить. Платформа предложит настроить правила поддержки для новых объектов, оставьте предложенные. Основная конфигурация обновлена, но база ещё работает со старой структурой — до шага обновления БД, о котором ниже.
Обновление через сравнение с конфигурацией из файла
Этот путь нужен, когда типовую сняли с поддержки. Трёхстороннего сравнения нет: платформа видит только «ваша сейчас» и «новая от поставщика». Любое отличие выглядит одинаково, неважно, чья это правка.
Порядок работы
- Сделайте копии, как описано в разделе о подготовке.
- Возьмите полный файл
.cfтого же релиза, на котором сейчас стоит ваша конфигурация. - Выполните
Конфигурация → Сравнить, объединить с конфигурацией из файлаи укажите этот файл. - Платформа спросит, поставить ли конфигурацию на поддержку. Ответьте «Да».
- В окне сравнения снимите все флажки, чтобы ничего не заменить, и нажмите
Выполнить.
Теперь конфигурация снова на поддержке, а ваши правки зафиксированы как изменения относительно этого релиза. Дальше обновляйтесь штатно, через Поддержка → Обновить конфигурацию.
Если точный номер релиза, с которого сняли поддержку, неизвестен, посмотрите свойства конфигурации: поле «Версия» обычно сохраняет последний установленный номер. Сравнение с файлом не того релиза даст сотни ложных различий.
Если релиз найти не удалось
Тогда остаётся ручной путь. Создайте пустую базу из нового .cf, а в рабочей выполните сравнение с этим файлом. Каждое различие придётся оценивать глазами: свой это код или код поставщика. Именно здесь пригодится отчёт о различиях, сохранённый до начала работ, и комментарии в коде с пометкой автора доработки.
Правила поддержки, хранилище и снятие блокировок
Часть проблем при обновлении — не конфликты, а запреты.
Правила поддержки объектов
Если объект стоит на правиле «Объект поставщика не редактируется», вы не сможете исправить его после объединения. Чтобы разрешить правку, в Поддержка → Настройка поддержки выберите объект и смените правило на «Объект поставщика редактируется с сохранением поддержки».
| Правило | Что происходит при обновлении |
|---|---|
| Не редактируется | Объект просто заменяется новой версией |
| Редактируется с сохранением поддержки | Платформа сравнивает три версии и предлагает объединение |
| Снят с поддержки | Объект не обновляется, изменения поставщика в него не придут |
Не ставьте «Снят с поддержки» на объект только ради того, чтобы обновление прошло без вопросов. Через пару релизов этот объект отстанет от остальной конфигурации, и ошибки начнутся там, где их никто не ждёт.
Работа с хранилищем
При групповой разработке порядок такой:
- Все разработчики помещают свои изменения в хранилище.
- Ответственный захватывает корень конфигурации рекурсивно.
- Выполняет обновление в своей копии.
- Проверяет конфигурацию и помещает изменения в хранилище.
Пока корень захвачен, остальные не могут менять объекты. Предупредите команду заранее.
Расширения
Если доработки сделаны в расширениях, перед обновлением выпишите их список: Конфигурация → Расширения конфигурации. После обновления каждое расширение нужно проверить, потому что поставщик мог переименовать реквизит или процедуру, к которой расширение привязано.
Разбор конфликтов при объединении версий
Для каждого дважды измененного объекта выбирается режим. Его меняют в колонке режима объединения прямо в дереве.
| Режим | Что получится | Когда выбирать |
|---|---|---|
| Взять из новой конфигурации поставщика | Ваша правка пропадёт | Доработка больше не нужна или поставщик сделал то же самое |
| Объединить с приоритетом основной конфигурации | Объединение, при конфликте выигрывает ваша версия | Ваша логика важнее, правки поставщика вторичны |
| Объединить с приоритетом новой конфигурации поставщика | Объединение, при конфликте выигрывает новый релиз | Правки поставщика существенные, а ваши можно вернуть вручную |
| Не объединять (флажок снят) | Остаётся ваша версия целиком | Объект полностью ваш, поставщик внёс мелочь |
Модули
Модули объединяются по процедурам. Если вы и поставщик меняли разные процедуры одного модуля, объединение пройдёт чисто. Если одну и ту же — откройте сравнение модуля двойным щелчком и посмотрите построчно.
Практичный приём: выбирайте приоритет поставщика, а свои несколько строк вставляйте вручную после объединения. Так типовой код обновится полностью, а ваша вставка будет видна как изменение одной процедуры.
Формы
Управляемые формы объединяются хуже всего. Если вы добавили на форму пару полей, удобнее взять форму поставщика и вернуть поля руками, чем разбирать конфликты элементов.
Удалённые объекты
Если поставщик удалил объект, а вы его меняли, платформа покажет это отдельно. Прежде чем согласиться с удалением, найдите, кто ссылается на объект в ваших доработках, через Поиск ссылок на объект в контекстном меню.
Обновление структуры, тестирование и запуск
После объединения конфигурация в Конфигураторе новая, а база данных старая. Дальше три шага.
Проверка конфигурации
Выполните Конфигурация → Проверка конфигурации. Отметьте «Синтаксический контроль модулей» и «Логическая целостность конфигурации», режимы проверки — тонкий клиент, сервер, внешнее соединение. Ошибки в ваших модулях после объединения проще исправить сейчас, чем ловить у пользователей.
Обновление конфигурации базы данных
Нажмите F7 или Конфигурация → Обновить конфигурацию базы данных. Платформа покажет список изменений структуры и попросит принять их. Реструктуризация требует монопольного доступа, на крупной клиент-серверной базе она может идти долго — планируйте окно с запасом.
Первый запуск в пользовательском режиме
Запустите «1С:Предприятие» под пользователем с полными правами. Конфигурация на базе БСП выполнит обработчики обновления и покажет ход процесса. Не прерывайте его. Часть обработчиков работает отложенно, в фоне; их состояние видно в разделе Администрирование → Обслуживание.
После проверки сделайте свежую выгрузку .dt: она станет точкой отката для следующего обновления.
Частые вопросы
Можно ли обновить измененную конфигурацию без Конфигуратора, через пользовательский режим?
Как вернуть конфигурацию на поддержку, если её сняли?
.cf того же релиза через Сравнить, объединить с конфигурацией из файла, согласитесь поставить на поддержку и снимите все флажки перед выполнением.Что делать, если объединение пошло не так?
.cf через Конфигурация → Загрузить конфигурацию из файла. Если структуру уже обновили — восстанавливайте базу из выгрузки .dt.Почему файл .cfu не подходит к моей базе?
.cf или идите по цепочке промежуточных версий.