Обновляем платформу 1С: Предприятие на ходу! Весело и быстро

91af2b86cd5deba6b85d3440358ab851.jpg

Введение

В моей практике, задачи по обновлению технологической платформы ставились без предупреждения и требовали немедленных действий. То есть времени на раздумья и подготовку у вас не будет. Права на ошибку у вас тоже не будет. А это значит, что вы должны иметь в голове чёткий план действий. Чаще всего такие задачи исходили от бухгалтеров, которые не могли сдать какие-то отчёты из-за проблем с их текущей рабочей конфигурацией, а коллеги из ИТС, для решения этих проблем, в свою очередь, просили меня изменить версию технологической платформы.

Имея большой опыт в обслуживании связки сервер 1С + сервер БД MS SQL, я по-прежнему, нахожу полезным держать такой план у себя под рукой в бумажном виде. Хотя я знаю его наизусть. Большинство описанных ниже действий могут показаться очевидными и не требующими комментариев. Однако, я постараюсь объяснить логику каждого моего действия для понимания моего выбора при принятии тех или иных решений. 

Все, кому по долгу службы приходится решать подобные задачи, являются моей целевой аудиторией. Вам потребуются навыки работы со стандартными инструментами ОС Windows. Разумеется, что такие термины, как служба, реестр, консоль должны быть вам понятны. Понимание архитектуры серверного варианта работы 1С, может быть на самом примитивном уровне. Например, что-то вроде:

«Клиент 1С подключается к серверу 1С и там работает, если всё работает… или не работает, тогда нужно починить, как-то…»

Понятия сервер 1С и технологическая платформа — это синонимы (в этой статье). Кластер 1С — это логическое понятие, описывающее конфигурацию сервера 1С. Описание работы кластера и его составных частей выходит за рамки данной статьи.

Я старался избегать лишней информации, и не комментировал свои действия. В условиях дефицита времени на решение поставленной задачи, теория будет только отвлекать.

И последнее замечание, прежде чем мы приступим. Всё что здесь описано ниже, основано на реальных событиях, из моей недавней практики.

План действий

Начать необходимо с составления плана действий. Наша конечная цель иметь рабочую платформу определённой версии с возможностью полного отката до точки начала работ. То есть текущая рабочая версия должна оставаться таковой. Базы данных, которые мы затронем, должны быть восстановлены из резервных копий и доступны для пользователей.

Для этого нам надо предварительно:

  • Записать номер текущей рабочей версии тех. платформы на случай отката.

  • Получить дистрибутив нужной версии платформы и разместить его в общей папке локальной сети.

Рисунок 1 Локальная сеть офиса.

Рисунок 1 Локальная сеть офиса.

Схема работы клиентов с сервером 1С следующая. Большая часть подключений идёт с сервера терминалов. Есть несколько клиентов в локальной сети. Они подключаются к физическому компьютеру Server 1C ASUS. На нём запущено несколько версий технологической платформы. Там же установлена СУБД MS SQL. То есть сервер баз данных и сервер 1С расположены на одном физическом компьютере. Какая СУБД установлена в вашем случае, не имеет значения. От вас потребуется умение делать резервные копии баз данных с её помощью. Больше ничего.

Теперь переходим непосредственно к обновлению.

Сначала разбираемся с новой версией клиента и сервера. Нам предстоит следующее:

  • Установка новой версии (включая консоль управления) на сервер терминалов;  

  • Установка новой версии платформы на сервер 1С (физический компьютер ASUS на рисунке 1);

  • Закрытие всех сеансов пользователей;

  • Составление списка баз данных на текущей версии платформы;

  • Резервное копирование баз  данных на уровне СУБД;

  • Редактирование сервиса старой версии платформы (переход на новую).

Теперь проверяем работоспособность новой платформы:

  • Запуск сервиса с новой версией тех.платформы;

  • Подключение консоли управления к новой версии тех.платформы;

  • Запуск клиента и тестирование запуска информационной базы на новой версии сервера 1С;

  • Устранение ошибок;

  • Передача сервера специалистам ИТС.

Обновление технологической платформы.

Теперь сделаем это в рабочем окружении.

Владельцы информационной базы «Бух2024» (бухгалтеры) поручили нам обновить текущую версию платформы 1С до 8.3.26.1498, для того чтобы тех. поддержка 1С смогла обновить конфигурацию до нужного им состояния.

Обратите внимание на строку подключения информационной базы «Бух2024». Для тех, кто больше привык работать с файловой версией 1С, поясню, что она означает. Она расшифровывается так:  

«Сервер 1С находится на компьютере с именем ASUS. Подключение идёт по стандартному порту 1541. В списке баз кластера нам нужно искать имя Demo.» Поскольку порт стандартный, указывать его не нужно.

2629f2da6e4d32be4550882c78deb9ee.jpeg01e5c8c326b573a5fb8dfa15633bd10d.jpeg

А вот для базы «Железный кефир» порт указан явно. Эта информационная база связана с другой версией тех.платформы. И здесь упомянута для иллюстрации возможности иметь несколько параллельно работающих серверов 1С на одном компьютере.

Обновлять будем с возможностью полного отката изменений. Поэтому ничего не удаляем на сервере. Просто дополнительно установим новую версию на наш сервер 1С.

Скачиваем дистрибутив, который содержит сервер 1с, средства администрирования  и клиентскую программу.

Желательно дистрибутивы закинуть в сетевую папку, для того чтобы иметь к ним доступ с любого компьютера. Это важно сделать до начала работ. Потом сидеть и ждать, когда из Интернета скачается дистрибутив, времени не будет. Дистрибутив в сетевой папке не распаковываем. Копировать один большой файл намного быстрее, чем много мелких.

На рисунке 1 приведена  схема нашей локальной сети. Сервер терминалов, больше нужен удалённым пользователям. Но и для тех, кто работает в самой локальной сети, это запасной вариант работы с 1С, если есть проблемы на их собственном рабочем месте. И есть несколько локальных клиентов, которым работать на сервере терминалов неудобно, поэтому клиент запускается локально на их компьютерах.

Напоминаю тем, кто забыл (и сообщаю, тем, кто не знал), что клиентская часть 1С теперь автоматически использует правильную версию программы при подключении к технологической платформе. Поэтому мы сначала ставим новую версию у клиентов, а потом делаем обновления на сервере. При таком порядке действий мы избежим несоответствия клиентской серверной частей программы. Особенно подчеркну, что версии клиента и сервера должны полностью соответствовать друг другу, вплоть до последней цифры релиза.

Поэтому сначала идём на сервер терминалов и устанавливаем клиентскую часть. Распаковываем дистрибутив.

Запускаем setup.exe и устанавливаем клиента версии 8.3.26.1498

Жмём

Жмём «Далее»

Рисунок 2 Выбор компонентов для установки.

Рисунок 2 Выбор компонентов для установки.

На этом экране установщика ничего не трогаем и жмём «Далее». Компонент «Администрирование сервера 1С: Предприятие» на сервере терминалов мы ставить не будем. На двух следующих страницах установщика жмём Далее и Установить.

b5df6354fabbed86389d5784566d96f6.jpeg

На последнем экране обе галочки снимаем. В нашем случае эти действия не актуальны. Здесь мы закончили.

Далее мы подключаемся к серверу, где установлена серверная часть 1С: Предприятия. На рисунке 1 он обозначен как ASUS. Копируем наш дистрибутив туда и запускаем установщик. До экрана выбора компонентов ничего не меняем.

100e59ddf05b94e9833e9880e484b2d9.jpeg

В отличие от набора компонентов на рисунке 2, здесь мы отмечаем «Сервер 1С: Предприятие 8» и «Администрирование сервера 1С: Предприятие» и жмём «Далее».  Обращаю на это внимание. В спешке легко что-то перепутать.

34f54fb767b021241e1e3b52db18d68d.jpeg

Здесь галочку снимаем. У нас уже есть готовая служба, с которой мы и будем работать. 

944268578f539c7ea9b54d8802ccf579.jpeg

То есть должно быть вот так. Жмём везде «Далее» и закрываем установщик.

После этого идём в диспетчер задач сервера на вкладку «Процессы» Нам нужно найти процессы с именем ragent.exe 

Внимание! Их может быть несколько. Нам нужен тот, у которого версия 8.3.25.1445. Главное ничего не перепутать.

Рисунок 3 «Диспетчер задач и список процессов на компьютере, где установлен сервер 1С.»

Рисунок 3 «Диспетчер задач и список процессов на компьютере, где установлен сервер 1С.»

Их здесь два. На второй не обращаем внимания. Закрываем «Свойства ragent.exe» и переходим в оснастку службы. Там находим нашу службу и жмём «Свойства». Окно не закрываем. Нам понадобится имя службы На рисунке 4 оно выделено синим цветом.

Рисунок 4 «Список служб»

Рисунок 4 «Список служб»

Открываем редактор реестра с правами Администратора. Находим там нашу службу (выделено синим на рисунке ниже).

d1b7ddc5c4166b6531f83033ecccb6f7.jpeg

Здесь нужно будет изменить значение параметра ImagePath. 

79ff9bac04a8b9bef1dfd8a3716508e8.jpeg

Было

«C:\Program Files\1cv8\8.3.25.1445\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»

Стало

«C:\Program Files\1cv8\8.3.26.1498\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»

Службу не перезапускаем. Это сделаем позже.

В этом месте нужно обязательно сделать две вещи. 

Во-первых, пора отключать сеансы пользователей. Потому что, мы уже начинаем работать с самими базами данных и эти лишние подключения нам не нужны. Во-вторых, нужно сделать резервные копии  баз данных, которые будут затронуты нашими изменениями.

По поводу сеансов. Первый и самый простой вариант связан с остановкой службы агента сервера. Проще говоря, останавливаем службу, что приведет к обрыву всех клиентских сессий. Но нам также важно предотвратить повторные подключения клиентов к любой информационной базе в нашем кластере, когда мы сами будем тестировать результат нашей работы.

Для этого открываем консоль управления кластером. Из контекстного меню выбираем «Свойства», вводим имя пользователя информационной базы с правами администратора и его пароль.

9d31c7c428ff6038f17b2fd07df25135.jpeg

Теперь настраиваем блокировку для всех баз в кластере аналогичным образом.

Рисунок 5 Параметры информационной базы.

Рисунок 5 Параметры информационной базы.

Теперь для подключения к информационной базе нужно будет указывать код разрешения.

95bcd18c9cfcec6caa13937815fbb269.jpeg

Без кода разрешения клиент получит предупреждение

a67b499f576c0c0b817e764862f7e4ab.jpeg

А мы сможем спокойно всё проверить, без необходимости постоянно закрывать сеансы любителей срочно что-то сделать в базе во время технических работ. В конце проведения работ рекомендую просто снять галочку с «Блокировка начала сеансов включена». Остальные поля оставить заполненными до следующего раза. Потом останется только изменить время и дату и сэкономить свои силы.

Пора делать резервную копию нашей базы данных. А ещё лучше, сделать бэкап всех баз привязанных к этому кластеру. Без этого откатиться к предыдущей версии будет весьма затруднительно. Так что делайте бэкап и возвращайтесь редактор реестра. 

Для тех, кто использует СУБД MS SQL, я покажу, как это сделать быстро, без лишних движений.

Заходим на сервер, где у вас установлен MS SQL, открываем Management Studio и подключаемся к серверу SQL.

1. Жмём «Создать запрос»

2. В запрос вставляем текст
BACKUP DATABASE [DemoDB] TO  DISK = N’C:\Temp\2024_12_12_DemoDB.bak'

GO

Жмём F5 и получаем файл с бэкапом.

Рисунок 6 Делаем резервную копию БД.

Рисунок 6 Делаем резервную копию БД.

Во-первых, не забывайте вставлять имя своей базы. Во-вторых, никто не запрещает в одном запросе делать несколько операций резервного копирования. Пока они делаются, можно чаю попить.

Возвращаемся к редактору реестра.

Редактируйте строковый параметр, как написано выше, если ещё не сделали это. 

5463578a03ad990c39fac0c2e290e246.jpeg

Переходим в службы нашего сервера ASUS и перезапускаем отредактированную службу.

В итоге получаем нашу базу на новой версии технологической платформы. Мы готовы передать её коллегам из тех.поддержки 1С.

0c112f11c82aaca13eea8a9ae8073d05.jpeg

Последний момент. Если ничего не делать, то при попытке подключения к консоли управления сервером 1С мы получим ошибку. «Ошибка соединения с сервером 1С: Предприятия 8.3: Различаются версии клиента и сервера. Клиентское приложение: Консоль кластера.»

5e6e18664eb83c93b87587628b5af72e.png

Для исправления этой ошибки нужно зарегистрировать dll файл обновленной версии. В нашем случае это radmin.dll версии 8.3.26.1498. В папке «C:\Program Files\1cv8\8.3.26.1498\bin» запускаем RegMSC.cmd с правами администратора.

42c5a6602c5e6a7d363b51d67938719c.jpeg

В итоге получаем 

86632e6040d4e003b327392e50e565a7.jpeg

Теперь консоль кластера откроется без ошибок.

763524e9b1298fbb136479cb992ab1f7.jpeg

Не забудьте отключить блокировку информационных баз после проверки работоспособности новой версии технологической платформы.

Заключение.

Приведённый выше план не претендует на универсальность. На мой взгляд, это хорошая основа для разработки вашего собственного плана, который учтёт и размеры вашей базы, и число пользователей, и вероятность отката к предыдущей версии.

Другой важный момент, организационный. Этот план можно использовать для написания отчёта о проделанной работе. Указать там время, которое вы затратили на работу по каждому пункту. Он так же пригодится для согласования работ с коллегами. Как руководитель отдела ИТ с большим стажем, я сам с удовольствием почитал бы такой план при согласовании работ с подчинёнными, коллегам и контрагентами. Как видите, документирование работ имеет много побочных положительных эффектов.

Всем удачи! И до новых встреч.

Ростислав К. Москва 2025

© Habrahabr.ru