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

Открытие (запуск) внешней обработки из служебного сеанса

03.12.2013, 07:56. Показов 10325. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, существует внешняя обработка, необходимо чтобы от при входе пользователя Автообмен запускалась эта самая обработка, вроде создал регламентное задание, но где указать вызов самой обработки при открытии?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2013, 07:56
Ответы с готовыми решениями:

Запуск Внешней обработки 1с 8 из delphi
Привет всем может быть кто нибудь уже сталкивался с подобной задачей Вот что я уже сделал V81...

1С 8.3 УТ 11 можно ли программно отследить запуск внешней обработки
Добрый день. Платформа 1С 8.3, конфигурация УТ 11. Имеется внешняя обработка, добавленная в...

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

Открытие документа с помощью внешней обработки
Есть документ "Документ" Как во внешней обработке открыть этот документ?

25
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
03.12.2013, 08:07 2
Можно где-нить в районе "ПриНачалеРаботыСистемы" вписать.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.12.2013, 11:53 3
Кстати! Есть у кого нечто готовое в плане автосохранения при круглосуточной работе юзеров:
1. Планировщиком запускается сеанс под юзером "Терминатор", который программно блокирует базу, проверяет активных пользователей до нуля и закрывает базу.
2. Запускается архивирование по окончании сеанса п.1.
3. Блокировка снимается.
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
03.12.2013, 12:12 4
Клиент-сервер, вроде, умеет бэкапиться без выгона юзеров средствами СУБД.
А файловую, работающую 24/7 я и не видел ни разу...
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.12.2013, 12:23 5
Цитата Сообщение от OrkVasya Посмотреть сообщение
Клиент-сервер, вроде, умеет бэкапиться без выгона юзеров средствами СУБД.
Это понятно. Хотелось бы игроцкий вариант. Мне тупо не до написания этой шняги, тем более половина тут сисадминская грядка: как оптимально определить, что сеанс-терминатор закончил работу - раз. и оптимально разблокировать, т.е. напрашивается ещё сеанс "Антитерминатор", который бы разблокировал и сразу закрывался, но, м.б., есть строка с параметрами запуска на разблокировку, которая кроме разблокировки ничего и не делает? Надо сесть и разобраться, но скорее всего этот велосипед уже изобретён.

Добавлено через 1 минуту
Нужна именно дэтэха

Добавлено через 1 минуту
Да! Внедрился в эту тему, поскольку код спецсеанса однотипный.
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
03.12.2013, 13:12 6
Что-то с ключами на блокировку/разблокировку как-то печально, судя по всему.
Как вариант, развлекаться через ключ /uc и вызов какой-нить обработки, которая остальной бардак сделает.

А вообще, интересная задача.

ЗЫ. Наверняка, на инфостарте полно такого. Не удивлюсь, если будут отдельные конфиги для таких дел.
ЗЗЫ. Не сильно уверен, почему так, но 1С, как слышал, рекомендует бэкапить копированием/архивированием файла .1CD. Тут и люд выгонять не нужно...
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.12.2013, 17:33 7
сервер, постгри.
Цитата Сообщение от OrkVasya Посмотреть сообщение
через ключ /uc
Это вполне нормальный вариант: при запуске разблокируется база и сеанс закрывается. Я-то невруб, как отловить завершение предыдущего процесса. тут сисадмнские знания нужны.
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
03.12.2013, 17:43 8
Цитата Сообщение от duk337 Посмотреть сообщение
как отловить завершение предыдущего процесса
У меня, к сожалению, этих знаний нет.
Я когда развлекался с очисткой кэша (пилил ради любопытства свой велосипед), просто считал количество процессов, т.к. они все 1cv8.exe и хрен знает, какой из них к какой базе относится.
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
03.12.2013, 17:49 9
а в файловой базе есть номер сеанса? я чето не припомню...

Добавлено через 2 минуты
ага... есть =)
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 54
03.12.2013, 19:18  [ТС] 10
Есть 2 вопроса, хочу сделать так, чтобы ТОЛЬКО при входе пользователя Админ запускалась эта обработка, сейчас открывает при всех пользователях, что -то не получается, и второе, иначе
ЗавершитьРаботуСистемы(); не самый удачный вариант, как бы сделать что если зашел не админ то ничего не делать, есть такая Функция прерывание Если? .......
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура ПриНачалеРаботыСистемы()
Если ТекущийПользователь=Справочники.Пользователи.ПоискПоНаименованию("Админ")
тогда
ВнешняяФорма = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Имя обработки"); 
 
ИмяФайла = ПолучитьИмяВременногоФайла(); 
ДвоичныеДанные = ВнешняяФорма.ХранилищеВнешнейОбработки.Получить(); 
ДвоичныеДанные.Записать(ИмяФайла); 
 
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); 
Форма.Открыть();
иначе 
ЗавершитьРаботуСистемы();
КонецЕсли;
КонецПроцедуры
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.12.2013, 20:33 11
1. Ход мыслей правильный.
2. Обработку запихнуть в конфигурацию, а не в базу (необязательно, но оптимальней и при отладке, и при запуске. При обновлении система не посчитает это изменением).
3. ТекущийПользователь это не ссылка на справочник Пользователи. Это элемент коллекции ПользователиИнформационнойБазы
1C
1
2
3
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ТекущийПользователь.Имя="Автообмен" Тогда
обр=Обработки.АвтоОбменДанными_МОЯ.Создать();
Далее доступны процедуры модуля обр Экспорт.
1C
1
обр.ВыполнитьАвтоОбмен();
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 54
04.12.2013, 08:40  [ТС] 12
Создал общий модуль мод_ОбщийМодуль в нем
1C
1
2
3
4
5
6
Процедура мод_ВнешняяОбработка() Экспорт
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ТекущийПользователь.Имя="Админ" Тогда
обр=Обработки.ОбменССРМ.Создать();
КонецЕсли;
КонецПроцедуры
В процедуре добавил
1C
1
2
3
4
Процедура ПриНачалеРаботыСистемы()
            
Выполнить мод_ОбщийМодуль;
КонецПроцедуры
В регламентном задании добавил привязку с мод_ОбщийМодуль, Добавил обработку в конфу под именем ОбменССРМ, в общем запускаю под пользователем Админ ничего не происходит, думаю неверное обращение

Добавлено через 3 минуты
Вот бред с ж не вызываю форму. Сейчас посмотрю
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
04.12.2013, 08:50 13
Либо разовая обработка, либо регл.зад. - процедура в ОМ? Не перемудрил?
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 54
04.12.2013, 09:01  [ТС] 14
Норм)Под пользователем Админ не открывает обработку. И как узнать разовая она или нет?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
04.12.2013, 09:08 15
Твоя задача - повесить круглосуточный сеанс с периодическим запуском процедуры? Не надо обработки. Регл задание активизировал с процедурой в ОМ, и достаточно. Сеанс не должен ничего открывать вообще. Тихо работать себе. Главное окно - только чтоб его интерактивно закрыть.
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 54
04.12.2013, 09:19  [ТС] 16
Хм, хотя правда. Чтобы просто компании нужно сделать допустим автообмен 1 раз в день, захожу запускаю под пользователем Админ , открывается обработка , выполняется автообмен. Вроде просто и логично. Для начала нормально вроде.
1C
1
2
3
4
5
6
7
Процедура ПриНачалеРаботыСистемы()
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ТекущийПользователь.Имя="Админ" Тогда
Форма = Обработки.ОбменССРМ.ПолучитьФорму(); 
Форма.Открыть();
КонецЕсли;
КонецПроцедуры
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
04.12.2013, 10:13 17
Не пойму логики. Открыть форму можно и руками. Какая разница: запустить сеанс под "Админ" или открыть форму в текущем сеансе? Если мы хотим планировщик подключить, тогда не надо форму открывать, поскольку "Выполнить" нажать будет некому.
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 54
04.12.2013, 17:34  [ТС] 18
Вы правы , я понял. А как например мне обратиться к форме программно например поставить галочку в определенное поле или выбрать файл выгрузки данных. Мои предположения: с помощью обр=Обработки.ОбменССРМ.Создать(); как бы создаем структуру объектов формы программно и к ним необходимо обращаться?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
04.12.2013, 19:31 19
В обработке заполняются реквизиты ОБЪЕКТА обр.Рекв=знч, форма нужна для только для отладки, когда на экране значениями реквизитов можно манипулировать интерактивно.
Если Процедура в ОМ - Параметры структурой.

Добавлено через 3 минуты
Цитата Сообщение от duk337 Посмотреть сообщение
как оптимально определить, что сеанс-терминатор закончил работу
В соседнем посте отгадка: в батнике /wait в строке запуска сеанса https://www.cyberforum.ru/1c/thread1028045.html
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
04.12.2013, 20:57 20
Цитата Сообщение от duk337 Посмотреть сообщение
в батнике /wait в строке запуска сеанса
Хм... а он ожидает окончание именно текущего процесса 1С?
0
04.12.2013, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2013, 20:57
Помогаю со студенческими работами здесь

1с 7.7 Вызов процедуры внешней обработки из другой внешней обработки
Здравствуйте всем! Вопрос такой: Есть внешняя обработка Обработка1. Обработка1 запускается через...

Выполнение внешней обработки
Была выгружена обработка с ЗУП 2,5, подогнали все данные под ЗУП 3.1, загрузили в "дополнительные...

Создание внешней обработки 2.0
В документе Отчет о розничных продажах на основании уже вбитой номенклатуры по обработке заполнить...

ПолучитьФорму внешней обработки
Есть внешняя обработка("Форма"),в ней форма-"Форма".Подключенная через внешние формы и...


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

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