Вообще-то сегодня у меня на очереди была друга тема, а именно - программное создание документа «Корректировка записей регистров» (в продолжение «Как программно создать и заполнить документ «Операция»). Но мне очень хотелось, чтобы пример для нее был реальный, из жизни. Пример-то я придумал, но с ним вышла небольшая заминка. И чтобы пауза долго не затягивалась, я пока решил переключиться на что-нибудь другое.
Сегодня у меня совсем простая «объяснялка» на тему Как прервать выполнение обработки в 1С 8. Судя по статистике того же Яндекса, этим вопросом регулярно интересуются, поэтом я счел нужным упомянуть о нем в дневнике.
Кто работал с 1С версии 7.7, тот знает, что любую обработку можно было прервать нажатием клавиши Esc. Эта возможность была встроена непосредственно в платформу 1С версии 7.7. И пользователи, и программисты к ней привыкли, поэтому отсутствие функции прерывания в восьмой версии платформы 1С:Предприятие вызывала недоумение.
На самом же деле в 1С 8 с прерыванием обработок все в порядке. Разработчики платформы поступили мудро, предоставив управление прерыванием модулей программистам-разработчикам конфигураций. Для этого в список процедур и функций интерактивной работы была включена процедура ОбработкаПрерыванияПользователя(). Данная процедура предназначена для прерывания работы встроенного языка при нажатии пользователем клавиш Ctrl+Break. Процедура ОбработкаПрерыванияПользователя() проверяет, были ли нажаты клавиши Ctrl+Break. Если да, то выполнение встроенного языка прекращается и выдается сообщение «Выполнение прервано пользователем!».
Данную процедуру рекомендуется использовать внутри циклов, если есть подозрение, что выполнение цикла может затянуться надолго. Упрощенно это можно представить так:
Пока ВыполняетсяУсловие Цикл //Внутри цикла выполняются необходимая работа //............................... //В конце цикла осуществляется проверка //необходимости прерывания выполнения программы ОбработкаПрерыванияПользователя(); КонецЦикла;
Обратите внимание, что процедура ОбработкаПрерыванияПользователя будет работать только в тех случаях, когда допускается прерывание выполнения модулей. Платформа 1С 8 допускает прерывание выполнения, если оно инициировано определенным интерактивным действием пользователя, такими как:
- нажатие кнопки в форме;
- выбор пункта меню или кнопки командной панели в форме;
- выбор пункта меню или кнопки панели инструментов интерфейса;
- действия, инициируемые обработчиками событий «Выбор» элементов управления.
Процедура не используется на сервере 1С:Предприятие, а также в модуле внешнего соединения.
P. S. Пользуясь случаем, хочу напомнить Вам об акции по обмену ссылками. Первый обмен в рамках акции уже состоялся.
А как запрос прервать?
ОтветитьУдалитьА как запрос прервать?
ОтветитьУдалить