Создаём системную службу для запуска БД 1С в скрытом виде. (Обновление)

15.11.12

Разработка - Инструментарий разработчика

Обработка создает в системе Windows службу при помощи утилит из комплекта Windows 2000 Server Resource Kit ( INSTSRV.EXE и SRVANY.EXE) для запуска БД 1С в скрытом от пользователей виде для выполнения регламентных заданий, рассылки смс, электронной почты, востановления последовательности в документах и т. д.

Скачать файлы

Наименование Файл Версия Размер
Файл обработки для 8.2 (обновление от 11.01.2012)
.epf 18,70Kb
76
.epf 18,70Kb 76 Скачать
Утилиты Windows
.rar 18,93Kb
47
.rar 18,93Kb 47 Скачать

Для начала необходимо скопировать эти утилиты ( INSTSRV.EXE и SRVANY.EXE) в системную директорию C:\Windows\System32 (для этого нужно чтобы ваша учетная запись имела права администратора) и всё. После запускаем обработку в режиме 1С Предприятия. Указываем название службы (любое понятное вам), параметры запуска БД 1С и жмём кнопку "Создать Windows службу". Обработка при помощи утилит создаст в системе службу, пропишем в системный реестр все нужные параметры и вам останется только нажать на кнопку запустить службу, а вместе с ней произойдет запуск БД которую вы указали в параметрах. Нажав на кнопку Остановить службу, произойдет остановка службы и выход пользователя из БД. Нажав на кнопку "Удалить службу", вы удалите службу указанную в наименовании. Вы можете создать любое нужное количество служб, для этого просто в наименовании указываете новое название, после события "При изменении" наименования получите возможность ввести новые параметры БД и т.д. Тоже самое с удалением службы. Вводите наименование, после события "при изменении" обработка анализирует состояние службы и если такая служба есть в системе можете её удалить (но, увлекаться не стоит, удаляйте только то что сами создали, ну или на 100% уверены в том что удаляете не нужную службу). Есть одно узкое место в коде которое мне не удалось оптимизировать. Это получение состоятия системной службы (запущена она или остановлена). В моей обработке, это занимает около минуты, но определяет точно. Может быть кто нибудь знает более правильное решение, буду признателен т.к. сам я не программист, а программирование моё хобби. Код открыт. Буду рад если кому нибудь пригодится... Обработка написана на платформе 8.2.14.537 Обычное приложение. Тестировал на Windows 7 32 bit. , но уверен что под XP будет работать.

Обновление обработки!!! 1. Оптимизированна функция получения состояния службы! 2. Добавлена возможность менять пользователя или пароль пользователя БД. 3. Добавлена возможность изменять подключение к БД (путь для файловой и имя сервера и имя БД для серверного варианта). Для того, чтобы воспользоваться новыми возможностями, нажмите на картинку в нужной группе реквизитов и откроется режим редактирования. После редактирования реквизитов, жмём кнопку "Сохранить изменения" и обновлённые данные запишутся в системный реестр ОС.

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122113    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7286    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3524    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177737    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99344    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18108    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28107    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. IvanSusanin 04.01.12 10:47 Сейчас в теме
Безусловно разработчик получил навыки при реализации этой обработки но в практическом применении считаю ее бесполезной т.к. проще настроить это в windiws.
2. MNevgeny 55 04.01.12 11:39 Сейчас в теме
(1) IvanSusanin, Видите ли перенумерацию документов тоже можно провести в ручную, но мы пишем разного рода обработки. Потому что так удобней.
3. kondrat1C 55 04.01.12 12:03 Сейчас в теме
Если нет возможности запускать, созданные службы, по расписанию, то не вижу особого практического применения
4. MNevgeny 55 04.01.12 12:24 Сейчас в теме
(3) kondrat1C, Вот! это хорошая идея. Но запуск того или иного действия можно прописать в коде конфигурации(хоть по расписанию, хоть произвольно) главное, чтобы она запускалась и не мешала пользователям. А, вот насчет применения, я в описании в кратце привел несколько примеров. Я например использую для управления службой которая запускает базу\останавливает для смс оповещения клиентов и сотрудников разного рода информацией. Обработка вам поможет создать службу, настроить базу данных для запуска, а вот для чего??? Это вы сами решите...
5. r00t 04.01.12 13:12 Сейчас в теме
andrej260276 пишет:
главное, чтобы она запускалась и не мешала пользователям

дваждую

Кошерная обработка, очевидный плюс за работу
6. sound 535 04.01.12 13:59 Сейчас в теме
Есть одно узкое место в коде которое мне не удалось оптимизировать. Это получение состоятия системной службы (запущена она или остановлена).


Для получения/изменения состояния служб можно использовать, например, WMI, привожу пример функции:


// Возвращает таблицу значений, содержащую 
// сведения о службах компьютера
// для локального компьютера HostName = "."
Функция ПолучитьСведенияОСлужбах(HostName) Экспорт
	ТЗСлужбы = Новый ТаблицаЗначений;
	ТЗСлужбы.Колонки.Добавить("Name",,"Имя файла",25);
	ТЗСлужбы.Колонки.Добавить("Caption",,"Имя",);
	ТЗСлужбы.Колонки.Добавить("Description",,"Описание",);
	ТЗСлужбы.Колонки.Добавить("State",,"Состояние",);
	ТЗСлужбы.Колонки.Добавить("StartMode",,"Тип запуска",);
	ТЗСлужбы.Колонки.Добавить("PathName",,"Строка запуска",);
	Попытка
		ServicesSet = GetComObject("winmgmts:{impersonationLevel=impersonate}!\\" + СокрЛП(HostName) + "\root\cimv2");
		Items = ServicesSet.ExecQuery("SELECT Name,Caption,Description,State,StartMode,PathName From Win32_Service");
		Для каждого Item Из Items Цикл
			НоваяСтрока = ТЗСлужбы.Добавить();
			НоваяСтрока.Name        = Item.Name;
			НоваяСтрока.Caption     = Item.Caption;
			НоваяСтрока.Description = Item.Description;
			НоваяСтрока.State       = Item.State;
			НоваяСтрока.StartMode   = Item.StartMode;
			НоваяСтрока.PathName    = Item.PathName;
		КонецЦикла;
		ТЗСлужбы.Сортировать("Name");
	Исключение
		Возврат Неопределено;
	КонецПопытки;
	Возврат ТЗСлужбы;
КонецФункции // ПолучитьСведенияОСлужбах()
Показать
Spacer; stal76; +2 Ответить
7. sound 535 04.01.12 14:00 Сейчас в теме
Еще до кучи :)

// Start, Stop или Restart службы компа
Функция ИзменитьСостояниеСлужбы(HostName, Name, State) Экспорт
	Попытка
		ServicesSet = GetComObject("winmgmts:{impersonationLevel=impersonate}!\\" + СокрЛП(HostName) + "\root\cimv2");
		Items = ServicesSet.ExecQuery("SELECT Name From Win32_Service WHERE Name=""" + СокрЛП(Name) + """");
		Для каждого Item Из Items Цикл
			Если State = 1 Тогда
				Item.StartService();
			ИначеЕсли State = 2 Тогда
				Item.StopService();
			ИначеЕсли State = 3 Тогда
				Item.StopService();
				Item.StartService();
			КонецЕсли;	
		КонецЦикла;
		Возврат Истина;
	Исключение
		Возврат Ложь;
	КонецПопытки;
КонецФункции // ИзменитьСостояниеСлужбы()	
Показать
8. MNevgeny 55 04.01.12 14:09 Сейчас в теме
Спасибо за пример кода. Обязательно воспользуюсь и переделаю в обработке функцию получение состояния службы.
9. zavedeev 04.01.12 17:14 Сейчас в теме
молодец, респект разработчику!!!
10. Genneral 04.01.12 22:46 Сейчас в теме
Полезная обработка, у меня сборка/рассылка данных с wi-fi терминалов реализован на прямую в 1с, попробую запускать как службу, когда будет контроль состояния службы.
11. echo77 1868 05.01.12 07:22 Сейчас в теме
В разделе файлы: чем файл "Файл обработки для 8.2" отличается от "Файл обработки для 8.2"?

Написано хорошо - молодец.
Только непонятно зачем в обработке присутствует вариант создания службы для серверной 1с? Регламентные задания в 1с никто не отменял - все должно получиться без доп. функционала
12. MNevgeny 55 05.01.12 15:19 Сейчас в теме
Genneral пишет:
попробую запускать как службу, когда будет контроль состояния службы.
Контроль состояния службы присутствует и работает 100% правильно. Я имел ввиду, что эту функцию в модуле я хочу оптимизировать увеличив быстродействие получения состояния.
13. It-developer 24 06.01.12 16:43 Сейчас в теме
Да, интересная обработка. Интересна больше идея создания-удаление службы.
Регламентные задания правда все это заменяют, но этот подход тоже имеет право жить - может кому то и понадобится.
Ну и плюс - все регламентные как бы в одном месте. Но вопрос будут ли 2 регламентных работать параллельно в одной/разных базах?
19. Spartan 365 10.01.12 17:44 Сейчас в теме
(13) Для запуска регламентных заданий в файловом варианте, как раз-таки нужен отдельный сеанс - вот его-то лучше всего и запустить как службу.
14. go3i 08.01.12 12:51 Сейчас в теме
для чего может пригодится си Е изобретение ???
15. MNevgeny 55 08.01.12 14:42 Сейчас в теме
Уважаемый go3i, внимательней читайте описание! Там всё написано, а ещё можете ознакомиться с системным программированием если посмотрите код данной разработки. Я думаю вы найдёте для себя много интересного.
16. softest 08.01.12 19:43 Сейчас в теме
Спасибо автору! Я тоже применяю эту обработку для отсылки смс польователям!
17. dandrontiy 10.01.12 15:25 Сейчас в теме
Интересная разработка. А можно сделать так, чтобы служба созданная стартовала при запуске системы ?
18. MNevgeny 55 10.01.12 15:58 Сейчас в теме
(17) dandrontiy, Очень легко. Помотрите процедуру ЗапускОстановкаНажатие, которая запускает созданную службу и останавливает её при следующем нажатии. А, если коротко то вот этот код
КомандаСистемы("net start " + СокрЛП(НазваниеСлужбы));
пропишите в модуле приложения в процедуре ПриНачалеРаботыСистемы().
20. Imm 12.01.12 04:11 Сейчас в теме
Грамотное решение. Автору +
21. agent007 28.02.12 08:13 Сейчас в теме
Автор молодец! Идея грамотная и полезная... Очень много конфигураций используются в файловом режиме. Вот здесь, эта обработка будет крайне необходима для выполнения регламентный заданий. И пользователям мешать не будет.
22. ITEkb 19.12.13 10:13 Сейчас в теме
Спасибо! То, что надо! Даже на не очень хорошем сервере со странно работающим планировщиком завелась.

Прежде чем проверять на рабочем сервере, где вертится 2008 server, хотел уточнить, на нем такая обработка заведется? Или нужны другие версии файлов?
23. MNevgeny 55 19.12.13 13:59 Сейчас в теме
В (22) OrsoBear, На 2008 server не тестировал, но предполагаю, что должна сработать без проблем. Это же тоже Windows...
24. bambucho 27.10.21 15:50 Сейчас в теме
Подскажите,а возможно ли написать службу,запускающую файловую базу (конфигурацию) фоново (как серверная служба),после запуска компьютера,без входа пользователя в пользовательское окружение ОС?
Много ли зависимостей подтягивает 1с приложение?
Оставьте свое сообщение