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

29.06.26

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

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

Файлы

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

Наименование Скачано Купить файл
Управление серверами
.epf 599,22Kb
1 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 управление серверами кластер

См. также

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

В данной статье мы поговорим о том, какое оборудование нужно под разные сценарии нагрузки, сколько стоит сервер 1С в 2026 году и как перенести базу 1С на новый сервер без потерь и длительных простоев.

24.06.2026    2087    Koder_    7    

0

Сервера Мониторинг Системный администратор 1С 8.3 Россия Абонемент ($m)

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

1 стартмани

12.06.2026    392    2    dimg    1    

4

Сервера Системный администратор Россия Абонемент ($m)

В статье я делюсь практическим опытом миграции сервера 1С:ERP с CentOS 7 на Ubuntu 24.04: от базовой подготовки системы, настройки PostgreSQL под 1С, WireGuard, Apache, Docker, Jenkins и GitLab до переноса лицензий, хранилищ, GitSync и самих баз данных. Это не универсальная инструкция, а мой лог настройки с командами, замечаниями по безопасности, возникшими проблемами и приложенными Python-скриптами для поочередного бэкапа и восстановления PostgreSQL-баз между серверами.

1 стартмани

01.06.2026    1277    user845444    0    

7

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

Пошаговый опыт миграции файловой базы 1С УНФ 1.6 с арендованного сервера на собственную железку в частный дом. Разбираем: сборку ПК за 50 тыс. руб., нюансы публикации базы через IIS на Windows 11, решение проблем с правами доступа и настройку проброса портов на роутере TP-Link, а так же настройка ежедневного бекапа c архивацией в облако встроенными средствами Windows. Итог — быстрая работа через веб-клиент без арендных платежей и кошмаров о потере данных

12.05.2026    1498    war41k    34    

11

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

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

24.04.2026    1207    info_AlexS    3    

0

Сервера Программист Бесплатно (free)

Разбираем автономный сервер с непривычной стороны – через призму безопасности и реальных рисков его использования. Показываем, как можно выполнять выгрузку базы и изменять конфигурацию без следов в журнале регистрации, а также объясняем механизм раскрытия паролей подключения к СУБД. Отдельно рассматриваем, почему эти сценарии становятся возможны и какие ошибки в настройке инфраструктуры к этому приводят. В завершение рассказываем, какие меры защиты помогают предотвратить подобные ситуации и снизить риски.

30.03.2026    3866    ardn    10    

18

Сервера Системный администратор Программист 1С 8.3 Абонемент ($m)

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

1 стартмани

16.02.2026    7933    107    sapervodichka    31    

93

Инструментарий разработчика Сервера OneScript Системный администратор Программист 1С 8.3 Россия Бесплатно (free)

Библиотека для создания многопоточного TCP-сервера, а так же TCP-клиента с поддержкой SSL/TLS шифрования для экосистемы OneScript. Удобный инструмент для построения распределенных систем, высоконагруженных сервисов, систем реального времени. С низким порогом вхождения и подробной документацией с примерами.

12.01.2026    1885    ahyahy    2    

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