Включение и выключение компьютеров из 1С

11.06.24

Администрирование - Удаленное управление

Включение и выключение компьютеров по расписанию из 1С, заданным регламентными заданиями. Компьютеры под управлением Windows включаются по команде broadc и выключаются командой shutdown. - broadc бесплатная утилита, доступная в интернете и приложенная к этой статье - shutdown - команда windows Статья показывает, как в 1С использовать данные команды.

Скачать файл

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

Наименование Бесплатно
Утилита для удаленного включения электропитания broadc.exe (бесплатная на просторах интернета)
.exe 32,00Kb
9
9 Скачать бесплатно

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

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

 

1. Предварительная подготовка на моноблоках:

а) в BIOS включение функции "wake On Lan" в enabled

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

в) в локальной политике безопасности добавить пользователя в разрешенных на выключение компьютера. Ввести: secpol.msc -> локальные политики -> Назначение прав пользователя 
     -> принудительное завершение работы из удаленной системы. Добавить созданного пользователя из предыдущего пункта 

 

2. Список всех моноблоков хранятся в регистре сведений "СписокКиосков"

Измерения:

- ИмяКомпьютера - строка

ресурсы:

- IPтелевизор - строка

- МАСадресТелевизора  - строка

 

Для удобства получения MAC адреса воспользуемся командой  "arp -a" получив список ip и mac адресов сети. Можно было бы пойти дальше и воспользоваться командой ping для определения ip моноблока по имени, но это уже на любителя.

Пользователь заполнив ip адрес киоска по кнопке "Получить MAC адрес по IP" получает MAC адрес, который понадобиться для включения.

На форме записи добавим кнопку "Получить MAC адрес по IP" с кодом:

&НаКлиенте
Процедура ЗаполнитьМАС(Команда)
	ЗаполнитьМАСНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьМАСНаСервере()
	// проверим что ip заполнен
	Если не ЗначениеЗаполнено(запись.IPтелевизор) тогда
		сообщить("Заполните ip телевизора");
		возврат;
	конецесли;
	
	// запустим команду windows arp -a для получения списка компьютеров с IP и MAC в сети
	имяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
	
	имяКоманды = "cmd /c arp -a -> "+имяВременногоФайла;
	ЗапуститьПриложение(имяКоманды, ,истина);
	
	                     
	// найдем в реестре мас адрес и запишем
	Текст = Новый ЧтениеТекста;
	Текст.Открыть(имяВременногоФайла);              
	Строка = Текст.ПрочитатьСтроку();
	Пока Строка <> Неопределено Цикл //строки читаются до символа перевода строки                  
		Позиция = Найти(Строка, запись.IPтелевизор);
		Если Позиция > 0 Тогда
			Значение = СокрЛП(Сред(Строка, 22, 21));
			запись.МАСадресТелевизора = СтрЗаменить(значение, "-", "");
			прервать;
		КонецЕсли;
		Строка = Текст.ПрочитатьСтроку();             
	КонецЦикла;	
	Текст.Закрыть();
	
	// удалим временный файл
	УдалитьФайлы(имяВременногоФайла);	
	
	
	
	Модифицированность = Истина;
КонецПроцедуры

 

3. Регламентное задание ВКЛЮЧЕНИЯ компьютера

Для включения компьютера нужно выполнить команду broadc.exe с указанием MAC адреса.

Предварительно в программу 1С добавляем в общий макет с именем "broadc" файл broadc.exe

Файл можно скачать бесплатно с интернета или со вложения этой статьи. 

Пример выполнения команды: broadc.exe ecd68ae6272b 255.255.255.255 67

 

Добавим в 1С регламентное задание со следующим кодом:

Процедура ВключитьКиоски() Экспорт 
		
	//1. сохраним файл broadc во временный файл	
	имяbroadc = ПолучитьИмяВременногоФайла("exe");
		
	ДД = ПолучитьОбщийМакет("broadc");	
	ДД.Записать(имяbroadc);
	
	Путь = ПолучитьИмяВременногоФайла("bat");
	ФайлBat = Новый ЗаписьТекста(Путь);

	
	// 2. включим компьютеры
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	СписокКиосков.МАСадресТелевизора КАК МАСадресТелевизора
	|ИЗ
	|	РегистрСведений.СписокКиосков КАК СписокКиосков";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ИмяКоманды = ""+имяbroadc+" "+ВыборкаДетальныеЗаписи.МАСадресТелевизора+ " 255.255.255.255 67";
		ФайлBat.ЗаписатьСтроку(ИмяКоманды);

	КонецЦикла;
	ФайлBat.Закрыть();
	
	// уберем BOM
	Данные = Новый ДвоичныеДанные(Путь);
	Строка64=Base64Строка(Данные);
	Строка64=Прав(Строка64,СтрДлина(Строка64)-4);         // убираем BOM символы
	ДанныеНаЗапись=Base64Значение(Строка64);
	ДанныеНаЗапись.Записать(Путь); // записываем
	
	
	// 3. запустим bat файл               
	
	попытка
		ЗапуститьПриложение(Путь,,истина);
	исключение
		ЗаписьЖурналаРегистрации("Включить Киоски", УровеньЖурналаРегистрации.Ошибка,,,
    	ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);	
	конецпопытки;
	
	
	
	//3. удалим временный файл broadc              
	УдалитьФайлы(имяbroadc);
	УдалитьФайлы(Путь);


КонецПроцедуры

 

4. Регламентное задание ВЫКЛЮЧЕНИЯ компьютера

Для выключения компьютера используется команда shutdown. Предварительно подключение осуществляется к киоску через net use с указанием логина и пароля.

 

Процедура РасшБит_ВыключитьКиоски() Экспорт  
	
!!	логинКиоска = укажите имя пользователя для киоска  ;
!!	парольКиоска = укажите пароль для киоска;
	
	// 1. выберем ip киосков
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СписокКиосков.IPтелевизор КАК IPтелевизор,
		|	СписокКиосков.ИмяКомпьютера КАК ИмяКомпьютера 
		|ИЗ
		|	РегистрСведений.СписокКиосков КАК СписокКиосков";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

	// 2. создадим bat временный файл
    	Путь = ПолучитьИмяВременногоФайла("bat");
	ФайлBat = Новый ЗаписьТекста(Путь);
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

		ip = ВыборкаДетальныеЗаписи.IPтелевизор;
		ИмяКомпьютера = ВыборкаДетальныеЗаписи.ИмяКомпьютера;
		
		ФайлBat.ЗаписатьСтроку("net use \\"+ip+" /u:"+ИмяКомпьютера+"\"+логинКиоска +" "+ парольКиоска);
		ФайлBat.ЗаписатьСтроку("shutdown /s /t 10 /f /m \\"+ip);
		ФайлBat.ЗаписатьСтроку("net use \\"+ip+" /delete");
	КонецЦикла;
	ФайлBat.Закрыть();
	
	// уберем BOM
	Данные = Новый ДвоичныеДанные(Путь);
	Строка64=Base64Строка(Данные);
	Строка64=Прав(Строка64,СтрДлина(Строка64)-4);         // убираем BOM символы
	ДанныеНаЗапись=Base64Значение(Строка64);
	ДанныеНаЗапись.Записать(Путь); // записываем
	
	
	// 3. запустим bat файл               
	
	попытка
		ЗапуститьПриложение(Путь,,истина);
	исключение
		ЗаписьЖурналаРегистрации("Выключить Киоски", УровеньЖурналаРегистрации.Ошибка,,,
    	ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);	
	конецпопытки;
	
	// 4. удалим bat файл
	УдалитьФайлы(Путь);
	
КонецПроцедуры

 

Код тестировался на платформе 8.3.24.1368.

включение выключение компьютер расписание windows

См. также

Удаленное управление Пароли Системный администратор Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Как дать доступ сотруднику к удаленному рабочему столу (RDP), но при этом не давать пароль доступа?

2 стартмани

25.03.2024    5815    15    dungeonkeeper    15    

14

Удаленное управление Системный администратор Платформа 1С v8.3 Управляемые формы 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

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

1 стартмани

22.12.2023    4840    18    Струнин    4    

25

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

Маленькая программка для реализации подключения к сессиям пользователя на сервере.

2 стартмани

05.10.2023    2901    13    AActor    1    

7

Удаленное управление Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка считывает историю сеансов Ammyy Admin и хранит в базе 1С. Получает отчет за любой период с группировками по рабочим местам, организациям и операторам.

4 стартмани

03.10.2023    954    0    Uran    0    

2

Удаленное управление Системный администратор Программист Абонемент ($m)

Настройка RDP подключения на сервер без выделенного IP адреса через сервис NGROK.

1 стартмани

19.09.2023    5954    AlexVogel    12    

11

Удаленное управление Программист Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Абонемент ($m)

Расширение обеспечивает возможности подключения одного сотрудника к экрану другого с его согласия в режиме "стажер" - "куратор".

1 стартмани

05.09.2022    3791    4    user739143    0    

14

Удаленное управление Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка выводит список сессий пользователей терминальных серверов. По двойному клику запускает удаленное подключение в режиме RDP Shadow - теневое подключение (зеркало). Использует стандартную утилиту mstsc.exe. Работает поиск по списку, сортировка, отбор. Для получения сессий использует стандартную системную утилиту quser.exe, опционально запрашивает поля данных о пользователе у контроллера домена.

1 стартмани

15.08.2022    6331    35    user739143    8    

21

Удаленное управление Системный администратор Программист Абонемент ($m)

Довольно много специалистов, так или иначе связанных с 1С, работают с базой через удаленный рабочий стол (RDP). В системе даже есть возможность настроить ярлык быстрого подключения к RDP, чтобы сделать подключение максимально быстрым и удобным. К сожалению, если у вас нет прав администратора, либо если групповая политика на вашем компьютере контролируется организацией, у вас могут возникнуть проблемы с автоматическим запоминанием пароля системой. Иными словами, при каждом подключении вам придётся раз за разом заново вводить пароль. Часто такие пароли генерируются автоматически и представляют собой случайные наборы символов, выучить которые порой нереально. Пароль, как правило, сохраняют в текстовом файлике, и раз за разом копируют его оттуда при подключении к RDP. Знакомо? Данная программка поможет вам вводить пароль автоматически. Подключение будет происходить в 1 клик.

1 стартмани

08.08.2022    5714    10    XilDen    6    

4
Оставьте свое сообщение