Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обработка ожидания в своей обработке
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Vofka
Давненько я уже с клюшками не работал, подзабыл многое, но вот пришлось вспоминать smile.gif .

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


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

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

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

За оба ответа спасибо, буду вечером эксперементировать! smile.gif
Vofka
Цитата
Недокументированно можно работать и с локальной формой, но может быть всякое.

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

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

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

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


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

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

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


Так вот обработка ожидания вызывает именно её. Так жалко sad.gif .
Читатель
Цитата(Vofka @ 26.11.11, 14:15) необходимо зарегистрироваться для просмотра ссылки
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.

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

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

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


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


Не попробовали расположить процедуру Тест() перед Вкл() и Выкл() ? Вдруг зафурычит.
alex1c
Цитата(Vofka @ 26.11.11, 13:15) необходимо зарегистрироваться для просмотра ссылки
Поставил обработку ожидания в обработке с вызовом процедуры из обработки.

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

Уважаемый Vofka вы не правильно подошли к решению этого вопроса. Как любят говорить в армии: "Учи мат. часть...".

ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом.
Если вы хотите вызвать процедуру из вашей обработки, то что вам мешает в глоб. модуле в процедуре Тест() сделать такое
Процедура Тест()
    Параметр = "Список параметров";
    ОткрытьФорму("Отчет", Параметр, КаталогИБ()+"Extforms\МояОбработка.ert");
КонецПроцедуры

Ну а в параметр передавать через глоб. переменную (напр. глРасшифровка) что угодно. В "МояОбработка" обрабатываете процедуру ПриОткрытии() на наличие Форма.Параметр и запускаете процедуру в обработке "МояОбработка". Фсе...
ЗЫ. А еще в в глРасшифровка можно передать контекст ваше обработки... Не знаю что получится, надо пробовать.
-=VJ=-
Цитата(Читатель @ 27.11.11, 1:49) необходимо зарегистрироваться для просмотра ссылки
Не попробовали расположить процедуру Тест() перед Вкл() и Выкл() ? Вдруг зафурычит.


Вы тоже неправильно написали smile.gif
Это же локальный контекст, через форму.
потому правильно будет так:

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

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

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



Цитата(alex1c @ 27.11.11, 9:21) необходимо зарегистрироваться для просмотра ссылки
Уважаемый Vofka вы не правильно подошли к решению этого вопроса. Как любят говорить в армии: "Учи мат. часть...".


Прежде чем учить других, стоило бы подучиться самому wink.gif
Vofka
Буду вечерком ещё пробовать. Потом отпишу smile.gif
alex1c
Цитата(-=VJ=- @ 28.11.11, 8:05) необходимо зарегистрироваться для просмотра ссылки
Прежде чем учить других, стоило бы подучиться самому ;)

Согласен, я не прав. Но в справке ясно написано:
"Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени."
И в догонку:
"Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. и т.д."
А ваш вариант уважаемый -=VJ=- действительно работает.
-=VJ=-
Цитата(alex1c @ 28.11.11, 9:59) необходимо зарегистрироваться для просмотра ссылки
Согласен, я не прав. Но в справке ясно написано:


Настоятельно советую Вам почитать справку о недокументированных функциях 1С - иногда эти знания здорово облегчают жизнь wink.gif
alex1c
Цитата(-=VJ=- @ 28.11.11, 11:03) необходимо зарегистрироваться для просмотра ссылки
Настоятельно советую Вам почитать справку о недокументированных функциях 1С - иногда эти знания здорово облегчают жизнь ;)

А ссылочки часом нет, или на почту скинуть? (alex1c@ukr.net)
mister-x
Цитата
А ссылочки часом нет, или на почту скинуть? (alex1c@ukr.net)
необходимо зарегистрироваться для просмотра ссылки, кидаєте в папку BIN - і в синтакс-допомозі бачите новий розділ

Продовження теми необходимо зарегистрироваться для просмотра ссылки.
Vofka
-=VJ=-, таки да, работает smile.gif . Спасибо!

ЗЫ. Почитил тему от офтопа и переместил сообщения в тему из поста выше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.