StandardServersManagement - Управление серверами. Доработки

29.06.26

Администрирование - Сервера

Небольшая модификация стандартной обработки 1С "Управление серверами". Добавлена возможность изменять порядок серверов и сохранять измененный порядок в настройках.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Управление серверами
.epf 599,22Kb
3 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

Возможность добавить сервера в нужном порядке существует только при начальном добавлении. Если вы сохраните/восстановите настройки, то порядок будет произвольным. И это обусловлено архитектурно. Добавленные сервера хранятся в настройках в виде структуры, порядок размещения элементов в структуре не гарантируется. Соответственно после добавления вы никак не можете изменить порядок серверов.

Предлагается небольшая доработка - возможность "двигать" сервера вверх/вниз по дереву, и сохранять/восстанавливать дерево серверов с сохранением порядка.

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

Либо можете скачать уже модифицированную обработку.

План изменений:

  1. В основной форме "MainForm" добавляем две новых команды: "СдвинутьВверх", "СдвинутьВниз"
  2. Добавляем кнопки команд на форму
  3. Прописываем обработчики "сдвига" строк дерева
  4. Добавляем в сохраняемые настройки массив с порядком серверов
  5. При чтении настроек получаем массив порядка и используем его при построении дерева

Начнем с конца, т.к. именно в этом вся соль доработки - построение дерева с учетом порядка.
Вносим изменения в процедуру FillClusterTreeConnectionList - Заполнить дерево кластеров.

При получении настроек в переменную ConnectionSettingsToAdministrationServers получаем наши настройки порядка в переменную МассивПорядок: 

	....
	....
	//Вставка
	МассивПорядок = Неопределено;
	//КонецВставки
	If (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.English) Then 
		ConnectionSettingsToAdministrationServers = CommonSettingsStorage.Load("Common/AdministrationServersConnectionsParameters", "");
		//Вставка
		МассивПорядок = CommonSettingsStorage.Load("Common/AdministrationServersConnectionsParameters_Order", "");
		//КонецВставки
	ElsIf (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.Russian) Then
		ConnectionSettingsToAdministrationServers = CommonSettingsStorage.Load("Общее/ПараметрыПодключенияСерверовАдминистрирования", "");
		//Вставка
		МассивПорядок = CommonSettingsStorage.Load("Общее/ПорядокПодключенияСерверовАдминистрирования", "");
		//КонецВставки
	EndIf; 

далее в этой же процедуре перед циклом обхода полученной коллекции ConnectionSettingsToAdministrationServers перебираем нашу коллекцию МассивПорядок, получаем имя сервера, если находим его в стандартных настройках, то добавляем в дерево.

//Вставка
		Если МассивПорядок <> Неопределено Тогда
			Для Каждого КлючИмяСервера ИЗ МассивПорядок Цикл
				ЗначениеConnectionLine = ConnectionSettingsToAdministrationServers.Получить(КлючИмяСервера);
				Если ЗначениеConnectionLine <> Неопределено Тогда
					NewConnection = ConnectionTable.Add();
					NewConnection.Name = КлючИмяСервера;
					If (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.English) Then
						NewConnection.ServerAdministrationAddress = ЗначениеConnectionLine.Address;
						NewConnection.ServerAdministrationPort = ЗначениеConnectionLine.Port;
					ElsIf (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.Russian) Then
					    NewConnection.ServerAdministrationAddress = ЗначениеConnectionLine.Адрес;
						NewConnection.ServerAdministrationPort = ЗначениеConnectionLine.Порт;
					EndIf;	
					NewConnection.Login = "";
					NewConnection.Password = "";
				КонецЕсли;
			КонецЦикла;
		Иначе
			МассивПорядок = Новый Массив;
		КонецЕсли;
//КонецВставки

Другими словами мы повторяем стандартную процедуру добавления серверов, только делаем это в нужном нам порядке.

Далее идет стандартный цикл обхода коллекции. Мы пропускаем добавление строк, которые добавили на предыдущем шаге. Добавлены будут только те сервера, которых нет в нашем массиве порядка.

For each ConnectionLine In ConnectionSettingsToAdministrationServers Do
	//Вставка
	КлючИмяСервера = МассивПорядок.Найти(ConnectionLine.Key);
	Если КлючИмяСервера <> Неопределено Тогда
		Продолжить;
	КонецЕсли;
	//КонецВставки

Переходим к сохранению настроек порядка.
Делаем это в процедуре "SavingAdministrationConsoleSettings". В самом начале процедуры вставляем свой код - подготавливаем коллекцию МассивПорядок и сохраняем ее в настройках:

&AtServer
Procedure SavingAdministrationConsoleSettings(ConnectionSettings)
	....	
	....	
	//Вставка
	//Создадим массив и поместим туда значения в том порядке, в каком у нас они расположены в дереве
	ВерхняяКоллекцияДерева = ClusterTree.ПолучитьЭлементы();
	МассивПорядок = New Array();
	Если ВерхняяКоллекцияДерева.Количество() > 0 Тогда
		СтрокаЦентральныйСервер = ВерхняяКоллекцияДерева[0];
		КолллекцияСерверов = СтрокаЦентральныйСервер.ПолучитьЭлементы();
		Для Каждого СтрокаСервера ИЗ КолллекцияСерверов Цикл
			ИмяСервераКлюч = СтрокаСервера.Name;
			ЗначениеConnection = ConnectionSettings.Получить(ИмяСервераКлюч);
			Если ЗначениеConnection <>	Неопределено Тогда
				МассивПорядок.Add(ИмяСервераКлюч);
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	If (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.English) Then 
		CommonSettingsStorage.Save("Common/AdministrationServersConnectionsParameters_Order", "", МассивПорядок);
	ElsIf (Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.Russian) Then
		CommonSettingsStorage.Save("Общее/ПорядокПодключенияСерверовАдминистрирования", "", МассивПорядок);
	EndIf;
	//КонецВставки
	

Основное дело сделано. Остались мелочи - добавляем процедуры для обработки нажатия на кнопки сдвига вверх/вниз:

&НаКлиенте
Процедура СдвинутьЭлементДерева(Направление)
	
	ВерхняяКоллекцияЭлементов = ClusterTree.ПолучитьЭлементы();
	Если ВерхняяКоллекцияЭлементов.Количество() > 0 Тогда
		СтрокаЦентральныйСервер = ВерхняяКоллекцияЭлементов[0];
		
		ТекСтрока = Элементы.ClusterTree.ТекущаяСтрока;
		ТекДанные = ClusterTree.НайтиПоИдентификатору(ТекСтрока);
		
		Родитель = ТекДанные.ПолучитьРодителя();
		Если Родитель = СтрокаЦентральныйСервер Тогда
			ЭлементыРодителя = Родитель.ПолучитьЭлементы();
			ИндексТекЭлемента = ЭлементыРодителя.Индекс(ТекДанные);
			ЭлементыРодителя.Сдвинуть(ИндексТекЭлемента,Направление);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура СдвинутьВверх(Команда)
	
	СдвинутьЭлементДерева(-1);
	
КонецПроцедуры

&НаКлиенте
Процедура СдвинутьВниз(Команда)
	
	СдвинутьЭлементДерева(1);
	
КонецПроцедуры

Если вы все делаете самостоятельно, то нужно решить, как встраивать обработку - либо в состав конфигурации, либо через внешние отчеты и обработки.

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

Если вы скачаете готовый файл, то обработку нужно добавить в базу через механизм дополнительных обработок. Стандартное подключение через БСП: Админстрирование / Печатные формы, отчеты и обработки / Дополнительные отчеты и обработки / Добавить...  Выбираете скачанный файл, указываете размещение (например, Администрирование) и указываете пользователей, кому будет доступна обработка - в общем все стандартно.

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.466

Вступайте в нашу телеграмм-группу Инфостарт

обработка стандартная обработка StandardServersManagement управление серверами кластер

См. также

Информационная безопасность Удаленное управление Сервера Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Один запуск на сервере, где работают 1С и СУБД, и видно, какие двери открыты: RDP и подбор паролей, пароли и учётки Windows, порты, папки с бэкапами и паролями, SQL Server, обновления и антивирус. 34 проверки с вердиктом, отчёт в Markdown для нейросети и HTML, обработка 1С для чтения отчёта. К мерам приложены восемь скриптов исправления с пробным режимом и откатом.

10 стартмани

вчера в 12:30    206    2    nedomolkov.ivan    0    

6

Мониторинг Сервера Системный администратор 1С 8.3 Бесплатно (free)

Шесть блоков технического отчёта по кластеру 1С: площадка, процессы, нагрузка, диск, копии, журналы за названный период — и открытые вопросы. Цифры из двух реальных прогонов на Windows Server 2019 (srvinfo 119 ГБ, 444 бэкапа и ни одного по нужной базе, висящий сеанс с лицензией). Что собирать, чего не делать, и где агент ошибся.

02.11.2026    261    netbka    0    

1

Нейросети Сервера Бесплатно (free)

Работаю с MacBook, а виртуалки, сервисы и локальные модели запускаю на домашнем сервере с Proxmox. Рассказываю, как устроено моё облако и как нейросети помогли его собрать.

25.10.2026    817    RockRock    20    

8

HighLoad оптимизация Технологический журнал Сервера Запросы Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Составной отчет формировался 15 минут. Вместо перебора разделов одна команда rac показала, что сеанс занят запросом к СУБД, а временный техжурнал с порогом 20 секунд за один прогон назвал виновника: один SQL на 240 секунд и точную строку модуля. В статье четыре разные картины «висит» и как их различить: идет запрос в СУБД, клиент ждет невидимое модальное окно, зомби-вызов после закрытого клиента, зависшее фоновое задание. Пример logcfg.xml, разбор события DBMSSQL с полем Context, замер пакета запросов по временным таблицам, регламентное задание, которое «выполнено», а данные стоят, и шпаргалка по диагностике.

16.10.2026    1041    Konstmax13    6    

2

Архивирование (backup) Инструменты администратора БД Администрирование СУБД Сервера Системный администратор 1C:Бухгалтерия 1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП 1C:ERP 1С:ЗУП 1С:УНФ 1С:Розница Отраслевые Россия Бесплатно (free)

Кроссплатформенная утилита на Go-lang для резервного копирования информационных баз 1С:Предприятие. Основная задача программы — выгрузка информационных баз 1С в файлы *.dt с автоматическим удалением устаревших копий.

15.10.2026    401    32    bigboy    0    

0

Сервера Системный администратор 1С 8.5 1С:Управление торговлей 11 Россия Бесплатно (free)

Когда запускается новейший 16-ядерный флагман AMD Ryzen 9 9950X (микроархитектура Zen 5 с паспортным бустом до 5.7 ГГц), скоростные накопители NVMe PCIe 5.0 x4 и быстрый комплект DDR5, подсознательно ждешь феноменальных результатов «из коробки». Мы развернули монолитный вычислительный комплекс «All-in-One» (сервер приложений «1С:Предприятие 8.5.1» + СУБД Microsoft SQL Server 2022 Enterprise на Windows Server 2025) внутри гипервизора Proxmox VE 9.2. Запускаем однопоточный синтетический тест Гилёва (TPC-1C) и видим на экране холодный душ: 35.46 балла. Ниже — детальная хроника инженерного расследования, в ходе которого мы шаг за шагом сняли скрытые инфраструктурные барьеры на каждом слое системы (BIOS, гипервизор KVM, ядро Windows, СУБД, платформа 1С) и разогнали сервер с 35.46 до 79.37 баллов (+123.8% чистой скорости проведения документов), сделав виртуальную машину абсолютным лидером среди KVM-систем в глобальном датасете 1С 8.5.1.

15.10.2026    2241    YA_93013054    18    

20

Технологический журнал Сервера EDT Обновление 1С Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Конфигуратор и агент EDT тихо вылетают на 0 % «Обработки структуры базы данных», EDT пишет «Потеряно соединение с агентом конфигуратора», а модель проекта при этом чистая. Разбор двух аварий на большой серверной базе БП КОРП: какие факты снимать (журнал Windows, техжурнал нужной версии, хвост лога процесса), почему инкрементальная выгрузка EDT ломается после сбоев, как довести обновление пакетно через /UpdateDBCfg -Server, как опознать свои rphost среди нескольких кластеров и снять агент EDT, который сам поднимается и держит базу. Протокол одного дня по минутам и порядок диагностики из восьми шагов.

15.10.2026    421    Konstmax13    0    

0
Для отправки сообщения требуется регистрация/авторизация