1с не работает текущий элемент

Текущий активный элемент управляемой формы

После обновления на 8.3.5 перестал работать метод установки активного элемента на управляемой форме.
Как позиционировать программно на нужном поле в релизе 8.3.5?

Клиент серверный режим

ЭтотОбъект.ТекущийЭлемент ПолеФормы ПолеФормы
Имя «ШтрихкодСотрудника» Строка

Кнопка «Продолжить отладку»
и тут же перескакивает курсор на другое поле .

P.S. на 8.3.4 тоже самое только после «Продолжить отладку» курсор на поле «ШтрихкодСотрудника»

PP.SS. проверяю в клиент серверном режиме. Позже проверю в файловом режиме

При изменении поля «ШтрихкодСотрудника» то перескакивает

Если же добавить кнопку и там добавить код

то курсор перемешается в поле «ШтрихкодСотрудника»

Как бы работает на 8.3.5. Но на 8.3.4 работает и при изменении поля «ШтрихкодСотрудника»

Буду думать как сделать тогда иначе

т.е. данный код НЕ работает на 8.3.5 в событии при изменении этого поля, на 8.3.4 работает

Думаю это связано со свойством формы. Параметр «ПоведениеКлавишиEnter» — «Переход по элементам»

Вопрос решил
К полю «ШтрихкодСотрудника» добавил кнопку «Найти» — установил флаг для кнопки «[Х] КнопкаПоУмолчанию»
В форме обработки задал параметр «ПоведениеКлавишиEnter» — «Кнопка по умолчанию»

При изменении кнопки «Найти» добавил код

Теперь при изменении поля «ШтрихкодСотрудника» и нажатии кнопки «Enter» ищет и позиционируется всегда в поле «ШтрихкодСотрудника»!

Источник

1С 8.x : Форма

Как активизировать, перевести фокус на необходимый элемент на форме?

Похожие FAQ

Еще в этой же категории

Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора

Как ограничить список выбора? 8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит

Читайте также:  Как настроить отправку imessage

Как сохранять и восстанавливать значения реквизитов на форме? 6
Как в Управляемом Приложении настроить автосохранение значений полей формы? Заходим в свойства формы и для значения АвтоматическоеСохранениеДанныхВНастройках устанавливаем значение » Использовать» : https://helpf.pro/uploads/img/_1-N3jf1dnRut.png Форма

Программное добавление элементов на форму 6
ЭлементыФормы (Controls) . Добавить (Add) — Добавляет элемент управления на форму. Синтаксис: Добавить( Тип , Имя , Видимость , ПоместитьНа ) Параметры: Тип (обязательный) Тип: Тип. Тип добавляемого элемента управления: Индикатор; П Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Источник

Не отображается элемент формы

1С программа которая есть абсолютно в каждой организации. Как и все в нашем мире она не совершенна. Типовые конфигурации не всегда отвечают всем требованиям предприятий. Поэтому очень часто их дорабатывают дописывают сторонние программисты. Вот после таких доработок можно столкнуться с проблемой. Когда на форме не видно какого либо элемента. Давайте расскажу вам как можно исправить данную ситуацию и сделать так чтобы все элементы отображались.

И так что делать если у пользователей не отображается какой либо элемент на форме. Для начала нужно войти в 1С под администратором и если у него все ОК, проверяем настройки видимости.

На форме не видно элемент

Для примера возьму один самописный документ. Пользователь открывает его и не видит поле «Подразделение».

Открываем конфигуратор, ищем этот документ, открываем его форму и кликаем на элементе который не отображается ПКМ и выбираем «Свойства».

В окне свойств ищем пункт «Пользовательская видимость» открываем. В настройка видимость отмечаем пункт «Видимость».

Закрываем сохраняем и обновляем конфигурацию. Обязательно нужно перезайтив в 1С чтобы увидеть изменения.

Источник

Не меняет ТекущуюСтроку в ТабличномПоле УПП Редакция1.3

Подскажите, как можно сменить ТекущуюСтроку в ТабличномПоле?
Данные: ДеревоЗначений.

Я создаю новый узел дерева (1 уровень), затем создаю новый узел дерева 2 уровня. И после того, как я закончил запись, я хочу чтобы курсор приняв положение на родителя узла.

В процедуре ПередОкончаниемРедактирования (ПриОкончаниемРедактирования также пробовал)

РодительТекущейСтроки = ?(мТекущаяСтрока.Родитель = НеОпределено, ДеревоЗапросов, мТекущаяСтрока.Родитель);
Если мТекущаяСтрока.Родитель = НеОпределено Тогда
Иначе
РодительТекущейСтроки = мТекущаяСтрока.Родитель;
ЭлементыФормы.ДеревоЗапросов.ТекущаяСтрока= РодительТекущейСтроки ;
КонецЕсли;

Нашел где-то, что надо вставить перед
ЭлементыФормы.ДеревоЗапросов.ТекущаяСтрока= РодительТекущейСтроки ;
вот это ЭлементыФормы.ДеревоЗапросов.ЗакончитьРедактированиеСтроки(Ложь);
Но мне это не помогло

В процедуре ПередОкончаниемРедактирования (ПриОкончаниемРедактирования также пробовал)
Либо ничего не делает или Ошибка при установке значения атрибута контекста (ТекущаяСтрока): Невозможно изменить текущую строку

Читайте также:  Как настроить пульт l43m5 5aru

Но если взять ячейку поля и при ОкончаниеВводаТекста сделать все то же, то работает:

Процедура ДеревоЗапросовЦенаОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
РодительТекущейСтроки = ?(мТекущаяСтрока.Родитель = НеОпределено, ДеревоЗапросов, мТекущаяСтрока.Родитель);
Если мТекущаяСтрока.Родитель = НеОпределено Тогда
Иначе
РодительТекущейСтроки = мТекущаяСтрока.Родитель;
ЭлементыФормы.ДеревоЗапросов.ТекущаяСтрока= РодительТекущейСтроки ;
КонецЕсли;
КонецПроцедуры

Но меня такое не устраивает. Помогите пожалуйста решить эту проблему. Буду очень благодарен. Спасибо за понимание!

Источник

Как программно получить текущий элемент управления (обычное приложение) ?

Если размещать на панели интерфейса такую кнопку, то ты никак не получишь нужное тебе табличное поле.
Ну во-первых количество открытых окон с отчетом, может быть много и выбрать нужное из них не получится, поскольку тебе потребуется конкретная активная форма, а как только ты нажмешь на кнопку на панели — окошко с формой перестанет быть активным.
Во-вторых, получить или установить активное окно в 1С-ке отсутствует (самому однажды такой финт нужен был).

Думаю единственный способ, КАЖДОЙ открытой форме (при ее открытии) устанавливать идентификатор уникальности и хранить этот список где-то.
Дальше, хранить где-то идентификатор текущей формы (последней активной формы).
При нажатии на кнопку получать идентификатор последней активной формы и получать эту самую форму по идентификатору, а там уже получив форму проблем не будет.

Думаю, финт с калькулятором реализован на уровне платформы (платформа же хранит список открытых окон и позволяет переслючиться между ними)
Смотря как выводится печатная форма. Если через стандартный механизм печати, то она имеет форму — тут проблем с идентификатором нет. А вот если просто выводить табличный документ — согласен, фигня получается.

Вся фигня в том, что штатного механизма для работы с окнами нет в 1С-ке. Поэтому и получается, что нужно всякую фигню выдумывать.

(12) antidot_alf, если не найду норм решения — соберу инфу какие из самые нужные и сделаю для них.

У кого есть идеи — можите советовать.

можно даже не только читать его, а и устанавливать.

(22) mpudy, (23) unoDosTres, Да собственно и перебор нам не нужен.
По-началу думал, что список этих форм нужен будет, на деле получается что нет.

ГП — глобальная переменная

1. При открытии формы
— однозначно запихивать ее в ГП;
— подключить обработчик ожидания (для проверки формы на активность) — если форма активна, переприсваивать эту форму ГП;

Читайте также:  Не могу настроить репитер сяоми

2. При закрытии формы
— однозначно очищать ГП

Правда некоторое время ГП будет равна «Неопределено»

Если взять со списком, то будет практически то же самое.

1. При открытии формы
— однозначно запихивать ее в ГП;
— заносить ее в список значений (глобальная переменная с типом список значений, для хранения открытых окон)

2. При закрытии формы
— очищать ГП
— удалять из списка значений закрывшуюся форму
— заносить в ГП «новую» активную форму

3. При переключении между формами
— перезаписывать значение ГП в соответствии с активной формой
(данную возможность можно попробовать реализовать на обработчике ожидания)

Сделать глобальную переменную приложения, в нее сохранять текущий элемент, сохранять в функции печать_особая, которая будет являться функцией фабрикой для печати (для внешних печь форм уже есть)

Функция Печать(Объект. ) Экспорт
глобальнаяПеременная = Объект.Печать();
Возврат глобальнаяПеременная;
КонецФункции;

Если же это очень проблматично, нужно уже решать проблему внешними средствами длл и прочими.

П.С. протупил вопрос, но на вскидку пришло на ум , сделать глобальную форму печатных документов, где множить вкладки с табличными документами

Тогда и кнопку отправки лепить на эту же форму (и не нужно будет определять активную форму), а не на панель интерфейса.

Вся фигня в том, что кнопка должна быть расположена не в форме, а именно в интерфейсе . И как только пользователь нажмет на кнопку, активная форма, а вместе с ней и текущий элемент, исчезнут.

Глобальная переменная для текущей (активной) формы — это то откуда можно будет получить тот самый текущий элемент, а вот как запихнуть в эту переменную форму, которая была открыта еще фиг знает когда и только сейчас пользователь на нее переключился и желает распечатать или отправить что-то именно из этой формы.

Ну например:
Пользователь открывает формы в следующем порядке (это важно):
1. «Форма 1».
2. «Форма 2».
При открытии каждой из эти форм в глобальную переменную заносится, скажем, форма целиком.
На текущий момент активная форма — это «Форма 2», такое же значение и в глобальной переменной.
А теперь давай переключимся на «Форму 1» — как отловить то, что теперь активной является «Форма 1» и в глобальную переменную нужно занести «Форма 1»?

Думаю, можно попробовать подпиской на событие определить, но подписка должна быть в каждой форме.

Источник

Оцените статью