Черняев Илья

6
Рейтинг

ivcsar
Илья Черняев



  •   Регистрация: 03.03.2011 (13 лет назад)

  •   Был(а) на сайте: 20.12.2022

Подписчики 1

Рейтинг 6

Шаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m) Архив с данными Разработка внешних компонент

Для прерывания цикла в 1С Предприятии имеется процедура ОбработкаПрерыванияПользователя. Метод проверяет, была ли нажата пользователем клавиша Ctrl+Break. Если клавиша была нажата, то выполнение встроенного языка прекращается и выдается соответствующее сообщение. Но иногда необходимо после выхода из цикла совершить какие-либо действия (записать в файл результаты, закрыть файл и т.п.). В данной реализации цикл выполняется в фоновом режиме. Во время выполнения доступны интерфейсные элементы управления, с помощью которых можно остановить выполнение цикла.

1 стартмани

20.06.2012    5075    22    ivcsar    19       

6

Комментарии

ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#17 09.07.12 14:16
В новую версию компоненты добавил функцию 'KeyMessage', позволяющую обрабатывать нажатия клавиш. Параметрами функции являются объект и имя функции объекта, которая вызывается внутри 'KeyMessage'. Функция объекта должна иметь три параметра: номер сообщения и два дополнительных параметра. Пример использования в прилагаемой обработке
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#16 04.07.12 10:51
(15) vec435, Прошу прощения за долгое молчание. Разбираюсь. Что-то компонента под 8.2 отказывается работать
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#12 02.07.12 12:10
(11) vec435, Насколько я понял, последовательность такая: зажимается клавиша -> с помощью каких-либо стандартных механизмов 1C открывается форма -> в событии 'ПриОткрытии' читается клавиша -> отпускается клавиша. Пока форма не открылась клавишу отпускать нельзя для 100% гарантии фиксации нажатия клавиши функцией чтения клавиш. С трудом представляю для чего это нужно
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#10 29.06.12 17:04
(9) vec435, Если нажатие клавиши вызвало открытие формы, то в событии "ПриОткрытии", при попытке прочитать очередь сообщений Windows, сообщения от нажатия клавиши, скорее всего, уже не будет. Система уже его оттуда извлечет. А если по-другому, то нужно умудриться открывать форму и нажимать клавишу в один и тот же момент времени.
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#8 29.06.12 9:56
(7) vec435, Я неправильно назвал этот механизм "горячие клавиши". Прошу прощения. Я имел в виду использование сочетаний клавиш для элементов управления на формах 1С. Кнопки, пункты меню и пр. имеют свойство "СочетаниеКлавиш". Может это Вам подойдет. А если по другому, то надо писать COM объект, выполняющий перехват функциии обработки окна Windows, или ставить хук на главное окно приложения. Можно, конечно, чуть-чуть доработать функцию, приведенную выше, и вызывать ее в обработчике ожидания, но это далеко не всегда будет срабатывать
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#5 28.06.12 10:27
(3) vec435, Не совсем понял, что нужно. Мне кажется, что стандартными средствами 1С это можно сделать. Например, с помощью "горячих" клавиш
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#2 20.06.12 14:26
Чтобы интерфейсные элементы управления были доступны нужно обрабатывать события Windows. В 1С таких средств нету. Можно попробовать что-нибудь вроде 'Оповестить' вместо 'XCom.Getmessage()' и отлавливать событие в форме. Но, мне кажется, эффекта не будет
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#0 19.06.12 16:37
Для прерывания цикла в 1С Предприятии имеется процедура ОбработкаПрерыванияПользователя. Метод проверяет, была ли нажата пользователем клавиша Ctrl+Break. Если клавиша была нажата, то выполнение встроенного языка прекращается и выдается соответствующее сообщение. Но иногда необходимо после выхода из цикла совершить какие-либо действия (записать в файл результаты, закрыть файл и т.п.). В данной реализации цикл выполняется в фоновом режиме. Во время выполнения доступны интерфейсные элементы управления, с помощью которых можно остановить выполнение цикла.
ВКШаблон циклической обработки данных в фоновом режиме на клиенте. Прерывание обработки кнопкой на форме#0 19.06.12 16:37
Для прерывания цикла в 1С Предприятии имеется процедура ОбработкаПрерыванияПользователя. Метод проверяет, была ли нажата пользователем клавиша Ctrl+Break. Если клавиша была нажата, то выполнение встроенного языка прекращается и выдается соответствующее сообщение. Но иногда необходимо после выхода из цикла совершить какие-либо действия (записать в файл результаты, закрыть файл и т.п.). В данной реализации цикл выполняется в фоновом режиме. Во время выполнения доступны интерфейсные элементы управления, с помощью которых можно остановить выполнение цикла.