Запуск 1С под заданным пользователем как службы (service) Windows

24.11.11

База данных - Инструменты администратора БД

Позволяет запустить любую конфигурацию 1С 8 как службу Windows

Скачать файл

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

Наименование По подписке [?] Купить один файл
1C-AsService.rar
.rar 735,15Kb
189
189 Скачать (3 SM) Купить за 2 450 руб.

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

Так как конфигурация была переписана, и некоторые (дописанные) задания требовали наличия полных прав (а переписывать всё в привилегированный модуль было долго и лень ;) ), то было решено запускать 1Ску под пользователем с полными правами, и прятать окно 1С с рабочего стола чтобы кому-либо не было доступа к интерфейсу программы.

Лучшим вариантом стал запуск 1С как службы. 

Исходный код написан на Delphi

Для тех, кто не сможет скомпилировать исходники сервиса, поменяв в коде логин и пароль пользователя для запуска 1С, для них есть скомпилированный файл сервиса со встроенным логином: "ServiceAdmin" и паролем: "MegaPassword" без кавычек, и с соблюдением регистра. Нужно будет только добавить этого пользователя в базу и задать ему этот пароль.

И самое главное! Если в конфигурации у пользователей есть настройка типа "Запрашивать подтверждение при закрытии программы" или любые её разновидности, которые не закрывают 1С, а выводят какие-нибудь сообщения и ждут действия пользователя перед закрытием, то для этого пользователя необходимо их ОТКЛЮЧИТЬ, иначе процесс 1С зависнет и сервис не сможет остановится ожидая закрытия 1С. Останется только срубать 1С через ctrl+alt+del.

 

Настройка сервиса производится в файле service.ini. Для удобства редактирования файла настроек, а также установки/запуска/остановки сервиса, используется ServiceSetupGUI.exe. С настройками, думаю, не возникнет проблем. Все на русском.

Есть еще один нюанс по остановке сервиса и как следствие закрытию 1С. В настройках сервиса есть галка "Останавливать 1С посылкой wm_close". Она означает, что для закрытия 1С главному окну программы будет послана winapi-комманда WM_CLOSE, что примерно аналогично нажатию крестика "Закрыть" в окне программы. И в большинстве случаев этого будет достаточно. НО, в моей конфигурации нужно было обязательно выполнить, на важно какие, действия перед закрытием 1С, а wm_close бывало приходило раньше, чем они завершались, и 1с закрывалась. Так вот, в этом случае можно убрать галку "Останавливать 1С посылкой wm_close", в этом случае сервис создаст файл "wm_close" в папке, которая будет указана в настройке "Общая с 1С папка для записи файла", и тогда в 1С для нашего пользователя в процедуре ПриНачалеРаботыСистемы можно подключить обработчик ожидания, в котором проверять, не появился ли в нашей папке файл wm_close, и если он там есть, то выполнять необходимые нам действия, после чего вызывать ЗавершитьРаботуСистемы( Ложь ); Сервис дождётся завершения 1С и остановится. Путь к этой папке в 1С у меня хранится в константе, хотя можно его и в коде прописать, если уверены что папка ни куда переедет.

На счет прав. При установке сервиса кнопкой "Установить" из ServiceSetupGUI у пользователя должны быть права администратора. Также если для остановки сервиса через создание файла wm_close  в папке нужно проследить чтобы у соответствующих пользователей были права на запись и удаление файлов в этой папке.

Сервис по умолчанию имеет Тип запуска - автоматически, т.е. при загрузке компа сервис стартанет и запустит 1С. Тип запуска можно сменить либо в Delphi, либо в свойствах службы в оснастке Windows.

В принципе вроде всё, будут вопросы пишите : )

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7912    59    23    

70

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8902    42    5    

74

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10481    36    25    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188088    1140    0    

912

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32717    106    152    

73

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72812    627    45    

85

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62845    94    59    

79

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    9850    7    4    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Spartan 365 24.11.11 17:54 Сейчас в теме
Все это классно и безусловно полезно, но решается гораздо проще с помощью стандартных утилит от мелкомягких instsrv.exe и srvany.exe, входящих в состав Recource Kit для Windows. С помощью них можно запустить любое приложение как сервис, в том числе и 1С.
2. vkr 25.11.11 08:14 Сейчас в теме
(1) А почему бы автору не освоить системное программирование - пусть даже в применении к 1С ?
Чем он хуже Гейтса и Нуралиева ? :)
4. Spartan 365 25.11.11 20:54 Сейчас в теме
(2),(3) ок, уговорили... :) в любом случае достойно уважения, раз сам написал. плюсую!
3. UPSoft 88 25.11.11 11:08 Сейчас в теме
(1) Spartan, Ну, на самом деле, в моем случае сервис выполнял намного больше функций, там было и бэкапирование и получение/отправка всякихнужныхфайлов, и работа с вебсервисом, вобщем помогал 1Ске с документооборотом... просто я подумал что это может кому-нибудь пригодится, тому кто не знает об instsrv.exe и srvany.exe, а перед ним стоит подобная задача. Всё "ненужное" я почистил оставив основу, на которую уже можно, по желанию, прикрутить всё что угодно...
5. UPSoft 88 28.11.11 14:17 Сейчас в теме
качают, а плюсы не ставят :( тут всегда так?
tatoshka0403; user664512_89203120363; +2 Ответить
6. DrAku1a 1745 30.11.11 06:58 Сейчас в теме
(5) Бывает и наоборот... Плюсуем если идея понравилась, но не качаем (оставляем зарубку на будущее).
7. D.S.Denton 30.11.11 12:23 Сейчас в теме
отлично! плюсик в карму за то, что не лень было сделать такое и предусмотреть возможные типично 1совские косяки.

не качал, поэтому спрошу - с какими параметрами создается сервис? и - гуя сразу вносит запись в реестр или вызывает SC.exe?

то бишь есть важные моменты:
type= own или share?
есть ли дополнительно interact?
поведение при невозможности старта?
8. UPSoft 88 30.11.11 15:29 Сейчас в теме
(7) D.S.Denton,
Сервис регистрируется выполнением из gui команды "Service.exe \install", удалить сервис можно, соответственно, командой "Service.exe \uninstall", из меню пуск-выполнить... Такой кнопки в gui нет.

>>поведение при невозможности старта?
ни как не обрабатывается

Это полноценный сервис, созданный наследованием от класса TService из SvcMgr.

SC.exe тут вообще не используется, поэтому вопросы про type = own или share и interact не актуальны.
D.S.Denton; +1 Ответить
9. dumal 30.11.11 16:57 Сейчас в теме
Разработка безусловно полезна. Самое главное достоинство, на мой взгляд - открытые исходники
10. sir_sva 30.11.11 18:54 Сейчас в теме
+, качаю как пример сервисов в Дельфи. 1с устраивает в стандарте
11. simgo83 71 01.12.11 08:05 Сейчас в теме
Необходимо добавить на форму имя пользователя и пароль для 1С, а не программно их привязывать, и плюсов будет гараздо больше, а так нужно еще среду разработки Delphi иметь.
12. UPSoft 88 01.12.11 10:50 Сейчас в теме
(11) simgo83, как правило такой пользователь имеет полные права, и одной из целей, было скрыть имя и пароль этого пользователя от кого-либо.
48. Kuzja_R 172 19.10.12 00:30 Сейчас в теме
(11) simgo83, (26) squeez, (31) mob51, (39) Baser,
решение вопроса - http://infostart.ru/public/157107/
13. пользователь 02.12.11 08:37
Сообщение было скрыто модератором.
...
14. Il 30 02.12.11 08:54 Сейчас в теме
Надо будет качнуть - возможно пригодиться.
15. Asaqura 05.12.11 01:57 Сейчас в теме
Il пишет:

Надо будет качнуть - возможно пригодиться.
16. softest 08.12.11 19:55 Сейчас в теме
удобная вечь я так тоже запускал фоновый задания!
17. Kochevnic 08.12.11 21:14 Сейчас в теме
Спасибо! Попробуем на практике
18. iov 407 09.12.11 09:15 Сейчас в теме
(0) а бекап файловой базы чем при работающем "сервисе" делаете? И как боретесь с на запланированным открытием модальных окон ?
19. UPSoft 88 09.12.11 11:26 Сейчас в теме
(18) я не писал что сервис делает бэкапирование. Он просто запускает 1С. А при остановке, пытается её закрыть. И всякие "модальные окна" и т.п. в 1С, уже на том кто этим пользуется, и как раз об этом я в статье предупреждаю.
20. iov 407 09.12.11 11:28 Сейчас в теме
(19)
а бекап файловой базы чем при работающем "сервисе" делаете?
Я тоже не писал что сервис этим занимается - а написал чем делаете бекап при условии что сервис запущен...
21. UPSoft 88 09.12.11 11:37 Сейчас в теме
(20) iov, в моем сервисе (3), происходит так:
1) остановка 1с запущенной сервисом
2) запрет работы пользователей, дожидаюсь пока все выйдут.
3) бэкапирование 1Ской, через командную строку.
4) разрешение работы пользователей
5) старт 1Ски

Повторюсь, что здесь выложен сервис который только запускает 1С, и ничего выше перечисленного не делает.
22. iov 407 09.12.11 11:42 Сейчас в теме
(21) ok

может поможет в дальнейшем
1)
бэкапирование 1Ской, через командную строку.
Кране не надежная вещь.

2) если между 2 и 4 произойдет завершение или иное действие которое не позволит выполнить 4 пункт - сами догадайтесь.

А в остальном как и предполагал - высчитывание времени имеет место быть.
23. UPSoft 88 09.12.11 11:48 Сейчас в теме
(22) iov, если что-то упадет между 2 и 4, есть блок Finally в котором работа пользователей всё равно разрешится, + спецальнообученый человек с ярлыком для того же действия, а если упал сервис то при повторном запуске проверяется нужно ли разрешить работу пользователям.
и я вообще не понимаю какое отношение имеет мой сервис, который здесь не выложен, к данной публикации.
24. iov 407 09.12.11 11:54 Сейчас в теме
(23) Просто спросил как делается бекап. ПРОСТО интересно - мне по* правильно или нет.
Просто интересно чем люди пользуются...
А тема может быть хоть про обрезание пуповины у страусов на аляске.
Ответили - спасибо. не ответили - ну заняты значит...
Лови плюс - в качестве компенсации.
25. seakuban 11 09.12.11 13:04 Сейчас в теме
публикация - http://infostart.ru/public/101168/ - о запуске 1с в фоновом режиме как регламентного задания))
26. squeez 59 12.12.11 11:33 Сейчас в теме
А почему бы не сделаьб ввод логина и пароля в файле настройки? Тогда и компилить не прийдётся. Просто не всегда есть под рукой установленный Delphi....
27. UPSoft 88 12.12.11 11:38 Сейчас в теме
(26) squeez, я уже писал об этом (12). и также о том что есть скомпилированный сервис с логином и паролем.
28. Raminus 12.12.11 12:19 Сейчас в теме
29. пользователь 09.01.12 12:53
Сообщение было скрыто модератором.
...
30. netmate 11.01.12 02:21 Сейчас в теме
А если используется две базы БП 2.0 и УТ 11, то возможно использование данной разработки для проведения процесса обмена между вышеназванными конфигурациями по регламентным заданиям?
31. mob51 139 16.01.12 15:24 Сейчас в теме
Подскажите возможно ли создать таких служб несколько штук, но так что бы они не пересекались? заранее благодарен за ответ=)
38. UPSoft 88 17.01.12 11:07 Сейчас в теме
(31) mob51, можно, если перекомпилировать сам сервис и обозвать их по разному ( поле Name в (8) ), т.к. запуск сервиса происходит по его имени. И если нужно будет то и в ServiceSetupGUI, в коде, тоже поменять имя сервиса на новое.
32. Baser 7 17.01.12 08:34 Сейчас в теме
Я пробовал вручную через SC прописать. Прописалось, но вот запускаться не хотит: сразу отвечает что не получен ответ от службы. Хотя такая ошибка обычно происходит через 30 сек. после попытки запуска службы.
Вот поэтому вопрос: что именно у Вас прописано в поле "Исполняемый файл".
Скачать не могу, т.к. виртуальных денег не хватает :(
37. UPSoft 88 17.01.12 11:05 Сейчас в теме
33. Baser 7 17.01.12 08:47 Сейчас в теме
Еще только заметил, что в процессах она все же появилась и ничего не делает.
34. seakuban 11 17.01.12 08:57 Сейчас в теме
(33) Baser, может проблема в том что для текущей учетки не зарегистрирована эта база? см. http://infostart.ru/public/101168/
35. Baser 7 17.01.12 09:15 Сейчас в теме
не должно, потому как использую свой логин для запуска службы
36. mob51 139 17.01.12 09:50 Сейчас в теме
исполняемый файл Service.exe
39. Baser 7 18.01.12 11:06 Сейчас в теме
погуглил: сама 1c через sc.exe не заведется. Поэтому нужны такие самописные службы
Тогда вопрос следующего содержания: как бы запустить с параметрами, а именно хочется выходной файл /outC:\Result.txt прописать.
40. UPSoft 88 18.01.12 11:32 Сейчас в теме
(39) Baser, перекомпилировать сервис, и добавить всё что захочется.
41. kronos87 21.02.12 11:32 Сейчас в теме
Тоже пробовал запускать 1С в качестве службы (правда через anyserv.exe).
Делал это для организации автообмена между рабочим местом менеджера магазина и кассой (на базе 1С8:Розница).
Все провалилось из-за того, что полученная служба не имела доступа к сетевым ресурсам и обмен не мог выполниться.

Вопрос: Можно ли при помощи этой утилиты решить подобную проблему.
PS: Каталог обмена находится на PC манагера.
42. netmate 21.02.12 12:13 Сейчас в теме
(41) kronos87, всё решается намного проще. Запускаешь 1С из шедулера с параметрами:
"C:\Program Files\1cv82\Bin\1cv8c.exe" ENTERPRISE /IBConnectionString"File=""C:\Инфорационная база"";" /NВасилий /PПароль /C"DoScheduledJobs SkipMessageBox AloneIBSession"


Для надёжности запускаешь каждый час. Параметр AloneIBSession не даст запустить вторую копию, если первая жива.
47. metmetmet 82 21.02.12 19:22 Сейчас в теме
(41) kronos87,
(42) netmate, А можно еще это оформить в виде batch или wsh скрипта, чтобы придать гибкость настройки и запускать задание под другим пользователем, тогда никому "лишняя" 1C'ка мешаться не будет. правда в таком случае не получится корректно завершить 1С'ку, если конечно этого не предусмотреть заранее ;)
43. kronos87 21.02.12 13:53 Сейчас в теме
netmate, Спасибо,попробую. Таки было чувство что должен быть вариант попроще.
46. netmate 21.02.12 14:11 Сейчас в теме
(43) kronos87, я этот вариант взял из инструкции к 1С :D Он просто не может не работать.
44. пользователь 21.02.12 14:01
Сообщение было скрыто модератором.
...
45. пользователь 21.02.12 14:02
Сообщение было скрыто модератором.
...
49. KEV8383 20 19.10.12 15:43 Сейчас в теме
Как указать режим запуска сеанса, чтобы он выполнял регламентные задания? (1С 8.2.16.362, УТ 11)
50. KEV8383 20 19.10.12 16:04 Сейчас в теме
DoScheduledJobs
SkipMessageBox
AloneIBSession
51. w22u 30 29.03.13 12:58 Сейчас в теме
Есть ещё альтернативный способ: нужно запустить 1С на рабочем столе пользователя, предварительно запустив у него приложение "Tray It!" в котором нужно создать профиль для этой копии, который свернёт и спрячет окно из панели задач и из трея. Сама программа "Tray It!" своё присутствие в трее также может успешно скрывать.
52. script 128 20.10.17 23:44 Сейчас в теме
Уже два раза очень помогла. Автору большое спасибо.
Оставьте свое сообщение