Введение
В моей практике, задачи по обновлению технологической платформы ставились без предупреждения и требовали немедленных действий. То есть времени на раздумья и подготовку у вас не будет. Права на ошибку у вас тоже не будет. А это значит, что вы должны иметь в голове чёткий план действий. Чаще всего такие задачи исходили от бухгалтеров, которые не могли сдать какие-то отчёты из-за проблем с их текущей рабочей конфигурацией, а коллеги из ИТС, для решения этих проблем, в свою очередь, просили меня изменить версию технологической платформы.
Имея большой опыт в обслуживании связки сервер 1С + сервер БД MS SQL, я по-прежнему, нахожу полезным держать такой план у себя под рукой в бумажном виде. Хотя я знаю его наизусть. Большинство описанных ниже действий могут показаться очевидными и не требующими комментариев. Однако, я постараюсь объяснить логику каждого моего действия для понимания моего выбора при принятии тех или иных решений.
Все, кому по долгу службы приходится решать подобные задачи, являются моей целевой аудиторией. Вам потребуются навыки работы со стандартными инструментами ОС Windows. Разумеется, что такие термины, как служба, реестр, консоль должны быть вам понятны. Понимание архитектуры серверного варианта работы 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.» Поскольку порт стандартный, указывать его не нужно.
А вот для базы «Железный кефир» порт указан явно. Эта информационная база связана с другой версией тех.платформы. И здесь упомянута для иллюстрации возможности иметь несколько параллельно работающих серверов 1С на одном компьютере.
Обновлять будем с возможностью полного отката изменений. Поэтому ничего не удаляем на сервере. Просто дополнительно установим новую версию на наш сервер 1С.
Скачиваем дистрибутив, который содержит сервер 1с, средства администрирования и клиентскую программу.
Желательно дистрибутивы закинуть в сетевую папку, для того чтобы иметь к ним доступ с любого компьютера. Это важно сделать до начала работ. Потом сидеть и ждать, когда из Интернета скачается дистрибутив, времени не будет. Дистрибутив в сетевой папке не распаковываем. Копировать один большой файл намного быстрее, чем много мелких.
На рисунке 1 приведена схема нашей локальной сети. Сервер терминалов, больше нужен удалённым пользователям. Но и для тех, кто работает в самой локальной сети, это запасной вариант работы с 1С, если есть проблемы на их собственном рабочем месте. И есть несколько локальных клиентов, которым работать на сервере терминалов неудобно, поэтому клиент запускается локально на их компьютерах.
Напоминаю тем, кто забыл (и сообщаю, тем, кто не знал), что клиентская часть 1С теперь автоматически использует правильную версию программы при подключении к технологической платформе. Поэтому мы сначала ставим новую версию у клиентов, а потом делаем обновления на сервере. При таком порядке действий мы избежим несоответствия клиентской серверной частей программы. Особенно подчеркну, что версии клиента и сервера должны полностью соответствовать друг другу, вплоть до последней цифры релиза.
Поэтому сначала идём на сервер терминалов и устанавливаем клиентскую часть. Распаковываем дистрибутив.
Запускаем setup.exe и устанавливаем клиента версии 8.3.26.1498
На этом экране установщика ничего не трогаем и жмём «Далее». Компонент «Администрирование сервера 1С:Предприятие» на сервере терминалов мы ставить не будем. На двух следующих страницах установщика жмём Далее и Установить.
На последнем экране обе галочки снимаем. В нашем случае эти действия не актуальны. Здесь мы закончили.
Далее мы подключаемся к серверу, где установлена серверная часть 1С:Предприятия. На рисунке 1 он обозначен как ASUS. Копируем наш дистрибутив туда и запускаем установщик. До экрана выбора компонентов ничего не меняем.
В отличие от набора компонентов на рисунке 2, здесь мы отмечаем «Сервер 1С:Предприятие 8» и «Администрирование сервера 1С:Предприятие» и жмём «Далее». Обращаю на это внимание. В спешке легко что-то перепутать.
Здесь галочку снимаем. У нас уже есть готовая служба, с которой мы и будем работать.
То есть должно быть вот так. Жмём везде «Далее» и закрываем установщик.
После этого идём в диспетчер задач сервера на вкладку «Процессы» Нам нужно найти процессы с именем ragent.exe
Внимание! Их может быть несколько. Нам нужен тот, у которого версия 8.3.25.1445. Главное ничего не перепутать.
Их здесь два. На второй не обращаем внимания. Закрываем «Свойства ragent.exe» и переходим в оснастку службы. Там находим нашу службу и жмём «Свойства». Окно не закрываем. Нам понадобится имя службы На рисунке 4 оно выделено синим цветом.
Открываем редактор реестра с правами Администратора. Находим там нашу службу (выделено синим на рисунке ниже).
Здесь нужно будет изменить значение параметра ImagePath.
Было
"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"
Службу не перезапускаем. Это сделаем позже.
В этом месте нужно обязательно сделать две вещи.
Во-первых, пора отключать сеансы пользователей. Потому что, мы уже начинаем работать с самими базами данных и эти лишние подключения нам не нужны. Во-вторых, нужно сделать резервные копии баз данных, которые будут затронуты нашими изменениями.
По поводу сеансов. Первый и самый простой вариант связан с остановкой службы агента сервера. Проще говоря, останавливаем службу, что приведет к обрыву всех клиентских сессий. Но нам также важно предотвратить повторные подключения клиентов к любой информационной базе в нашем кластере, когда мы сами будем тестировать результат нашей работы.
Для этого открываем консоль управления кластером. Из контекстного меню выбираем «Свойства», вводим имя пользователя информационной базы с правами администратора и его пароль.
Теперь настраиваем блокировку для всех баз в кластере аналогичным образом.
Теперь для подключения к информационной базе нужно будет указывать код разрешения.
Без кода разрешения клиент получит предупреждение
А мы сможем спокойно всё проверить, без необходимости постоянно закрывать сеансы любителей срочно что-то сделать в базе во время технических работ. В конце проведения работ рекомендую просто снять галочку с «Блокировка начала сеансов включена». Остальные поля оставить заполненными до следующего раза. Потом останется только изменить время и дату и сэкономить свои силы.
Пора делать резервную копию нашей базы данных. А ещё лучше, сделать бэкап всех баз привязанных к этому кластеру. Без этого откатиться к предыдущей версии будет весьма затруднительно. Так что делайте бэкап и возвращайтесь редактор реестра.
Для тех, кто использует СУБД MS SQL, я покажу, как это сделать быстро, без лишних движений.
Заходим на сервер, где у вас установлен MS SQL, открываем Management Studio и подключаемся к серверу SQL.
1. Жмём «Создать запрос»
2. В запрос вставляем текст
BACKUP DATABASE [DemoDB] TO DISK = N'C:\Temp\2024_12_12_DemoDB.bak'
GO
Жмём F5 и получаем файл с бэкапом.
Во-первых, не забывайте вставлять имя своей базы. Во-вторых, никто не запрещает в одном запросе делать несколько операций резервного копирования. Пока они делаются, можно чаю попить.
Возвращаемся к редактору реестра.
Редактируйте строковый параметр, как написано выше, если ещё не сделали это.
Переходим в службы нашего сервера ASUS и перезапускаем отредактированную службу.
В итоге получаем нашу базу на новой версии технологической платформы. Мы готовы передать её коллегам из тех.поддержки 1С.
Последний момент. Если ничего не делать, то при попытке подключения к консоли управления сервером 1С мы получим ошибку. «Ошибка соединения с сервером 1С:Предприятия 8.3: Различаются версии клиента и сервера. Клиентское приложение: Консоль кластера.»
Для исправления этой ошибки нужно зарегистрировать dll файл обновленной версии. В нашем случае это radmin.dll версии 8.3.26.1498. В папке «C:\Program Files\1cv8\8.3.26.1498\bin» запускаем RegMSC.cmd с правами администратора.
В итоге получаем
Теперь консоль кластера откроется без ошибок.
Не забудьте отключить блокировку информационных баз после проверки работоспособности новой версии технологической платформы.
Заключение.
Приведённый выше план не претендует на универсальность. На мой взгляд, это хорошая основа для разработки вашего собственного плана, который учтёт и размеры вашей базы, и число пользователей, и вероятность отката к предыдущей версии.
Другой важный момент, организационный. Этот план можно использовать для написания отчёта о проделанной работе. Указать там время, которое вы затратили на работу по каждому пункту. Он так же пригодится для согласования работ с коллегами. Как руководитель отдела ИТ с большим стажем, я сам с удовольствием почитал бы такой план при согласовании работ с подчинёнными, коллегам и контрагентами. Как видите, документирование работ имеет много побочных положительных эффектов.
Всем удачи! И до новых встреч.
Ростислав К. Москва 2025
Комментарии (29)
rukhi7
16.01.2025 05:59Для тех, кто использует СУБД MS SQL, я покажу, как это сделать быстро, без лишних движений.
те кто используют СУБД MS SQL знают как что угодно сделать быстро, без лишних движений, там куча документации по делу. При чем здесь 1С?
Lesorub314 Автор
16.01.2025 05:59Спасибо за ваш комментарий. К сожалению, наличие во многих организациях сервера СУБД, не означает, что им умеют пользоваться. Конкретно, в этой организации был опытный системный администратор, но с SQL не дружил конкретно. :)))))
khulster
16.01.2025 05:59А где перерегистрация .COM объектов без которой в 99% случаев после обновления платформы умрут обмены БУХ <-> ЗУП?
EpiSH
16.01.2025 05:59А с чего вы взяли, что почти все юзают ком? И с чего вы взяли, что в рассмотеренном примере есть ЗУП, ведь на скрине со списком баз его нет? В 2025, для обменов, в том числе БУХ <-> ЗУП актуально использовать http через публикацию на вебсервер. А вот то что пример без веба, ИМХО делает всё описанное в статье частным и устаревшим. Обновить платформу это далее-далее-готово, в этом нет ничего сложного. Сложности в современной клиент-серверной концепции работы с 1С возникают в том как новые тонкие клиенты развернуть на десятки пользовательских ПК.
khulster
16.01.2025 05:59А с чего вы взяли, что почти все юзают ком?
С того, что это до сих пор типовой механизм обмена искаропки. Который стабильно ломается именно при обновлении платформы, поэтому не учитывать и не проверять его наличие - несколько странно.
В 2025, для обменов, в том числе БУХ <-> ЗУП актуально использовать http через публикацию на вебсервер.
Актуально использовать то, что вас устраивает по функционалу и по сложности реализации. Не у всех есть отдел внутренней разработки под 1С, чтобы пилить кастомные обмены. И не все используют веб-публикации сервиса (знаю тех, кто наоборот, принципиально их не использует).
Сложности в современной клиент-серверной концепции работы с 1С возникают в том как новые тонкие клиенты развернуть на десятки пользовательских ПК.
У автора изначально озвучен сценарий с терминальным сервером. В этом случае нет никаких сложностей с клиентской частью, так как она живет на нашем терминале(терминалах).
В остальных случаях же просто используется любой другой механизм для деплоя ПО внутри вашей организации. Ну или высылается отряд быстроногих эникеев. :)
EpiSH
16.01.2025 05:59>пилить кастомные обмены
Обмен по вебу это и есть типовой механизм из коробки, там не надо ничего разрабатывать. Любая современная конфигурация уже умеет коннектится к другим современным опубликованным на веб. Ком давно уже не стандарт, его поломки в 1С на 64 разрядных ОС довольно-таки утомили. При отсутствии веба, я выберу гонять обмены через файло, нежели постоянно ежемесячно искать решение работы лютейшего легаси в современных средах, в 1С просто забили болт на поддержку этого механизма.
>умрут обмены БУХ <-> ЗУП
>У автора изначально озвучен сценарий с терминальным сервером
А при чем тут, то что у него озвучено? Вы же проигнорировали, вводные данные автора в которых про ЗУП нет ни слова, и указали на некое действие которое по вашему стоило бы указать в статье. Я в свою очередь тоже опираясь не на вводные данные, а на текущий год в календаре выразил своё ИМХО.
khulster
16.01.2025 05:59При отсутствии веба, я выберу гонять обмены через файло,
Ну через файло это совсем флоппинетом попахивает уже. :)
У COM обмена на самом деле есть один, большой плюс. Воспользоваться и настроить его может любой бухгалтер/пользователь 1С c нужными правами. Настроить же веб-публикацию и обмен через нее без доступа в конфигуратор и админки на сервере уже не получится.
И да, при обновлении платформы, с веб-публикациями тоже нужны будут определенные ручные манипуляции без которых старые базы не взлетят. Наверное упомянуть их тоже было бы не лишним. Так как обмены и веб-сервисы это как раз то самое, что используется далеко не каждый день в некоторых сценариях и о проблеме в их работе можно узнать сильно, так сказать, после.
Lesorub314 Автор
16.01.2025 05:59Благодарю за ваш комментарий. Полностью с вами согласен. Однако, мне хотелось рассказать именно о таком варианте, редактированием готовой службы. Он позвалаят оставить строки подключения к базам неизменными. и немного быстрее по времени. Разумеется создание новой службы - это замечательный вариант, которым я постоянно пользуюсь.Но там нужно будет создать ещё одну рабочую папку для новой версии и дать на неё права пользователю, от которого служба будет работать. Для моей целевой аудитории - это сложнее. Они и такой подход с трудом осиливают.
mlnw
16.01.2025 05:59Обновляем платформу 1С: Предприятие на ходу!
Сначала по заголовку подумал что появились способы обновлять платформу на горячую незаметно для пользователей. Думаю, о, интересно. Но нет, обычное скучное обновление в стиле "setup.exe -> Next -> Next -> Next -> Finish".
yukon39
16.01.2025 05:59А как же механизм обновления клиентского приложения? Это действительно мощный способ обновить платформу на тысячах рабочих мест весело и на ходу.
Нет в действиях обновления веб-публикаций и/или СОМ-Коннектора.
Не увидел в списке действий бекап каталога данных сервера (ну или хотя бы конфигурации кластера). В нем, по хорошему, при переходе на версию надо некоторые каталоги удалить.
kossinus75
16.01.2025 05:59Доводилось ранее заниматься обновлением серверов 1с, в этой инструкции вот что бросилось в глаза. Зачем редактировать существующую службу 1С через реестр? Вы же устанавливаете новую платформу на сервер, она устанавливается по умолчанию в отдельный каталог. Намного проще будет после установки платформы (в инсталляторе галку убираем, службу не создаем!) создать дополнительную службу вручную. Можно это сделать, например, через sc.exe (может и через powershell сейчас можно нормально создать, нужно проверять). Итого, у вас получится 2 службы, указывающие на разные каталоги, разные exe файлы сервера. В момент обновления останавливаете одну, запускаете другую и все. В случае проблем, если надо откатиться, также останавливаете новую службу, запускете старую. Ну и соответственно смена ярлыков на RDS, предоставление доступов и т.п.
andukin
16.01.2025 05:59если не затруднит ответьте пожалуйста:
при каких сценариях обновления сервера 1с может сломаться информационная база? (и значит пригодится резервная копия информационной базы)
порядок отката на старую версию платформы (при необходимости)? кратко крупными пунктами
как при таком откате (п.2) используется резервная копия информационной базы?
Lesorub314 Автор
16.01.2025 05:59У моих коллег из ИТС (которые обновляют конфигурацию) может что-то пойти не так. И в итоге у них получается не рабочая конфигурация. Они не имеют возможности долго экспериментировать. Поэтому просят меня просто вернуть "всё как было". А сами берут паузу на решение своих проблем.
Я просто возвращаю базы из бэкапа и редактирую сервис агента 1С в реестре. В итоге получаю старую платформу и базы на момент до обновления. Это занимает немного времени. Никакие строки подключения баз менять не надо.
andukin
16.01.2025 05:59спасибо за пояснения.
я понял, что у вас при обновлении сервера (не конфигурации) базы не ломались
mlnw
16.01.2025 05:59В итоге получаю старую платформу и базы на момент до обновления.
Базы от запуска на новой платформе подвергаются необратимым изменениям? По моему опыту база даже в режиме совместимости "Не использовать" после обновления платформы сама меняет режим совместимости на "Совместимо с 8.3.ххх" (предыдущая платформа), т.е. даже служебные таблицы без ручного изменения конфигурации (значения режима совместимости) не изменяются.
capitannemo
16.01.2025 05:59В 2025 году выкатывать статью про обновление сервера 1С на windows это как раз то что нужно.
А то многие уже забыли, что это такое сервера 1С на windows
Скрипты это вообще для слабых духом, настоящие админы конечно же лупят по кнопке Далее
Вопросики однако накопились
Это COM коннектор, он наверняка есть при сервере на винде
Кто вообще может вспомнить времена когда надо было через 5 минут откатывать платформу, потому что она не заработала?
Это если и обнаруживается, то через дни или недели
khulster
16.01.2025 05:59>Это если и обнаруживается, то через дни или недели
Обычно в отчетный период, когда очередной условный НДФЛ вдруг не формируется.
sultanenok
16.01.2025 05:59Почему пользователей выгоняем после установки?
Почему архивы создаем после установки
Как мы проверим прод на старом образе службы не перезапуская его
В конечном итоге всех выгоняем и блокируем вход. Почему нельзя это сделать до установки. 5 минут ничего не решат, не так ли.
Каким образом новая платформа сломает базу тем более на скуле? Согласен, когда переход происходит между версиями год и более. Но это не наш случай. Был ли опыт слома базы в момент перехода на новую платформу.
По тексту ощущение что путаете сервер терминалов и сервер служб 1с. Или опечатки.
Не хватает в плане. проверка возможных сервисов- веб серверы, ком службы.
andukin
16.01.2025 05:59В конечном итоге всех выгоняем и блокируем вход. Почему нельзя это сделать до установки. 5 минут ничего не решат, не так ли.
наверное потому что есть ситуации, когда обновиться как можно быстрее, решают и 5 минут.
кстати в Клиент-серверный вариант. Руководство администратора в Главе 6 ровно такой порядок, цитирую:1. Отключить всех пользователей от информационных баз обновляемого кластера серверов.
2. Остановить кластер серверов
boopiz
подозреваю, что именно по причине подобного подхода недавно и лёг ru сегмент. на дворе шёл 2025 год. виртуализация, девопс и прочие мистические практики вовсю овоадевают вас. казалось, в далекое, дремучее прошлое должны уйти накаты на прод без тестового и препрод контура... однако, древние боги не почили в небытие.
казалось бы, чего проще? разверни клон прода и тестируй на нём всё, что хочешь..но.. автор не ищет лёгких и безопасных путей! его заводит азарт, адреналин щекочет нервы..а не поставить ли раком "боевой" сервер и всю работу предприятия..ведь ничего плохого при обновлении компонент системы не может случится? ведь нет же? ведь при накате и развертывании бд не может, например, навернутьсч системная бд master..мы все доподлинно знаем о надежности работы продуктов MS. или появится в новый платформе новая версия какой нибудь системной библиотеки...
штош. хочется сказать - это порочная практика. всё новое надо выносить отдельно
khulster
Справедливости ради, наличие тестовой среды часто упирается в лицухи. Там до сих пор "аппаратная" привзяка ключей внутри. Поэтому сделав клон прода вы получаете тыкву. Нужно или закупать всех лицензий х2 (если тестовое окружение у нас копирует прод) или ограничиваться вариантом сервера-мини, но тогда тесты будут не вполне релевантны.
Sysliks
для этого есть сервер лицензирования 1С
khulster
И как он поможет, если на нем 1C Сервер лицензий, одна штука. А проду и тесту совместно - нужно две? Т.е. это как раз вариант всех лицензий х2.
dtmse
Вроде бы есть возможность запросить на сайте 1С тестовый комплект 1С-предприятия с серверной лицензией на 14 дней.
khulster
Увы, когда я в последний раз обращался с этим вопросом в их службу лицензирования, меня отправили к локальному интегратору, который мог выдать на время попользоваться одним из своих ключей, если у него вдруг такой найдется свободный.
mikleh
В статье нет ни слова про тестирование, тем более на проде.
Если изложить вкратце, то там написано: сначала поставьте новую версию платформы, благо 1С позволяет параллельно ставить разные версии, потом выгоняйте юзеров и переводите прод. Вместо того, чтобы сначала всех выгнать, а потом уже выполнять установку.
EpiSH
Обновление платформы (если платформа вышла в свет хотя бы больше недели назад, то есть не успела быть отозвана и не из тестовой ветки) практически никогда не несет за собой никаких рисков. Тестовый контур при работе с типовыми конфигурациями не нужен, это огромные расходы ради непонятного чего: платформу уже протестировали до вас со всеми типовыми конфигурациями. Вообще возможны 3 варианта:
Используется типовая конфигурация без доработок - можно смело обновлять и платформу и конфигурацию, если релизы уже полежали в общем доступе недельку и не успели быть отозванными. Никакой тестовый контур не нужен.
Используется типовая конфигурация с незначительными доработками (незначительные, это, например, если не менялись ключевые свойства, такие как режим совместимости) - можно смело обновлять платформу, а конфигурацию обновлять сначала строго на копии, которую можно разместить на том же сервере для минимизации затрат.
Самописная конфигурация или сильно доработанная типовая - только полноценный тестовый контур на отдельном сервере/серверах.
Lesorub314 Автор
Благодарю за ваш комментарии. К сожалению мои клиенты не могут это себе позволить.