v7: Активный элемент формы (продолжение) #564575


#0 by Downkey
Начало: на форме имеется поле ввода, которое открывает справочник номенклатуры дял подбора, текстовое поле для ввода серийника и табличная часть справочника. После выбора номенклатуры вводятся серийники. По совету мудрых товарищей, я справился с пробемой принудительной активации поля для ввода серийника, ну, чтоб после ввода, курсор не перескакивал в табличную часть, а возвращался в поле серийника. Но тут возникла следующая проблема - при изменении номенклатуры, после ввода серийника, вываливается ошибка: Активизировать("Серийник"); {Справочник.Серийники.ФормаСписка.СерийникиВвод.Модуль}: В данной формуле не может быть вызвана эта процедура(функция) Почеу не может быть вызвана? Ведь если номенклатура не изменяется - все вызывается корректно!
#1 by Rie
Используй фиктивное закрытие. Активизировать - оно плохо себя ведёт в формулах полей ввода.
#2 by Downkey
Я как раз через фиктивное закрытие и делаю:
#3 by Downkey
Rie, ты участвовал тогда в моей теме..
#4 by Rie
Вероятно, где-то ещё делаешь. Поскольку "В данной _формуле_".
#5 by Rie
Виноват. Больше не повторится :-)
#6 by Downkey
не-не-не... повторяйся!!   делаю ТОЛЬКО в одном месте. Если номенклатура не изменяется , т.е. если серийники вводятся для одной позиции - все ОК. А если позицию изменить - ошибка!, и в табличной части вываливается список серийников (подчиненного справочника) для исходной позиции, а не для измененной! вот я чего еще не пойму.
#7 by Rie
А как ты меняешь _позицию_-номенклатуру? Что в этом случае срабатывает? И где стоит Форма.Закрыть?
#8 by Downkey
Форма.Закрыть стоит в двух местах - в формуле поля выбора номенклатуры и в формуле обработки текстового поля серийника.
#9 by Rie
Не совсем понял. Эта форма - форма чего? Почему нет спрСер.Записать?
#10 by Downkey
На само деле есть, эт я коммент удалил вместе с спрСер.Записать когда в форум вставлял. Форма - форма справочника серийных номеров.
#11 by Rie
Тупой вопрос - а что говорит по этому поводу товарищ Отладчик? Каким путём добираемся до строки 113?
#12 by Downkey
Все строки процедуры ПриЗакрытии проходит без претензий, а после того как выходит из процедуры - вываливает ошибку. Ну да ладно. Я это дело вкорне обошел - изменил немного логику ввода серийников. Но все равно не понятно, почему ругается только при смене номенклатуры и почему после ругательств сбрасывает справочник серийников на первоначального владельца.
#13 by Torquader
Есть мнение, что Форма.Обновить и потом Форма.Закрыть - не очень хорошо. Также интересно, что происходит при обновлении формы (какие формулы вызываются). P.S. перенеси Обновить в ПриЗакрытии, чтобы всё было корректно (то есть сначала активизировали Элемент, а потом уже обновляли).
#14 by Злопчинский
".. а возвращался в поле серийника." в обработке ввода серийника - открываешь МОДАЛЬНО внешнюю обработку. При открытии обработки - СтатусВозврат; и возврат - курсор остается в поле ввода.
#15 by Downkey
пробовал и без Форма.Обновить - результата тот же. Обработка ввода серийника это не внешняя обработка, это процедурка в модуле основной формы. Или я чегото недопонимаю.
#16 by Злопчинский
включи мозг и прочитай сабж 14 внимательно. . в обработке ввода серийника - открываешь МОДАЛЬНО внешнюю обработку. . "обработке ввода серийника" - можнозаменить так: ПроцедураПриВводеСерийникаВполеВвода
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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