v7: Установить курсор на реквизит после ввода новой строки #748403


#0 by Jenstel
Доброго времени суток. Есть форма документа, на ней поле с реквизитом для ввода. После ввода реквизита в табличную часть добавляется строка. Как возвращать курсор в поле ввода после каждого добавления новой строки? Активизировать можно вызывать только в предопределенных процедурах...
#1 by Aprobator
Что то - Активизировать можно вызвать только в предопределенных процедурах, меня немного смущает.
#2 by Jenstel
Я не сам это придумал. Это был ответ на поиск по ошибке Активизировать(РеквизитДляВвода); {Документ.Оплата.Форма.Модуль}: В данной формуле не может быть вызвана эта процедура(функция)
#3 by Fedor-1971
там где добавляешь строку и верни фокус на нужный тебе элемент. Читай СП: Активизировать(<?>,); Синтаксис: Активизировать(<ИмяРеквизита>,<Режим>) Назначение: Активизировать для редактирования поле диалога. Параметры: <ИмяРеквизита> - необязательный параметр. Строка с именем поля диалога, которое нужно активизировать. Пустое имя элемента диалога используется для активизации всей формы. <Режим> -  необязательный параметр. Имеет смысл только для строк списков. Число: 1 - войти в режим редактирования, 0 - не входить. Значение по умолчанию - 1. Замечание: Метод  Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен
#4 by Fedor-1971
3+ только в контексте Модуля формы. Не заметил, что не всё выделилось.   Т.е. прямо в модуле формы, можешь активизировать элемент формы, а если вызвал нечто внешнее (например, процедуру глобального модуля), удостоверься, что туда поехал контекст формы, иначе ничего не активизируешь.
#5 by Jenstel
Я в это функции и вызываю Активизировать(РеквизитДляВвода, 1) В самом конце, после ввода строки и обнулении введенного значения.
#6 by Aprobator
и вообще, кури - ТекущийЭлемент
#7 by Aprobator
а тут походу обычные формы
#8 by Fedor-1971
РеквизитДляВвода - так называется поле ввода на форме? тут вообще 7.7
#9 by Aprobator
блин )))
#10 by Jenstel
Да, идентификатор реквизита
#11 by Fedor-1971
а надо строка с идентификатором в ""
#12 by palpetrovich
дык, "Активизировать можно вызывать только в предопределенных процедурах"  - это и есть верный ответ и решение!
#13 by palpetrovich
#14 by Fedor-1971
Перепроверил по стандартной конфигурации, по ходу так оно и есть.
#15 by HawkEye
так и есть, для того чтобы сработало активизировать используют фиктивное закрытие, как в
#16 by Jenstel
Нашел в сети аналогичный ответ. Сделал все также, но при вызове вылетает диалог с запросом на сохранения документа, а если вызывать Форма.Закрыть, то просто закрывается.
#17 by HawkEye
значит не срабатывает условие. Если МожноЗакрыть = 0 Тогда
#18 by palpetrovich
а активизировал где-нить ПриОткрытии МожноЗакрыть = 0  ?
#19 by Jenstel
#20 by palpetrovich
что это? где это в ? не надо изобретать велосипед, добавь  в процедуру ПриОткрытии МожноЗакрыть = 0;  и не меняй
#21 by Jenstel
Не помогает так тоже. Процедура ПриОткрытии При открытии курсор ставится куда нужно В обработке вызываю Форма.Закрыть; Вылетает диалог и все. Закрыть форму теперь нельзя МожноЗакрыть всегда остается 0
#22 by Jenstel
Такое ощущение, что диалог на закрытие документа срабатывает раньше, чем процедура ПриЗакрытии
#23 by HawkEye
отладчик то что говорит?
#24 by HawkEye
название переменных у тебя нигде не пересекается? нет реквизита документа МожноЗакрыть ?
#25 by palpetrovich
ты на кнопку Закрыть вместо стандартной формулы повесть КнопкаЗакрыть из - и будет тебе щасте :)
#26 by Jenstel
Реквизита такого нет, пробовал сменить имя переменной. Повесил, результат тот же, вылетает диалог на сохранение документа
#27 by palpetrovich
лови
#28 by Jenstel
Я еще утром попробовал сделать внешнюю обработку, тоже все работает как нужно. Но вот как только начинаешь тоже самое делать на форме документа, то вылетает диалог на сохранение. Ведь во внешней обработке просто форма и там нет диалога сохранения.
#29 by HawkEye
давай код... вот это работает:
#30 by Jenstel
#31 by Jenstel
Мистика, но заработало. Добавил
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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