Версия для печати темы (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

Давненько я уже с клюшками не работал, подзабыл многое, но вот пришлось вспоминать smile.gif .

Есть внешняя обработка. В ней надо вызывать раз в определённое время какую-то процедуру из её же модуля формы. Т.е. жмём кнопку "Старт" и 1 раз в 5 минут срабатывает процедура в обработке ВызываемаяПроцедура(). В клюхах обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля? Короче, как правильно реальзовать то, что мне надо? smile.gif

Автор: -=VJ=- 25.11.11, 0:03

Цитата(Vofka @ 24.11.11, 22:05) *
обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля?


Недокументированно можно работать и с локальной формой, но может быть всякое.

Автор: alex1c 25.11.11, 8:28

Цитата(Vofka @ 24.11.11, 22:05) *
В клюхах обработку ожидания можно только в глобальном модуле вызывать и использовать процедуру глобального модуля? Короче, как правильно реальзовать то, что мне надо? smile.gif

В глоб. модуле в обработке ожидания открываете вашу обработку, в процедуре при открытии прписываете выполнение ВызываемаяПроцедура() и получаете что надо. Все просто.

Автор: Vofka 25.11.11, 8:49

Цитата
В глоб. модуле в обработке ожидания открываете вашу обработку, в процедуре при открытии прписываете выполнение ВызываемаяПроцедура() и получаете что надо.

Я хотел по красивей сделать: кнопочки "Старт/Стоп", запуск по расписанию и всё такое smile.gif .

За оба ответа спасибо, буду вечером эксперементировать! smile.gif

Автор: Vofka 26.11.11, 13:15

Цитата
Недокументированно можно работать и с локальной формой, но может быть всякое.

Поставил обработку ожидания в обработке с вызовом процедуры из обработки.

Процедура Вкл()
    ОбработкаОжидания("Тест", "5")
КонецПроцедуры

Процедура Выкл()
    ОбработкаОжидания("Тест", "0")
КонецПроцедуры

Процедура Тест()
    Сообщить("тест");
КонецПроцедуры


Не фурычит sad.gif .

Не трогал процедуру Тест() в обработке, сделал процедуру в глобальном модуле

Процедура Тест()
    Сообщить("тест из ГМ");
КонецПроцедуры


Так вот обработка ожидания вызывает именно её. Так жалко sad.gif .

Автор: Читатель 27.11.11, 1:49

Цитата(Vofka @ 26.11.11, 14:15) *
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.

Процедура Вкл()
    ОбработкаОжидания("Тест", "5")
КонецПроцедуры

Процедура Выкл()
    ОбработкаОжидания("Тест", "0")
КонецПроцедуры

Процедура Тест()
    Сообщить("тест");
КонецПроцедуры


Не фурычит sad.gif .


Не попробовали расположить процедуру Тест() перед Вкл() и Выкл() ? Вдруг зафурычит.

Автор: alex1c 27.11.11, 9:21

Цитата(Vofka @ 26.11.11, 13:15) *
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.

Так вот обработка ожидания вызывает именно её. Так жалко sad.gif .

Уважаемый 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 вы не правильно подошли к решению этого вопроса. Как любят говорить в армии: "Учи мат. часть...".


Прежде чем учить других, стоило бы подучиться самому wink.gif

Автор: Vofka 28.11.11, 9:01

Буду вечерком ещё пробовать. Потом отпишу smile.gif

Автор: 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С - иногда эти знания здорово облегчают жизнь wink.gif

Автор: 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=-, таки да, работает smile.gif . Спасибо!

ЗЫ. Почитил тему от офтопа и переместил сообщения в тему из поста выше.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua