Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0
Здравствуйте форумчане. Решив проблему со сканером, описанную ЗДЕСЬ вышел на последний этап. Теперь нужно обработку которая сейчас работает со сканером сделать фоновой, т.е. так чтобы оператор 1С каждый раз не сворачивал-разворачивал её, а выполнял свои задачи, а обработка висела "в фоне". Подскажите как можно сделать... методом научного тыка (в Гугле не нашел каких то подходящих решений) запихивал процедуры во все модули, начиная с модуля управляемого приложения, модуля сеанса, внешнего соединения и заканчивая модулем обычного приложения... не реагирует никак. в обработке основная Процедура ВнешнееСобытие + Процедура ОбработкаПодбора, а дальше штатные из конфигурации из вышеупомянутых модулей... Но, воз и ныне там... Помогите, пжалста...
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
В модуле обычного приложения есть обработчик ВнешнееСобытие, думаю вам туда. И где-то там же должна быть переменная которая хранит форму в которую должен помещаться результат сканирования.
Личные бесплатные консультации не даю, для этого есть форум!
Это само собой, но внешнему событию надо понимать в какую форму передавать ввод, иначе он будет в активную.
Точно Тогда наверное ловить в модуле приложения в процедуре ОбработкаВнешнегоСобытия() и передавать в какой-то свой дополнительный общий модуль для обработки. По идее так будет и без формы работать. А если надо в форме обработки "в фоне", то делаем обработчик события для этой формы:
и если я правильно понимаю то сразу после открытия базы я просто пикну сканером и должен попасть в эту процедуру после Иначе в //Событие от торгового оборудования. Ставлю после Иначе точку останова и не попадаю туда...
sanytch @ Сегодня, 21:47
, А не заходит сюда потому что при запуске видимо нужно подключать сканер... в обработке:
Процедура ПриОткрытии()
ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
но в модуле обычного приложения так низя) какая такая ЭтаФорма... Подскажите Как заставить 1С-ку подкючить СШК сразу при открытии?
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 0 раз
Рейтинг: 0
Flexy @ Сегодня, 12:07
, Спасибо за ответ. Идея "без формы" вообще классная, но моя обработка с таблицей, где все данные о сканированных объектах плюс выбор типа цены и всякое другое. Да и с реализацией этой идеи, думаю, мне будет тяжко справится и долго, а время, как раз то, чего у меня нет. А вот про
Цитата
А если надо в форме обработки "в фоне", то делаем обработчик события для этой формы: Процедура ВнешнееСобытие(Источник, Событие, Данные)
ОбработатьДанныеВФоне(Данные);
КонецПроцедуры // ВнешнееСобытие()
если не затруднит подробнее, не совсем вашу мысль улавливаю. У меня из Процедуры ВнешнееСобытие вызывается первым делом ПолучитьСерверТО().ОбработатьВнешнееСобытие(Источник, Событие, Данные, ЭтаФорма) а потом пролетав по разным общим модулям возвращаюсь в обработку в процедуру ОбработкаПодбора(ТабличнаяЧасть, ЗначениеВыбора) где заполняю ТЧ на форме номенклатурой штрихкода. дальше танцы с бубнами со сканером и т.д. и т.п. Чтобы было понятнее обработка моя это сильно урезаный документ ЧекККМ из УТП(более точно о конфе и платформе в теме вопроса). Ваш вариант позволит даже при свёрнутой форме всё это проделать? Не пойму как это возможно, ведь внешнее событие может возникнуть только при активной форме... Или я об этом не знаю? Не обессудьте ибо уже бьюс неделю по ночам с этим чудным сканером...
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(sanytch @ 03.03.17, 23:35)
но в модуле обычного приложения так низя) какая такая ЭтаФорма
Вы плохо читали/поняли мое сообщение. В модуле обычного приложения создайте глобальную переменную, при открытии формы в которую будет помещаться результат сканирования после подключения оборудования (ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма) добавляйте глФормаДляРезультатаСканирования = ЭтаФорма; Только не забудьте ПриЗакрытии формы сделать глФормаДляРезультатаСканирования = Неопределено. В модуле обычного приложения в обработке внешнего события после Иначе добавьте
Если глФормаДляРезультатаСканирования <> Неопределено Тогда ПолучитьСерверТО().ОбработатьВнешнееСобытие(Источник, Событие, Данные, глФормаДляРезультатаСканирования); Возврат; // Или по другому определите окончание, так что бы дальше код не выполнялся КонецЕсли
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!