Форум программистов, компьютерный форум, киберфорум
1С: Администрирование и интеграция
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
1
1C 8.x (тонкий)

Батником или Регламентным заданием Закрыть открытую программу 1с

22.03.2016, 14:33. Показов 2322. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день уважаемые форумчане !!!
возник вопрос ... прошу помощи у гуру ...
База Риб
Такая ситуация - сделал батники на автоматическое создание копий dt.
Все прекрасно работало ...
Но Юзеры захотели чтобы синхронизация РИБ делалась автоматически рег заданием ...

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

Конечно я могу и переиграть и делать вначале Рез копию , а потом запускать 1с в режиме предприятия и делать регламентные задания ...

Но просто стало интересно, Да и движений мне прийдется делать заметно меньше ...
- а можно программно батником или рег заданием закрыть всю платформу ???


Заранее огромное спасибо !!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2016, 14:33
Ответы с готовыми решениями:

Как закрыть открытую программу (ShellExecute наоборот)
Здравствуйте. С помощью метода ShellExecute(Handle,"open",vAsCurDir.c_str()/*путь к файлу с...

Закрыть открытую в сети книгу
Добрый день уважаемые! Подскажите пожалуйста, возможно ли вообще закрыть книгу excel если она...

Закрыть папку открытую в проводнике
Подскажите, кто может, как программно закрыть папку открытую в проводнике

как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно сообшение?(типа вы хотите закрыть программу/да или нет/)
как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно...

6
59 / 59 / 6
Регистрация: 16.01.2013
Сообщений: 162
22.03.2016, 16:01 2
Лучший ответ Сообщение было отмечено andrey76 как решение

Решение

чё-то подзабыл что такое РиБ.

В скуле с батником делал так:
net stop "1C:Enterprise 8.3 Server Agent"

и потом запускал:
net start "1C:Enterprise 8.3 Server Agent"

Работает без отказно
1
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
22.03.2016, 16:05 3
Лучший ответ Сообщение было отмечено andrey76 как решение

Решение

Jackshi, распределенная информационная база вроде
1
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
22.03.2016, 16:08 4
Лучший ответ Сообщение было отмечено andrey76 как решение

Решение

andrey76,
Если автоматическая синхронизация делается до выгрузки иб то - выгрузка не делается так как блокируется база
Так оно и понятно, если есть хотя бы один сеанс dt-шка не выгрузится.
Прибить процесс 1с через батник раз плюнуть, просто перед запуском выгрузки, проверить имеется ли процесс 1с в системе и завершить его.
Но на мой взгляд это не самый лучший подход.
Можете по-подобронее рассказать как у Вас идет синхронизация? Я так понимаю через ПЛАН обмена, меняетесь XML-ками с центральной базой?

Добавлено через 2 минуты
Jackshi,
net stop "1C:Enterprise 8.3 Server Agent"
Такой вариант, на мой взгляд тоже не самый лучший.
Морда с ошибкой(сеанс отсутствует или удален) на клиенте останется.
1
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
22.03.2016, 20:41  [ТС] 5
Jackshi, v_svitere, GreenkO Спасибо за помощь !!! Ат Души !!! Уважение !!!

Цитата Сообщение от GreenkO Посмотреть сообщение
распределенная информационная база вроде
- Так и есть.

Цитата Сообщение от v_svitere Посмотреть сообщение
Так оно и понятно, если есть хотя бы один сеанс dt-шка не выгрузится.
- В этом как раз таки и дело ...

Цитата Сообщение от Jackshi Посмотреть сообщение
В скуле с батником делал так:
net stop "1C:Enterprise 8.3 Server Agent"
- Братулец - у меня файловая база ...

Цитата Сообщение от v_svitere Посмотреть сообщение
Jackshi,
net stop "1C:Enterprise 8.3 Server Agent"
Такой вариант, на мой взгляд тоже не самый лучший.
Морда с ошибкой(сеанс отсутствует или удален) на клиенте останется.
- Как я понимаю это так же как я бы в диспечере задач закрыл процесс - мне кажется не совсем корректно ...

Хотелось бы так как будто пользователь закрывает нажав на крестик - Батником или Рег заданием ...

Заранее огромное спасибо !!!

Добавлено через 6 минут
Цитата Сообщение от v_svitere Посмотреть сообщение
Можете по-подобронее рассказать как у Вас идет синхронизация? Я так понимаю через ПЛАН обмена, меняетесь XML-ками с центральной базой?
- Все верно - Стандартным механизмом ... Розница 2.0 - просто Узлов 5 и уже ручками под каждый было прописано время синхронизации (Рег заданием) - в период от 23 - 24. А выгрузку еще ранее делал в период от 02 - 03 ...
И когда Рег задание делал про выгрузку подзабыл конечно ...
Можно конечно просто время поменять ... но интересно стало ...
0
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
23.03.2016, 11:13 6
andrey76,
Как я понимаю это так же как я бы в диспечере задач закрыл процесс - мне кажется не совсем корректно ...
В принципе в Вашем случае, это наверное самый лучший вариант, однако можно в ваш скрипт закинуть несколько проверок, на предмет окончания синхронизации(допустим по наличию xml-файла\ов), а далее действительно просто прибивать процесс.
Хотелось бы так как будто пользователь закрывает нажав на крестик - Батником или Рег заданием ...
Такой вариант тоже есть, но для этого нужно что-то посерьезнее BAT-файла, например powershell, который работает с объектами. Через него можно вызывать WINapi-методы(FindWindowex и SendMessage) - это нужно для поиска окна 1с и его закрытия. В принципе тоже ничего сложного, но стоит ли оно того?
Можно конечно просто время поменять
Этот вариант пожалуй рациональнее всего, лично мое мнение.

И еще один момент...
Я не совсем силен в 1с с точки зрения кода, но если допустим есть возможность в самом регламентном задании после успешной синхронизации закрыть окно обмена, то можно сделать так, а при запуске Батника в самом начале сделать проверку на наличие процесса синхронизации. Как дополнение могу сказать следующее, если например на компе запущено несколько 1С, то процессы можно различать, по параметру CommandLine, потому что имена у всех процессов 1с одинаковые.
1
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
23.03.2016, 13:41  [ТС] 7
v_svitere Ат души братулец !!! Уважение !!!

Цитата Сообщение от v_svitere Посмотреть сообщение
В принципе тоже ничего сложного, но стоит ли оно того?
Цитата Сообщение от v_svitere Посмотреть сообщение
Этот вариант пожалуй рациональнее всего, лично мое мнение
- C точки зрения трудозатрат походу так ... так и поступлю
Думал что если корректно запустить 1с батником просто - то закрыть будет так же ... ошибался
0
23.03.2016, 13:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2016, 13:41
Помогаю со студенческими работами здесь

Как запустить программу в папке с батником?
если путь к папке меняется

Как закрыть программу или весь документ через определенный промежуток времени
Здравствуйте, интересует как закрыть программу или весь документ через промежуток времени , что бы...

Поможете заданием с заданием / Начертите схему формы и сложите процедуру для решения такой задачи
Начертите схему формы и сложите процедуру для решения такой задачи: вычислите произведениевсех...

Напишите любую программу с заданием к ней по файлам
Если не трудно напишите пожалуйста любую программу с заданием к ней по файлам


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru