Версия для печати темы (https://pro1c.org.ua/index.php?s=3fac0e6d2ef4413ee9f5def675748625&showtopic=5459)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Обработка ожидания в своей обработке
Автор: Vofka 24.11.11, 22:05
Давненько я уже с клюшками не работал, подзабыл многое, но вот пришлось вспоминать .
Есть внешняя обработка. В ней надо вызывать раз в определённое время какую-то процедуру из её же модуля формы. Т.е. жмём кнопку "Старт" и 1 раз в 5 минут срабатывает процедура в обработке ВызываемаяПроцедура(). В клюхах обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля? Короче, как правильно реальзовать то, что мне надо?
Автор: -=VJ=- 25.11.11, 0:03
Цитата(Vofka @ 24.11.11, 22:05)
обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля?
Недокументированно можно работать и с локальной формой, но может быть всякое.
Автор: alex1c 25.11.11, 8:28
Цитата(Vofka @ 24.11.11, 22:05)
В клюхах обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля? Короче, как правильно реальзовать то, что мне надо?
В глоб. модуле в обработке ожидания открываете вашу обработку, в процедуре при открытии прписываете выполнение ВызываемаяПроцедура() и получаете что надо. Все просто.
Автор: Vofka 25.11.11, 8:49
Цитата
В глоб. модуле в обработке ожидания открываете вашу обработку, в процедуре при открытии прписываете выполнение ВызываемаяПроцедура() и получаете что надо.
Я хотел по красивей сделать: кнопочки "Старт/Стоп", запуск по расписанию и всё такое
.
За оба ответа спасибо, буду вечером эксперементировать!
Автор: Vofka 26.11.11, 13:15
Цитата
Недокументированно можно работать и с локальной формой, но может быть всякое.
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.
Процедура Вкл()
ОбработкаОжидания("Тест", "5")
КонецПроцедуры
Процедура Выкл()
ОбработкаОжидания("Тест", "0")
КонецПроцедуры
Процедура Тест()
Сообщить("тест");
КонецПроцедуры
Не фурычит
.
Не трогал процедуру Тест() в обработке, сделал процедуру в глобальном модуле
Процедура Тест()
Сообщить("тест из ГМ");
КонецПроцедуры
Так вот обработка ожидания вызывает именно её. Так жалко
.
Автор: Читатель 27.11.11, 1:49
Цитата(Vofka @ 26.11.11, 14:15)
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.
Процедура Вкл()
ОбработкаОжидания("Тест", "5")
КонецПроцедуры
Процедура Выкл()
ОбработкаОжидания("Тест", "0")
КонецПроцедуры
Процедура Тест()
Сообщить("тест");
КонецПроцедуры
Не фурычит
.
Не попробовал
и расположить процедуру Тест() перед Вкл() и Выкл() ? Вдруг зафурычит.
Автор: alex1c 27.11.11, 9:21
Цитата(Vofka @ 26.11.11, 13:15)
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.
Так вот обработка ожидания вызывает именно её. Так жалко
.
Уважаемый Vofka вы не правильно подошли к решению этого вопроса. Как любят говорить в армии: "Учи мат. часть...".
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя
процедуры глобального модуля, которая будет вызываться периодически с временным интервалом.
Если вы хотите вызвать процедуру из вашей обработки, то что вам мешает в глоб. модуле в процедуре Тест() сделать такое
Процедура Тест()
Параметр = "Список параметров";
ОткрытьФорму("Отчет", Параметр, КаталогИБ()+"Extforms\МояОбработка.ert");
КонецПроцедуры
Ну а в параметр передавать через глоб. переменную (напр. глРасшифровка) что угодно. В "МояОбработка" обрабатываете процедуру ПриОткрытии() на наличие Форма.Параметр и запускаете процедуру в обработке "МояОбработка". Фсе...
ЗЫ. А еще в в глРасшифровка можно передать контекст ваше обработки... Не знаю что получится, надо пробовать.
Автор: -=VJ=- 28.11.11, 8:05
Цитата(Читатель @ 27.11.11, 1:49) http://pro1c.org.ua/index.php?act=findpost&pid=37659
Уважаемый Vofka вы не правильно подошли к решению этого вопроса. Как любят говорить в армии: "Учи мат. часть...".
Прежде чем учить других, стоило бы подучиться самому
Автор: Vofka 28.11.11, 9:01
Буду вечерком ещё пробовать. Потом отпишу
Автор: alex1c 28.11.11, 9:59
Цитата(-=VJ=- @ 28.11.11, 8:05)
Прежде чем учить других, стоило бы подучиться самому ;)
Согласен, я не прав. Но в справке ясно написано:
"Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени."
И в догонку:
"Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. и т.д."
А ваш вариант уважаемый -=VJ=- действительно работает.
Автор: -=VJ=- 28.11.11, 11:03
Цитата(alex1c @ 28.11.11, 9:59)
Согласен, я не прав. Но в справке ясно написано:
Настоятельно советую Вам почитать справку о недокументированных функциях 1С - иногда эти знания здорово облегчают жизнь
Автор: alex1c 28.11.11, 12:26
Цитата(-=VJ=- @ 28.11.11, 11:03)
Настоятельно советую Вам почитать справку о недокументированных функциях 1С - иногда эти знания здорово облегчают жизнь ;)
А ссылочки часом нет, или на почту скинуть? (alex1c@ukr.net)
Автор: mister-x 28.11.11, 12:30
Цитата
А ссылочки часом нет, или на почту скинуть? (alex1c@ukr.net)
http://pro1c.org.ua/redirect.php?http://1c.proclub.ru/modules/mydownloads/personal.php?cid=124&lid=2716, кидаєте в папку BIN - і в синтакс-допомозі бачите новий розділ
Продовження теми http://pro1c.org.ua/index.php?showtopic=5489.
Автор: Vofka 29.11.11, 16:23
-=VJ=-, таки да, работает . Спасибо!
ЗЫ. Почитил тему от офтопа и переместил сообщения в тему из поста выше.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua