Для начала необходимо скопировать эти утилиты ( INSTSRV.EXE и SRVANY.EXE) в системную директорию C:WindowsSystem32 (для этого нужно чтобы ваша учетная запись имела права администратора) и всё. После запускаем обработку в режиме 1С Предприятия. Указываем название службы (любое понятное вам), параметры запуска БД 1С и жмём кнопку «Создать Windows службу». Обработка при помощи утилит создаст в системе службу, пропишем в системный реестр все нужные параметры и вам останется только нажать на кнопку запустить службу, а вместе с ней произойдет запуск БД которую вы указали в параметрах. Нажав на кнопку Остановить службу, произойдет остановка службы и выход пользователя из БД. Нажав на кнопку «Удалить службу», вы удалите службу указанную в наименовании. Вы можете создать любое нужное количество служб, для этого просто в наименовании указываете новое название, после события «При изменении» наименования получите возможность ввести новые параметры БД и т.д. Тоже самое с удалением службы. Вводите наименование, после события «при изменении» обработка анализирует состояние службы и если такая служба есть в системе можете её удалить (но, увлекаться не стоит, удаляйте только то что сами создали, ну или на 100% уверены в том что удаляете не нужную службу). Есть одно узкое место в коде которое мне не удалось оптимизировать. Это получение состоятия системной службы (запущена она или остановлена). В моей обработке, это занимает около минуты, но определяет точно. Может быть кто нибудь знает более правильное решение, буду признателен т.к. сам я не программист, а программирование моё хобби. Код открыт. Буду рад если кому нибудь пригодится… Обработка написана на платформе 8.2.14.537 Обычное приложение. Тестировал на Windows 7 32 bit. , но уверен что под XP будет работать.
Обновление обработки!!! 1. Оптимизированна функция получения состояния службы! 2. Добавлена возможность менять пользователя или пароль пользователя БД. 3. Добавлена возможность изменять подключение к БД (путь для файловой и имя сервера и имя БД для серверного варианта). Для того, чтобы воспользоваться новыми возможностями, нажмите на картинку в нужной группе реквизитов и откроется режим редактирования. После редактирования реквизитов, жмём кнопку «Сохранить изменения» и обновлённые данные запишутся в системный реестр ОС.
Безусловно разработчик получил навыки при реализации этой обработки но в практическом применении считаю ее бесполезной т.к. проще настроить это в windiws.
(1) IvanSusanin, Видите ли перенумерацию документов тоже можно провести в ручную, но мы пишем разного рода обработки. Потому что так удобней.
Если нет возможности запускать, созданные службы, по расписанию, то не вижу особого практического применения
(3) kondrat1C, Вот! это хорошая идея. Но запуск того или иного действия можно прописать в коде конфигурации(хоть по расписанию, хоть произвольно) главное, чтобы она запускалась и не мешала пользователям. А, вот насчет применения, я в описании в кратце привел несколько примеров. Я например использую для управления службой которая запускает базуостанавливает для смс оповещения клиентов и сотрудников разного рода информацией. Обработка вам поможет создать службу, настроить базу данных для запуска, а вот для чего??? Это вы сами решите…
главное, чтобы она запускалась и не мешала пользователям
дваждую
Кошерная обработка, очевидный плюс за работу
Для получения/изменения состояния служб можно использовать, например, WMI, привожу пример функции:
Показать
Еще до кучи 🙂
Показать
Спасибо за пример кода. Обязательно воспользуюсь и переделаю в обработке функцию получение состояния службы.
молодец, респект разработчику!!!
Полезная обработка, у меня сборка/рассылка данных с wi-fi терминалов реализован на прямую в 1с, попробую запускать как службу, когда будет контроль состояния службы.
В разделе файлы: чем файл «Файл обработки для 8.2» отличается от «Файл обработки для 8.2«?
Написано хорошо — молодец.
Только непонятно зачем в обработке присутствует вариант создания службы для серверной 1с? Регламентные задания в 1с никто не отменял — все должно получиться без доп. функционала
попробую запускать как службу, когда будет контроль состояния службы.
Контроль состояния службы присутствует и работает 100% правильно. Я имел ввиду, что эту функцию в модуле я хочу оптимизировать увеличив быстродействие получения состояния.
Да, интересная обработка. Интересна больше идея создания-удаление службы.
Регламентные задания правда все это заменяют, но этот подход тоже имеет право жить — может кому то и понадобится.
Ну и плюс — все регламентные как бы в одном месте. Но вопрос будут ли 2 регламентных работать параллельно в одной/разных базах?
для чего может пригодится си Е изобретение ???
Уважаемый go3i, внимательней читайте описание! Там всё написано, а ещё можете ознакомиться с системным программированием если посмотрите код данной разработки. Я думаю вы найдёте для себя много интересного.
Спасибо автору! Я тоже применяю эту обработку для отсылки смс польователям!
Интересная разработка. А можно сделать так, чтобы служба созданная стартовала при запуске системы ?
(17) dandrontiy, Очень легко. Помотрите процедуру ЗапускОстановкаНажатие, которая запускает созданную службу и останавливает её при следующем нажатии. А, если коротко то вот этот код
КомандаСистемы(«net start » + СокрЛП(НазваниеСлужбы));
пропишите в модуле приложения в процедуре ПриНачалеРаботыСистемы().
(13) Для запуска регламентных заданий в файловом варианте, как раз-таки нужен отдельный сеанс — вот его-то лучше всего и запустить как службу.
Грамотное решение. Автору +
Автор молодец! Идея грамотная и полезная… Очень много конфигураций используются в файловом режиме. Вот здесь, эта обработка будет крайне необходима для выполнения регламентный заданий. И пользователям мешать не будет.
Спасибо! То, что надо! Даже на не очень хорошем сервере со странно работающим планировщиком завелась.
Прежде чем проверять на рабочем сервере, где вертится 2008 server, хотел уточнить, на нем такая обработка заведется? Или нужны другие версии файлов?
В (22) OrsoBear, На 2008 server не тестировал, но предполагаю, что должна сработать без проблем. Это же тоже Windows…