Исправления (патчи) 1С: где взять файл и как подключить его к базе
Содержание
Патч для 1С скачивают на портале обновлений 1С (releases.1c.ru, нужна действующая подписка ИТС) или получают прямо из программы через Интернет
-поддержку. Установить патч проще всего в самой базе: Администрирование → Обслуживание → Обновление версии программы, ссылка на установленные исправления, затем добавление файла .cfe. Конфигуратор и обновление структуры базы для этого не нужны.
Способов три, и выбирают их по ситуации. Автоматическая загрузка подходит, если у базы есть доступ в интернет и подключена Интернет-поддержка. Ручная установка из файла нужна для баз без интернета. Пакетный режим Конфигуратора выручает, когда одинаковый патч надо поставить в десяток баз сразу.
Патч и обновление релиза: в чём разница
Патч (в интерфейсе — «исправление») устраняет одну конкретную ошибку типовой конфигурации, не дожидаясь следующего релиза. Технически это расширение конфигурации
с назначением «Исправление». Имя такого расширения, как правило, начинается с EF_, дальше идёт номер ошибки.
Обновление релиза меняет саму конфигурацию: новые документы, формы отчётности, изменения структуры. Это файл .cfu или полный дистрибутив, и ставится он совсем иначе.
| Патч (исправление) | Обновление релиза | |
|---|---|---|
| Что меняет | Один-два модуля поверх конфигурации | Всю конфигурацию |
| Формат файла | .cfe (иногда в архиве .zip) | .cfu или дистрибутив |
| Монопольный режим | Не нужен | Нужен для обновления структуры БД |
| Где ставить | В пользовательском режиме | Через помощник обновления или Конфигуратор |
| Откат | Удалить исправление из списка | Только из резервной копии |
| Привязка к версии | К конкретному релизу | Переход между релизами |
Платформа 1С:Предприятие патчей не имеет. Исправления платформы выходят новыми сборками, например 8.3.24 → 8.3.25, и ставятся как новая версия. Об этом ниже, в разделе про сервер на Linux.
Где скачать патч для 1С
Есть три законных источника. Все они требуют действующего договора ИТС или Интернет-поддержки.
- 🌐 Портал обновлений releases.1c.ru. Войдите под логином ИТС, откройте свою конфигурацию и нужный релиз. Если для релиза выпущены исправления, они перечислены на странице релиза со ссылкой на файл и описанием ошибки.
- 🖥️ Интернет-поддержка в самой программе. Программа сама узнаёт, какие исправления выпущены для вашего релиза, и скачивает их. Логин и пароль те же, что на портале.
- 🐞 Публичный реестр ошибок 1С. В карточке ошибки видно, в каком релизе её исправят и выпущен ли патч. Сам файл всё равно берут на портале или через программу.
Не скачивайте .cfe с форумов и файлообменников. Расширение получает доступ к данным базы и может выполнять любой код. Патч с неизвестного сайта — это чужая программа внутри вашей бухгалтерии.
Как узнать свою версию и проверить совместимость патча
Каждое исправление выпускается под конкретный релиз конфигурации. Патч для релиза 3.0.150 к релизу 3.0.145 не подойдёт. Поэтому первым делом узнайте номер.
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Выберите
Справка → О программе. - Запишите две строки: версию конфигурации (например,
3.0.150.25) и версию платформы (например,8.3.24.1342).
Дальше сравните номер с тем, что указан на странице патча. Совпасть должны все четыре группы цифр версии конфигурации. Если номер вашего релиза ниже указанного, сначала обновите конфигурацию, а уже потом ставьте патч.
Ещё два момента проверки:
- 🔧 Требование к платформе. У некоторых исправлений указан минимальный номер платформы. Ваш номер должен быть не ниже указанного.
- ✏️ Доработки конфигурации. Если типовую конфигурацию изменяли и тот модуль, который правит патч, переписан программистом, исправление может не примениться или сработать неправильно. Спросите у программиста, менял ли он объект из описания ошибки.
Подготовка к установке: копия и права
Патч ставится быстро и снимается одной кнопкой, но расширение может работать с данными. Поэтому минимум подготовки нужен.
- 💾 Резервная копия. Для файловой базы скопируйте каталог с файлом
1Cv8.1CD, закрыв перед этим все сеансы. Для клиент-серверной — выгрузите.dtиз Конфигуратора или сделайте копию средствами СУБД. - 👤 Права. Устанавливать исправления может только пользователь с полными правами (роль администратора).
- 🕐 Время. Новое исправление начинает работать в новых сеансах. Пользователям, которые сидят в базе, придётся перезапустить программу, поэтому планируйте установку на перерыв или конец дня.
- 🧪 Проверка на копии. Если база доработана или исправление затрагивает расчёт зарплаты, закрытие месяца , отчётность, сначала поставьте его в копию и проверьте нужную операцию.
Установка патча 1С по шагам
Ниже три способа, от самого простого к самому техническому. Выберите один.
Способ 1. Автоматическая загрузка исправлений
Подходит, если база видит интернет и подключена Интернет-поддержка.
- Откройте
Администрирование → Интернет-поддержка и сервисы. - Убедитесь, что Интернет-поддержка подключена. Если нет, нажмите
Подключитьи введите логин и пароль портала. - В блоке обновления версии программы включите автоматическую проверку обновлений и флажок загрузки и установки исправлений (патчей).
- Задайте расписание, например каждый день ночью.
Программа сама скачает подходящие исправления и установит их. Список установленных можно посмотреть в разделе обновления программы.
В клиент-серверной базе автоматическая установка идёт регламентным заданием. Проверьте в консоли кластера, что выполнение регламентных заданий для базы не заблокировано.
Способ 2. Установка патча из файла в программе
Нужен для баз без интернета и в случаях, когда исправление прислала поддержка 1С.
- Скачайте файл на портале. Если пришёл архив
.zip, распакуйте его: внутри будет файл.cfe. - В базе откройте
Администрирование → Обслуживание → Обновление версии программы. - Перейдите по ссылке на установленные исправления (патчи).
- В открывшемся списке нажмите команду добавления исправления из файла и выберите
.cfe. - Дождитесь, пока исправление появится в списке.
- Попросите пользователей перезапустить программу.
Если в вашем релизе нет такой ссылки, значит, он слишком старый для механизма исправлений. Тогда ставьте патч через Конфигуратор или сначала обновите конфигурацию.
Способ 3. Через Конфигуратор
Этот путь выбирают администраторы, которые и так работают в Конфигураторе.
- Запустите базу в режиме
Конфигуратор. - Откройте
Конфигурация → Расширения конфигурации. - В меню действий списка выберите команду загрузки расширения из файла и укажите
.cfe. - Проверьте, что у загруженного расширения стоит флажок «Активно».
- Выполните
Конфигурация → Обновить конфигурацию базы данныхдля этого расширения.
Без последнего шага расширение будет загружено, но в базе не применится.
Как проверить, что патч работает, и как его откатить
После перезапуска программы проверьте три вещи:
- Исправление есть в списке установленных патчей, ошибок напротив него нет.
- Номер в имени исправления совпадает с номером ошибки из описания на портале.
- Операция, которая раньше давала сбой, теперь проходит. Это и есть главная проверка.
Если после патча что-то пошло не так, откат простой:
- ↩️ В пользовательском режиме удалите исправление из списка установленных патчей и перезапустите сеансы.
- ↩️ В Конфигураторе снимите флажок «Активно» у расширения или удалите его, затем обновите конфигурацию базы данных.
- ↩️ Если исправление успело изменить данные (например, перезаписало документы при пересчёте), удаление патча данные не вернёт. Тут поможет только резервная копия.
При обновлении конфигурации до релиза, где ошибка уже исправлена, программа удаляет ненужные патчи автоматически. Чистить список руками после каждого обновления не требуется.
Пакетная установка патчей на нескольких базах
Когда одна и та же конфигурация стоит в 10-20 базах, ставить исправление вручную в каждую долго. Конфигуратор умеет работать в пакетном режиме из командной строки.
Пример для Windows, файл patch.bat:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe"
set CFE=D:\patches\EF_00_00123456.cfe
set EXT=EF_00_00123456
for %%B in (Srv1C\buh_ooo1 Srv1C\buh_ooo2 Srv1C\buh_ip) do (
%V8% DESIGNER /S "%%B" /N "Администратор" /P "пароль" ^
/LoadCfg "%CFE%" -Extension %EXT% /UpdateDBCfg -Extension %EXT% ^
/Out "D:\patches\log_%%~nxB.txt"
)
Что здесь важно:
/LoadCfg ... -Extensionзагружает файл как расширение с указанным именем./UpdateDBCfg -Extensionприменяет его к базе./Outпишет журнал по каждой базе. Откройте файлы после прогона и убедитесь, что ошибок нет.- Путь к
1cv8.exe, имена баз, имя пользователя и пароль замените на свои. Имя расширения возьмите из имени файла или из описания патча.
Пароль в открытом виде в .bat — риск. Храните скрипт в папке с доступом только для администраторов, а для пакетной работы заведите отдельного пользователя 1С.
Для файловых баз вместо /S "сервер\база" используйте /F "D:\Bases\Buh".
Обновление сервера 1С на Linux: скрипт и порядок действий
Под «патчем для сервера 1С» обычно имеют в виду переход сервера на новую сборку платформы. Патчи конфигурации на Linux ставятся так же, как на Windows, из самой базы. А вот платформу обновляют установкой новой версии.
Ниже порядок для платформы 8.3.21 и новее: там сервер ставится единым установщиком setup-full-...-x64.run, а служба запускается через systemd из шаблона в каталоге версии.
Остановка службы обрывает все сеансы пользователей на этом сервере. Предупредите людей заранее и делайте это в нерабочее время.
Остановка службы
Узнайте точное имя текущей службы:
systemctl list-units --type=service | grep srv1cv8
Затем остановите её. Если на сервере работает служба ras для консоли администрирования, остановите и её.
Установка новой сборки
Новая версия ставится рядом со старой, в отдельный каталог /opt/1cv8/x86_64/<версия>. Настройки кластера и список баз хранятся отдельно от каталога версии и при установке не теряются.
Запуск службы новой версии
Старую службу отключают, новую подключают из шаблона и включают в автозапуск. Всё это удобно собрать в один скрипт:
#!/bin/bash
# Запуск: sudo ./update1c.sh <старая версия> <новая версия>
set -e
OLD="$1"
NEW="$2"
systemctl stop "srv1cv8-$OLD@default"
systemctl disable "srv1cv8-$OLD@default"
./setup-full-$NEW-x64.run --mode unattended --enable-components server
systemctl link "/opt/1cv8/x86_64/$NEW/srv1cv8-$NEW@.service"
systemctl enable "srv1cv8-$NEW@default"
systemctl start "srv1cv8-$NEW@default"
systemctl status "srv1cv8-$NEW@default" --no-pager
Скрипт кладут в ту же папку, где лежит установщик новой сборки. Набор компонентов в --enable-components подберите под свой сервер: если нужен веб-сервер или консоль, добавьте соответствующие компоненты по справке установщика.
Проверка журналов
После запуска посмотрите журнал службы:
journalctl -u "srv1cv8-$NEW@default" -n 50 --no-pager
Убедитесь, что служба в состоянии active (running) и в журнале нет ошибок запуска. Затем зайдите в любую базу с клиента.
Версия клиента 1С должна совпадать с версией сервера до последней цифры. После обновления сервера обновите платформу на всех рабочих местах и терминальных серверах, иначе пользователи не подключатся.
Если с новой сборкой что-то не так, откат быстрый: остановите и отключите службу новой версии, снова включите и запустите службу старой. Старый каталог версии оставьте на сервере хотя бы на неделю.