Вернуть 1С к прежнему релизу: что реально откатывается и чем за это платят
Содержание
Частое заблуждение: обновление 1С можно «удалить», как обновление Windows, и база вернётся в прежнее состояние. Кнопки «откатить релиз» в 1С 8.3 нет. Удалить обновления
конфигурации можно ровно тремя путями: вернуться к конфигурации базы данных, если обновление ещё не применено; загрузить резервную копию .dt, сделанную до обновления; или поднять бэкап СУБД для серверной базы. Платформу откатить проще: старая версия ставится рядом с новой, а новая удаляется через «Приложения» Windows.
Разница принципиальная. Конфигурация живёт внутри базы и при обновлении меняет структуру таблиц и сами данные. Платформа — это просто программа на диске, её версии не трогают базу и переключаются в настройках запуска.
Что происходит с базой при обновлении и почему откат не симметричен
Обновление релиза типовой конфигурации идёт в два этапа:
- 🔧 В Конфигураторе меняется состав объектов и структура таблиц: добавляются реквизиты, регистры, индексы. Это шаг «Обновить конфигурацию базы данных».
- ⚙️ При первом запуске в режиме 1С:Предприятие выполняются обработчики обновления. Они переносят и пересчитывают данные под новую логику: заполняют новые реквизиты, перестраивают регистры, меняют настройки.
После второго этапа данные уже переложены под новый релиз. Если взять старый файл .cf и загрузить его поверх, структура вернётся, а данные останутся «новыми». Итог — пустые поля, ошибки при проведении, некорректные отчёты.
Загрузка старого .cf в обновлённую базу — не откат. Это смешение старой программы с новыми данными. Делайте так только на копии и только если понимаете, какие обработчики успели отработать.
Отсюда простое правило: какой способ доступен, зависит от того, где вы остановились.
| Где вы сейчас | Способ отката | Что потеряете |
|---|---|---|
| Обновление загружено в Конфигуратор, но база не обновлена | Вернуться к конфигурации БД | Ничего |
| База обновлена, в Предприятие ещё никто не заходил | Загрузить .dt до обновления | Ничего, если после бэкапа работы не было |
| Пользователи уже работали в новом релизе | Загрузить .dt или бэкап СУБД | Всё, что ввели после бэкапа |
| Проблема в платформе, а не в конфигурации | Запустить базу на прежней версии платформы | Ничего |
.dt, сделанный перед обновлением. Если копии нет, сохраните текущую базу и не запускайте Предприятие, пока не решите вопрос.Отменить обновление конфигурации до применения к базе
Это единственный «чистый» откат. Он работает, пока изменения лежат только в основной конфигурации Конфигуратора, а конфигурация базы данных осталась прежней.
Признак такого состояния: в дереве конфигурации у корня стоит пометка, что основная конфигурация отличается от конфигурации БД, а при закрытии Конфигуратор предлагает обновить базу.
Порядок действий:
- Откройте базу в режиме Конфигуратор.
- Выберите
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. - Подтвердите. Основная конфигурация заменится той, что сейчас записана в базе.
- Закройте и откройте дерево конфигурации, проверьте номер релиза в свойствах корня.
Команда отменяет и загруженное обновление, и любые несохранённые в базу правки. Если вы до обновления дорабатывали конфигурацию и не применили доработки, они тоже пропадут.
Номер текущего релиза видно в режиме Предприятия через меню «О программе» (значок с вопросом в правом верхнем углу). В Конфигураторе — в свойствах корневого элемента конфигурации, поле «Версия».
Вернуть прежний релиз из резервной копии
Если база уже обновлена, рабочий способ один — восстановить копию, сделанную до обновления. Для файловой базы подходят два варианта.
Загрузка выгрузки .dt
- Убедитесь, что все пользователи вышли из базы: загрузка требует монопольного доступа.
- Сделайте выгрузку текущего состояния:
Администрирование → Выгрузить информационную базу. Это страховка на случай, если старый бэкап окажется битым. - Выберите
Администрирование → Загрузить информационную базуи укажите файл.dtдо обновления. - Подтвердите замену. Конфигуратор предупредит, что текущие данные будут заменены.
- Запустите базу в режиме Предприятия и проверьте релиз в «О программе».
Загрузка .dt полностью заменяет базу: данные, пользователей, конфигурацию. Всё, что ввели после создания копии, исчезнет.
Копия каталога файловой базы
Если перед обновлением вы скопировали папку с файлом 1Cv8.1CD, откат ещё проще: закройте все сеансы, переименуйте текущую папку (не удаляйте) и положите на её место копию. Путь к базе в списке баз менять не нужно.
Серверная база
Для клиент-серверного варианта надёжнее бэкап средствами СУБД — MS SQL или PostgreSQL. Его восстанавливает администратор СУБД поверх базы или в новую базу с последующей регистрацией в кластере. Выгрузка .dt тоже работает, но на больших базах идёт часами.
Перед восстановлением заблокируйте начало сеансов и регламентные задания в свойствах информационной базы в консоли кластера. Пользователи, которые останутся в базе, при восстановлении потеряют сеансы.
Если копии нет
Типовые конфигурации при обновлении через Администрирование → Обслуживание → Обновление версии программы предлагают создать резервную копию. Проверьте каталог, указанный в настройках резервного копирования, и папку, куда помощник обновления сохраняет копии: файл .dt мог создаться автоматически.
Если копий нет вообще, вернуть прежний релиз без последствий нельзя. Остаётся ждать исправительного релиза или разбирать конкретную ошибку.
Перенести данные, введённые после обновления
Самая неприятная часть отката — документы, которые пользователи успели ввести в новом релизе. Порядок обычно такой:
- 📋 Составьте список: отберите в журналах документы с датой ввода после обновления. Удобнее всего отбор по дате в журнале операций или в отчёте по истории изменений, если версионирование включено.
- 🗂️ Мало документов (до нескольких десятков) — проще ввести их заново в восстановленной базе.
- 📦 Много документов — выгрузите их из обновлённой копии обработкой «Выгрузка и загрузка данных XML» и загрузите в восстановленную базу. Делайте это на тестовой копии: структуры объектов в разных релизах отличаются, часть реквизитов может не загрузиться.
- 🔁 Обмены — если база участвует в обмене (с УТ, Розницей, сайтом), после отката проверьте номера сообщений и регистрацию изменений. Иначе узел может прислать или ждать данные, которых в базе уже нет.
Обновлённую базу до конца переноса не удаляйте. Загрузите её .dt в отдельную копию и используйте как источник.
Сравнить версии конфигурации перед откатом
Иногда «удалить обновление» хотят из-за одной изменившейся формы или отчёта. Прежде чем откатывать всю базу, выясните, что именно поменялось.
Как сравнить конфигурации:
- В Конфигураторе откройте
Конфигурация → Сравнить конфигурации. - Слева выберите текущую конфигурацию, справа — «Конфигурация из файла» и укажите
.cfпрежнего релиза. - Отчёт покажет изменённые объекты: формы, модули, макеты. По двойному щелчку видно отличия в модулях.
Где взять .cf прежнего релиза:
- 📁 из каталога шаблонов, если дистрибутив ставили через установщик;
- 💾 выгрузить из старой копии базы:
Конфигурация → Сохранить конфигурацию в файл; - 🗄️ из истории хранилища конфигурации, если база подключена к хранилищу:
Конфигурация → Хранилище конфигурации → История хранилища, выбрать версию и сохранить её в файл.
Если проблема в одном объекте нетиповой доработки, её часто проще восстановить расширением, чем откатывать релиз целиком. После загрузки .cfe не забудьте отдельно обновить конфигурацию БД.
Удалить файлы обновлений с диска
Скачанные дистрибутивы обновлений занимают место, а иногда мешают: помощник обновления снова и снова находит «застрявший» релиз. Удалить их можно вручную.
| Что | Где обычно лежит | Можно ли удалять |
|---|---|---|
| Шаблоны конфигураций и обновлений | %APPDATA%\1C\1cv8\tmplts | Да, кроме нужных для новых баз |
| Каталог, заданный для шаблонов в настройках | Смотрите в окне запуска: «Настройка» → «Каталоги шаблонов конфигураций и обновлений» | Да, после проверки |
| Временные файлы помощника обновления | Временная папка пользователя %TEMP% | Да, при закрытой 1С |
| Кэш клиента | %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, папки с длинными именами-GUID | Да, при закрытой 1С |
Внутри tmplts дистрибутивы лежат по папкам вида 1c\Accounting\3_0_xxx_yy. Удаляйте папки старых релизов целиком. Сама база при этом не меняется: шаблон — только источник для установки.
Кэш чистят, когда после отката интерфейс показывает старые формы или ошибки «из прошлого релиза». Вместо ручного удаления можно запустить 1С с ключом /ClearCache:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Buh" /ClearCache
Чистите кэш, когда пользователь закрыл 1С. На терминальном сервере удаление папок в чужом профиле обрывает его сеанс, поэтому делайте это после окончания рабочего дня.
Откат платформы 1С на прежнюю версию
Платформа 8.3 устанавливается в отдельные папки по номеру версии: C:\Program Files\1cv8\8.3.24.1691, C:\Program Files\1cv8\8.3.25.1374 и т. д. Несколько версий спокойно живут рядом.
Файловые базы и клиент
- Проверьте, что нужная версия установлена: папка с её номером есть в
C:\Program Files\1cv8. Если нет — установите дистрибутив этой версии. - В окне запуска выберите базу, нажмите «Изменить» и дойдите до последней страницы.
- В поле «Версия 1С:Предприятия» укажите номер, например
8.3.24.1691. Можно короче —8.3.24, тогда возьмётся последняя установленная сборка этой ветки. - Удалите ненужную версию:
Параметры → Приложения(или «Программы и компоненты»), строка «1С:Предприятие 8 (8.3.xx.xxxx)».
Удаление платформы не трогает базы, список баз и настройки пользователей. Стираются только файлы программы.
Перед откатом проверьте требования релиза. Каждая типовая конфигурация требует платформу с номером не ниже определённого. Если поставить более раннюю, база не откроется с сообщением о неподходящей версии платформы. Значит, откатывать нужно и конфигурацию, а не только платформу.
Сервер 1С
В клиент-серверном варианте версия клиента должна совпадать с версией сервера до последней цифры сборки. Порядок отката:
- Предупредите пользователей: при остановке службы все сеансы оборвутся. Делайте это вне рабочего времени.
- Остановите службу «Агент сервера 1С:Предприятия 8.3».
- Установите прежнюю версию сервера с опцией установки как службы Windows, либо переключите путь к исполняемому файлу службы на папку
binпрежней версии. - Запустите службу и проверьте в консоли кластера, что базы на месте.
- Поставьте ту же версию клиента на рабочие места и терминальный сервер.
Если после отката клиент сообщает о несоответствии версий клиента и сервера, у пользователя запускается другая сборка. Проверьте поле «Версия 1С:Предприятия» в свойствах базы и установленные на компьютере версии.
Новую версию сервера сначала удаляйте из службы, а не с диска. Пока служба ссылается на её папку, удалённая платформа оставит сервер незапускаемым.
Ошибки, из-за которых откат ломает базу
- ❌ Загрузили старый
.cfвместо.dt. Структура старая, данные уже преобразованы. Лечится только восстановлением полноценной копии. - ❌ Восстановили копию поверх базы с работой за неделю. Перед загрузкой
.dtвсегда выгружайте текущее состояние, чтобы было откуда перенести документы. - ❌ Откатили платформу, не проверив минимальную версию конфигурации. База не откроется, хотя «ничего не меняли».
- ❌ Разные версии клиента и сервера. В клиент-серверной схеме сборки обязаны совпадать.
- ❌ Сняли с поддержки, чтобы «откатить» объект. После снятия с поддержки обновления будут ставиться только через сравнение и объединение. Это не откат, а ручное сопровождение конфигурации на годы.
- ❌ Забыли про обмены. Восстановленная база не знает о сообщениях, отправленных после бэкапа, и узлы расходятся.
Частые вопросы
Можно ли откатить только один релиз из нескольких установленных подряд?
Пропадут ли документы, введённые после обновления?
Можно ли поставить старый релиз через файл обновления .cfu?
.cfu обновляет только вперёд, с перечисленных в нём релизов. Для возврата назад нужна копия базы.