v7: Активизировать поле формы или АктивизироватьОбъект() #757401


#0 by Mikhail Volkov
В продолжение темы (почему-то закрыта для меня!?) Понадобилось, чтобы фокус формы автоматически возвращался в мое поле для "ШтрихКодПоиска". Посоветовали вставить Активизировать("ШтрихКодПоиска",0); в любую функцию формы. Вставил: Появилась ошибка: {Справочник.Товары.ФормаСписка.ДляЧеков.Модуль}: В данной формуле не может быть вызвана эта процедура(функция) Пришлось за комментировать. Далее, для своего поля "ШтрихКодПоиска" прописал функцию, взятую из Своего ничего не придумывал. Дает аналогичную ошибку: АктивизироватьОбъект(Табл.ВладелецШК); {Справочник.Товары.ФормаСписка.ДляЧеков.Модуль}: В данной формуле не может быть вызвана эта процедура(функция) Почему?
#1 by Ёпрст
потому, что [:]|||||||||||||||:] используй ложное закрытие формы или открытие пустышки-модальной формы с статусотказа=о в при открытии для не потери фокуса ввода
#2 by Ёпрст
#3 by Mikhail Volkov
Нашел в "с точки зрения 1С нельзя перепрыгнуть на другой реквизит программно влоб если ещё активен текущий", и как быть?
#4 by Ёпрст
читать вниматочно, что вам пишут в ответ.
#5 by Mikhail Volkov
Это в ? Пример бы...
#6 by HawkEye
в том месте где надо активировать запомнить идентификтор поля и вызвать закрытие формы.. в ПриЗакрытии посмотреть можно закрывать или нет, если нет то активизировать нужное поле и отменить закрытие..
#7 by Mikhail Volkov
А имитировать нажатие клавиши Tab как?
#8 by Chameleon1980
слушайте внимательно про ложное закрытие. Самому именно так мне тут недавно помогли. Еще раз спасибо добрым людям.
#9 by Mikhail Volkov
"Ложное закрытие" работает, но как-то громоздко... Когда курсор находится в табличных частях: списка товара, или отобранного товара активизация моего поля поиска по штрих-коду ошибки не вызывает. Но оказалось, что иногда этот режим надо отключать, например, пришел "оптовик" с большим списком. Тогда продавцы подбирают товар по наименованию. Если курсор автоматом уходит на мое поле, то "стрелочки" не работают. Попросили сделать галочку "Работа со сканером", сделал. Но когда они ее включают появляется ошибка "В данной формуле не может быть вызвана эта процедура(функция)". "Ложное закрытие" работает, но достаточно нажать Tab, чтобы курсор перешел в мое поле поиска. Можно имитировать нажатие клавиши Tab, как?
#10 by Chameleon1980
мож формекс
#11 by Mikhail Volkov
Без него при установки моей галки "Работа со сканером" автоматический переход на следующее поле (имитировать нажатие клавиши Tab) никак?
#12 by Chameleon1980
как... гугл рулит
#13 by Chameleon1980
ищите senkeys в 1с например вот
#14 by Mikhail Volkov
Спс. Тоже не пара строк получается, лучше оставлю "Ложное закрытие".
#15 by Mikhail Volkov
Еще непонятный момент всплыл, в коде когда по штрих-коду найден только один товар, мы его АктивизироватьОбъект, и курсор встает на него. А когда найдено несколько, то пользователю предлагается выбрать нужный: Табл.ВыбратьСтроку(ВремСтрока,"Выберите товар") в этом случае АктивизироватьОбъект(Табл.ПолучитьЗначение(ВремСтрока,"ВладелецШК")); уже не срабатывает, курсор остается там где был!?
#16 by Mikhail Volkov
+ точнее в начало списка курсор стает.
#17 by Злопчинский
Проверить что возвращает
#18 by Mikhail Volkov
Думал над этим, даже так написал: В сообщении правильно пишет, но курсор не переходит на выбранный товар.
#19 by Mikhail Volkov
+ А что должно быть? На Сообщить("Выбранный товар: "+СпрТов.ТекущийЭлемент+" / "+ТипЗначенияСтр(ВыбранныйТовар)+" / "+ТипЗначенияСтр(СпрТов.ТекущийЭлемент)); пишет: Выбранный товар: 1000 секретов. Спецвыпуск 20С/15 Экономим правильно / Справочник / Справочник
#20 by Mikhail Volkov
Понял, в форме фильтр стоит по остаткам. Если его снять, то курсор встает на выбранный товар.
#21 by Злопчинский
Это ты быстро справился... я сегодня суммарно часов 8 тупил - в глубинах стеков вызовов транзакцию не зафиксировал...
#22 by Злопчинский
кстати в форме можно получить условие отбора и при необходимости его отключать
#23 by Mikhail Volkov
Выбранный товар есть на остатке, в форме подбора доступен. Но не активизируется, когда стоит фильтр по остаткам, и выбирается из таблицы значений (когда найдено несколько товаров с одним штрих-кодом). Когда фильтр снят, или найден один товар (не предлагается выбирать из таблицы), то нормально активизируется! Может и активизируется, но после выбора из таблицы форма обновляется, и курсор уходит в начало списка? Этот момент понять не могу.
#24 by Злопчинский
нет, если стоит фильтр (то есть отбор на форме списка) - то просто активизировать - не находит и прыгает в начало. ты фигню какую-то лепишь. вникни что выше написано. формы для акттивной работы со скангером или попеременной работы сканер-ручки - надо вдумчиво дизайнерить. Штатные флормы вообще бяка. сядь нарисуй на листике что НАДО (не как должно быть а ЧТО НАДО - а как уже сделать - потом определять. Не надо делать мегаэкран с мегакнопочками в диком количестве и многими таблицами. сделай нескольо экранов с быстрым удобным ручным или автопереключением (по контексту). В твоем примере - вот нахера позиционироваться в списке на элемент (который еще и невидим?) - ты сам уже потерялся, а как будут тупить персональи? - отсканировал шк, что надо сделать с этим товаром известно? - в подавляющем колве случаев - ДА - или выбрать его или отказаться (иногда посмотреть на кучку похожих) - вот отсканировал - товар нашли - открой офрму с данными для просмотра - по энтеру - выбор, по ескапу отказ, при нажатии цифровых клавиш - считаем что вводится количество - его показываем на форме. все. будь проще
#25 by Mikhail Volkov
> просто активизировать - не находит и прыгает в начало. Просто интересно стало, почему когда 1 товар найден активируется, а когда несколько (надо выбрать из предложенного) - нет. > что надо сделать с этим товаром известно? - в подавляющем колве случаев - ДА Дальше все путем идет, найденный/выбранный товар переносится в таблицу отобранных товаров независимо "активировался" он или нет. А далее при закрытии формы подбора переносится в чек.
#26 by Злопчинский
" а когда несколько (надо выбрать из предложенного) - нет. " - как напрограммленно так и работаент видимо
#27 by Mikhail Volkov
#28 by Mikhail Volkov
Этот фрагмент взят без изменений из Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) формы списка товаров. Перенес в форму подбора для чека, в которой есть отбор по остаткам. Если фильтр отключен, то АктивизироватьОбъект в ней тоже работает при выборе товара из таблицы. Сперва я подумал товара нет в наличии, поэтому не находит и прыгает в начало. Но это не так, товар есть и доступен в форме. Особенность 7-ки? Как будь то вновь на велосипед сел после мерса.
#29 by МимохожийОднако
В 7-ке не так как в 8-ке. Смирись с этим. В СП про метод АктивизироватьОбъект написано, когда срабатывает. Тебе в идея вполне реально описана.
#30 by Mikhail Volkov
Да проблемы то нет , чисто "спортивный" интерес. Давно с 7-кой не работал.
#31 by Злопчинский
"...Этот фрагмент взят без изменений из Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) формы списка товаров..." - сомневаюсь я сильно насчет этого. стиль написания и именования весьма нехарактерен для типовой ТиС
#32 by Mikhail Volkov
Штрих-М: Торговое предприятие PROF v.4.10
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С