Имя: Пароль:
1C
1C 7.7
v7: Вернуть фокус в заданное поле после обновления формы?
0 Mikhail Volkov
 
09.11.15
12:50
Начало темы в Перехватить "ввод ручками" проблема почти решена, после подбора очередного товара, фокус формы возвращается в мое поле "ШтрихКодПоиска" для поиска следующего вводимого сканером или вручную. Даже если пользователь предыдущий товар искал не по штрих-коду, а по наименованию или артикулу.
Но вот беда, после возврата фокуса в мое поле форма обновляется, в табличной части есть вычисляемая колонка "Остатки" (хотя в процессе подбора товара они не меняются). И после обновления фокус остается в табличной части.
Как вернуть фокус в заданное поле после обновления формы?
1 Mikhail Volkov
 
09.11.15
14:00
Обычной 7-ке (не 1С++) не под силу?
2 НЕА123
 
09.11.15
14:08
попробовать покурить Активизировать()
3 Масянька
 
09.11.15
14:10
(1) Дарю СП. Бесплатно (то есть даром) :)
Активизировать(<?>,);
Синтаксис:
Активизировать(<ИмяРеквизита>,<Режим>)
Назначение:
Активизировать для редактирования поле диалога.
Параметры:
<ИмяРеквизита> - необязательный параметр. Строка с именем поля диалога, которое нужно активизировать. Пустое имя элемента диалога используется для активизации всей формы.
<Режим> -  необязательный параметр. Имеет смысл только для строк списков. Число: 1 - войти в режим редактирования, 0 - не входить. Значение по умолчанию - 1.
Замечание:
Метод  Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен только в контексте Модуля формы.
4 Mikhail Volkov
 
09.11.15
14:33
(2) Да, именно Активизировать("ШтрихКодПоиска", 0) возвращает фокус в мое поле. Но вот беда, после форма обновляется, и фокус остается в табличной части товаров!?
5 Масянька
 
09.11.15
14:34
(4) Ну, дык, воткни после обновления.
6 Mikhail Volkov
 
09.11.15
14:49
(5) Куда? В 7-ке нет предопределенной процедуры обновления формы!?
7 Масянька
 
09.11.15
14:52
(6) А как она (форма) обновляется?
Если что - опять дарю:
Форма.Обновить(<?>);
Синтаксис:
Форма.Обновить(<Флаг>)
Назначение:
Обновить форму.
Параметры:
<Флаг> - число: 1 - установить флаг модифицированности (признак изменения реквизитов текущей формы справочника или документа); 0 - не устанавливать флаг модифицированности.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
8 Ёпрст
 
09.11.15
14:53
(6) есть
9 Ёпрст
 
09.11.15
14:53
(7) не угадала
10 HawkEye
 
09.11.15
14:54
(6) повесь на форму тест в формуле укажи любую процедуру - вот она и будет у тебя предопределенной при обновлении формы, только аккуратнее ее используй ))
11 Ёпрст
 
09.11.15
14:55
(10) ну блин, сломал всю интригу, а так, у Масяни бы ломка началась.
12 Масянька
 
09.11.15
14:56
(11) Не началась бы. :)))))
13 HawkEye
 
09.11.15
14:57
(11) да уж вторую неделю мучается юноша ))

а Мася и не такое выдерживала, с неё как с гуся вода )))
14 Масянька
 
09.11.15
14:58
(13) Не надо обзываться... Я - сегодня Царевна :))))))))
15 HawkEye
 
09.11.15
14:58
(14) а где я обзывался? )
16 Масянька
 
09.11.15
15:13
Ну, что? У юноши получилось? Или еще неделю будет мучиться?
17 Mikhail Volkov
 
09.11.15
15:29
(10) Такие поля есть, например: "СуммаВсего" и таб. части товаров "Остаток", еще свою колонку добавил "ДопШтрихКод". Для анализа в эти функции вставил вывод сообщений:
После ДобавитьВТабл Фокус остался на поле: ШтрихКодПоиска
После ШтрихКодПоиска Фокус остался на поле: ШтрихКодПоиска
СуммаВсего: 34.5 / Фокус остался на поле: ШтрихКодПоиска
ДопШтрихКод для 100 наклеек Disney Проф-Пресс мяг/о/Медвежонок Винни - 11 / Фокус остался на поле: ШтрихКодПоиска
ДопШтрихКод для 100 наклеек Disney Проф-Пресс мяг/о/Самолеты / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Disney Проф-Пресс мяг/о/Самолеты - 29 / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Disney Проф-Пресс мяг/о/Тачки - 21 / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Disney Росмэн мяг/о/Тачки / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Проф-Пресс мяг/о/Лучшие машины / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Проф-Пресс мяг/о/Мир насекомых / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Проф-Пресс мяг/о/Мир транспорта / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Проф-Пресс мяг/о/Учим буквы / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Проф-Пресс мяг/о/Учим цифры / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
СуммаВсего: 34.5 / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб
ДопШтрихКод для 100 наклеек Disney Проф-Пресс мяг/о/Медвежонок Винни - 11 / Фокус переместился с поля: ШтрихКодПоиска на поле: ТаблПодб

Первые 2 - как я хотел, а дальше - результат обновления формы.
18 HawkEye
 
09.11.15
15:42
(17)
вместо "Активизировать("ШтрихКодПоиска", 0)", устанавливаешь глобальную переменную модуля (вернутьВШтрихкод = 1).

в любой процедуре на форме пишешь условие

Если вернутьВШтрихкод = 1 Тогда
форма.закрыть();
КонецЕсли;

в призакрытии смотришь

если вернутьВШтрихкод = 1 Тогда
вернутьВШтрихкод = 0;
Активизировать("ШтрихКодПоиска", 0);
не закрывать..

как-то так...


я твои темы по диагонали читал... ты внешними компонентами не пользуешься?
19 Chameleon1980
 
09.11.15
16:23
плин
на днях жеж было опять
ложное закрытие

как-то так
20 HawkEye
 
09.11.15
16:24
(19) оно тут кажный день уже )))
21 Mikhail Volkov
 
11.11.15
04:59
Спс всем. Вернул первоначальный порядок обхода полей формы (мое ШтрихКодПоиска вместо кнопки ПоискПоШК), он какой-то хитрый, не по порядку, и обновление формы перестало сбивать мне фокус!