Поле ввода не активно 1с
Всем добрый вечер и с наступающим Задача следующая Есть форма, в ней поле Сканирование В это поле сканером в режиме эмуляции клавиатуры будут сканировать штрихкода. То есть то же самое что ввести с клавиатуры что-то и нажать Enter. После сканирования (нажатия Enter) нужно, чтобы фокус оставался в этом же поле. Последней строчкой обработки ПриИзменении пишу Проверяю - и до и после этой строчки именно нужный мне элемент является текущим. Но после выхода из процедуры почему-то фокус перескакивает на следующее поле. Если сделать ПоведениеКлавишиEnter = Кнопка по умолчанию, то этого не происходит. Но как-то и проводить и закрывать документ по Enter'у не хочется Есть какие-нибудь варианты это обойти?
Проще научиться работать с драйвером сканера штрих-кода,чтобы событие от сканера обрабатывалось правильно
У меня несколько обработок на таком принципе работают в том числе со смартфонов через рдп, единственно у поля ввода штрихкода свойство ОбновлениеТекстаРедактирования вместо Авто стоит в При изменении значения, остальное вроде штатно. Платформа там правда 8.3.8
+ Почему ОбновлениеТекстаРедактирования менял не помню точно, глюк какой-то был. А формы то, кстати, управляемые или обычные? У меня управляемые.
да где-то читал про такой вариант, но что-то мне он не очень нравится Думаю могут быть глюки, если будет очень быстро несколько сканирований?
Так и работают - одно поле для ввода штрихкода на котором постоянно фокус, какие-то дополнительные кнопки, после нажатия на которые фокус также возвращается на поле ввода штрихкода, сканеры в режиме эмуляции клавиатуры.
Не обязательно, кстати, можно установить драйвер "1С:Сканеры штрихкода (NativeApi)" и в качестве порта выбрать "Клавиатура". Но, повторюсь, и так должно работать.
Сделай поле ввода единственным активным элементом на форме.Не вижу никакой необходимости на форму обработки сканирования вешать какие-то дополнительные кнопки.
если хочется извращений, то можно сделать поле многострочным с высотой 1, и обрабатывать событие изменения текста
подход не верен.нужно делать обработку события из вк, или откуда там прилетают данные(даже если это эмуляция клавиатуры), гемора не будет
Есть документ (например, "Расходный кассовый ордер") с 2-мя вкладками: По одной сделке и По нескольким сделкам.
При открытии документа с одной сделкой открывается форма с вкладкой "По одной сделке", на ней расположены поля ввода, но они не активны - недоступны для редактирования.
При переключении на вкладку "По нескольким сделкам" и изменении в строке значения одного поля, а потом переключении обратно на вкладку "По одной сделке", поле значение которого было изменено в таблице становиться активным - доступным для редактирования.
Явного изменения доступности в коде нигде нет. Что может быть? Необходимо, чтобы при открытии сразу поля ввода были активны, без лишних "телодвижений".
Доступность выбранных полей в СКД в зависимости от параметра
Добрый день. Есть булеватый параметр Если он - правда, то надо в СКД показывать 2 столбца если.
Доступность и не доступность флажка на форме
На форме установлен флажок. При определенных условиях необходимо, что бы он, оставаясь ВИДИМЫМ.
Автозаполнение полей ввода
1с 8.2 Подскажите как поступить. Есть Форма с полями ФИО и Адресс. Эти данные хранятся в.
Доступность полей и методов в классе
Расскажите , пожалуйста , про доступ к полям методам и свойствам в классе. Делаю программу и.
Должна быть активизирована первая запись (она-то и является "по одной сделке") в ТЧ.РасшифровкаПлатежа. При открытии она добавляется в случае отсутствия. Это штатно происходит, вообще-то. Видать, кто-то гвоздиком поковырял.
Добавлено через 2 минуты
Причём, активная запись не есть тип строка тч, а тип Текущиеданные таб.поля
Гвоздиком ковыряюсь я - еще для одного вида операции делаю разделение по одной сделке или нескольким.
При открытии строка в РасшифровкеПлатежа есть, поэтому ничего не добавляется, но и для редактирования данная строка получается недоступна. (Может я где забыла чего-то перенести )
а текущие данные только для чтения, доступности то ведь у них нет.
Добавлено через 10 минут
Причем поле становится активным, после того как я в ТЧ именно выберу значение (ДДС), если я просто строку ТЧ активизирую и перейду на вкладку по одной сделке, то поле доступным не будет.
Мое почтение. Следующая проблема. Необходимо после нажатия на кнопку возвращать активность на поле ввода.
Через установку текущего элемента получается решить проблему частично. Да, теперь при вводе информации, данные будут вводиться в него, но горизонтальной мигающей черты, сигнализирующей о том, что поле активно: пожалуйста, вводите; не появляется. Для этого надо или нажать enter, либо выбрать поле мышью. Вопрос - как добиться, появление этой горизонтальной черточки? :) Ну или хотя бы пните куда копать.
(1) Нее, это я косячу. Надо найти правильную последовательность действий. Установить текущий элемент определенно мало. Надо, что-то еще сделать. Какой-нибудь метод по типу "обновить" вызвать. По крайней мере такое ощущение. Чего-то я не вызываю, что нужно вызвать.
(2) 8.3. Активировать по умолчанию делает поле активным при открытии формы. Он уже установлен. Установка его повторно ничего особо не меняет.
(1) Ну да. А потом "сымитируй" нажатый символ, перенос курсора и ответ на вопрос "Нажатый символ добавить в конец значения поля или поле очищать перед вводом символа?" :)
(5) ну должен же быть способ без имитации нажатого символа. Должен же быть метод, чтобы вернуть активность полю. Я отказываюсь верить, что его нет. Но за подобное направление поисков - спасибо.
О, у меня в Такси поиск по списку работает как надо автору - после нажатия на лупу фокус с прямой мигающей чертой возвращается в поле ввода
(12)
на клиенте в процедуре команды
(15) благодарю, не надо. Если это останется единственным направлением, я уже сам поищу. Большое спасибо за то, что подсказываете.
Я пока хочу попробовать решить без перехвата, сугубо вызовом имеющихся методов в 1С. Меня смущает, что для такого казалось бы простого действия требуются еще какие-то танцы с бубном. Мне кажется я просто упускаю какую-то деталь из виду.
(20) угу, поле неполноценно активно. Оно на вставку ctrl+v реагирует после этого, на другие горячие клавиши тоже, а вот на ввод с numpad'а - нет. Надо прожать Enter тогда станет полностью активным.
Хотя не совсем прогнал - при первом нажатии на кнопку поле активизируется именно с прямой чертой, а при последующих - выделяется весь набранный там текст. Ща гляну что там еще происходит.
Если же поиск не приводит к обновлению статуса (переприсвоению текущей страницы у группы-агрегатора страниц), то поле ввода активируется с выделенным текстом.
(22) У меня несколько другая картина. Если я сразу отказываюсь от выполнения процедуры и делаю присвоение элемента и возврат (у меня пустая ТЗ и обрабатывать нечего), то будет возврат с чертой. Если же идет какая-то обработка и неважно когда я устанавливаю текущий элемент в начале или в конце процедуры - то будет возврат с выделением. Как-то это странно работает.
(24) сделай написанное в 23 - добавь группу-пустышку и программно меняй ее текущую страницу каждый раз
(25) нее, что-то у меня так не срабатывает :) По крайней мере изменить текущую страницу на другую, а потом вернуться на эту - не срабатывает.
(27) это какое-то шаманство. :) Я не понимаю, как смена страницы связана с тем стало поле активным или нет :) Отдельная тема, что альтаб и вернуться обратно к сеансу 1С тоже сделает поле активным с черточкой. Т.е. возврат переактивация формы сделает поле тоже активным. Но переоткрытие формы через .Открыть() не помогает. Автикивизировать тоже не помогает. ОбновитьОтображение (ну а вдруг?) не помогает. Толи 1С так удачно сделали этот механизм, что он непонятно как работает, то ли я упускаю какую-то очевиднейшую вещь.
Мое почтение. Следующая проблема. Необходимо после нажатия на кнопку возвращать активность на поле ввода. Через установку текущего элемента получается решить проблему частично. Да, теперь при вводе информации, данные будут вводиться в него, но горизонтальной мигающей черты, сигнализирующей о том, что поле активно: пожалуйста, вводите; не появляется. Для этого надо или нажать enter, либо выбрать поле мышью. Вопрос - как добиться, появление этой горизонтальной черточки? :) Ну или хотя бы пните куда копать.
Нее, это я косячу. Надо найти правильную последовательность действий. Установить текущий элемент определенно мало. Надо, что-то еще сделать. Какой-нибудь метод по типу "обновить" вызвать. По крайней мере такое ощущение. Чего-то я не вызываю, что нужно вызвать.
8.3. Активировать по умолчанию делает поле активным при открытии формы. Он уже установлен. Установка его повторно ничего особо не меняет.
Ну да. А потом "сымитируй" нажатый символ, перенос курсора и ответ на вопрос "Нажатый символ добавить в конец значения поля или поле очищать перед вводом символа?" :)
ну должен же быть способ без имитации нажатого символа. Должен же быть метод, чтобы вернуть активность полю. Я отказываюсь верить, что его нет. Но за подобное направление поисков - спасибо.
О, у меня в Такси поиск по списку работает как надо автору - после нажатия на лупу фокус с прямой мигающей чертой возвращается в поле ввода
, если мне память не изменяет, публиковал свою писал на нетленку по перехвату клавиш клавиатуры. Могу поискать ежели что.
благодарю, не надо. Если это останется единственным направлением, я уже сам поищу. Большое спасибо за то, что подсказываете. Я пока хочу попробовать решить без перехвата, сугубо вызовом имеющихся методов в 1С. Меня смущает, что для такого казалось бы простого действия требуются еще какие-то танцы с бубном. Мне кажется я просто упускаю какую-то деталь из виду.
угу, поле неполноценно активно. Оно на вставку ctrl+v реагирует после этого, на другие горячие клавиши тоже, а вот на ввод с numpad'а - нет. Надо прожать Enter тогда станет полностью активным.
Хотя не совсем прогнал - при первом нажатии на кнопку поле активизируется именно с прямой чертой, а при последующих - выделяется весь набранный там текст. Ща гляну что там еще происходит.
У меня несколько другая картина. Если я сразу отказываюсь от выполнения процедуры и делаю присвоение элемента и возврат (у меня пустая ТЗ и обрабатывать нечего), то будет возврат с чертой. Если же идет какая-то обработка и неважно когда я устанавливаю текущий элемент в начале или в конце процедуры - то будет возврат с выделением. Как-то это странно работает.
нее, что-то у меня так не срабатывает :) По крайней мере изменить текущую страницу на другую, а потом вернуться на эту - не срабатывает.
это какое-то шаманство. :) Я не понимаю, как смена страницы связана с тем стало поле активным или нет :) Отдельная тема, что альтаб и вернуться обратно к сеансу 1С тоже сделает поле активным с черточкой. Т.е. возврат переактивация формы сделает поле тоже активным. Но переоткрытие формы через .Открыть не помогает. Автикивизировать тоже не помогает. ОбновитьОтображение (ну а вдруг?) не помогает. Толи 1С так удачно сделали этот механизм, что он непонятно как работает, то ли я упускаю какую-то очевиднейшую вещь. p.s. Две строчки шела ( вызвать ком объект, и нажать энтер) решают проблему, но блин, почему приходится так делать :)
В этой статье начнем разбирать основные элементы управляемой формы 1С 8.3. Управление формой осуществляется посредством различных элементов формы, которые расположены иерархически на закладке Элементы конструктора формы. Самым главным элементом является сама форма, которая расположена вверху иерархии элементов, а остальные элементы ей подчинены.
Все элементы формы можно разделить на пять групп: поля, элементы группировки, кнопки, декорации и таблицы. В своих статьях я разберу каждую из групп. В этой статье мы начнем изучать один из видов элемента поле — поле ввода, но перед этим научимся добавлять элемент на форму.
Добавление элементов на форму
Делается это достаточно просто: необходимо выделить элемент Форма в окне Элементы конструктора формы и нажать на кнопку «Добавить». После этого откроется окно, в котором необходимо выбрать нужный тип элемента
После выбора, элемент нужного появится в окне Элементы.
Элемент управляемой формы Поле
Разберем элемент управляемой формы Поле. Этот элемент нужен для ввода информации на форме. А также для отображения какой-либо информации. После того, как Вы добавите этот элемент на форму, справа откроется палитра свойств элемента формы. Пока Вас должны интересовать два свойства – ПутьКДанным и Вид.
В свойстве ПутьКДанным разработчик может связать элемент формы с нужным реквизитом формы. Обратите внимание, что после того, как был добавлен элемент Поле ввода на форму он не отобразился на самой форме. Это произошло потому, что наш новый элемент не связан с реквизитом формы. Для примера я создал на форме обработки несколько реквизитов с разными примитивными типами и один реквизит с ссылочным типом.
Здесь и далее используется конфигурация, созданная в книге «Программировать в 1С за 11 шагов»
Теперь свяжем наш недавно добавленный элемент формы с одним из реквизитов, для этого выберем нужный реквизит с свойстве элемента ПутьКДанным.
После этого заполнятся свойства ПутьКДанным и Вид, а сам элемент отобразится в представлении формы.
Обратите внимание на свойство элемента Вид. При помощи этого свойства определяется функциональность поля ввода. Можно выбрать различные значения этого свойства.
В зависимости от выбранного значения будет определятся функционал. На рисунках выше выбрано значение – поле ввода, т.е. мы можем вводить какие-либо значения в это поле ввода, а если выбрать значение поле надписи, то ни чего вводить мы не сможем.
Этот значение свойств Вид поля ввода удобно выбирать, когда нужно просто показать справочную информацию пользователю.
Теперь добавим новый элемент формы с типом Поле ввода и свяжем его с реквизитом РеквзитДата посредством уже знакомого нам свойства ПутьКДанным
Как Вы видите вид поля ввода поменялся, а так же поменяется возможный выбор значений свойства Вид.
Таким образом, делаем вывод – функциональность поля ввода зависит от типа реквизита.
Для реквизита с типом Булево будут доступны следующие значения свойства Вид.
А для реквизита с ссылочным типом будут доступны иные значения свойства Вид.
Более подробно работа с элементами формы на практичных примерах дается в книге «Основы разработки в 1С:Такси. Разработка управляемого приложения за 12 шагов».
Иногда кажется, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 11 шагов»
- Без сложных технических терминов.
- Более 700 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
One thought on “ Элементы управляемой формы 1С 8.3. Поле ввода ”
Огромное спасибо, за отличную публикацию! побольше бы таких сайтов как у Вас!
Читайте также: