УПП 1.3 При открытии формы, курсор встает на добавленные мной реквизиты.

1. slitov 7 18.10.17 11:05 Сейчас в теме
Добавил несколько реквизитов в документ, вывел их в форму, использую их только для печати. Но пока непонятным для меня причинам при создании/открытии документа курсор встает на последний добавленный мной реквизит. Может кто поможет, куда копать?
УПП 1.3, обычные формы.
Прикрепленные файлы:
+
Найденные решения
9. slitov 7 18.10.17 11:59 Сейчас в теме
Все было проще, у меня курсор вставал т.к. в событии при открытии формы есть такая интересная процедура:
РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма);

Я в свою очередь создал один из реквизитов с наименованием "Исполнитель"

А в ней :
	Если СтруктураРеквизитов = Неопределено 
		ИЛИ ТипЗнч(СтруктураРеквизитов) <> Тип("Структура") Тогда
		
		СтруктураРеквизитов = Новый Структура;
		СтруктураРеквизитов.Вставить("Дата");
		СтруктураРеквизитов.Вставить("Организация");
		СтруктураРеквизитов.Вставить("Касса");
		СтруктураРеквизитов.Вставить("СчетОрганизации");
		СтруктураРеквизитов.Вставить("БанковскийСчет");
		СтруктураРеквизитов.Вставить("Склад");
		СтруктураРеквизитов.Вставить("СкладОрдер");
		СтруктураРеквизитов.Вставить("Контрагент");
		СтруктураРеквизитов.Вставить("Получатель");
		СтруктураРеквизитов.Вставить("Плательщик");
		СтруктураРеквизитов.Вставить("ФизЛицо");
		СтруктураРеквизитов.Вставить("ПериодРегистрации");
		СтруктураРеквизитов.Вставить("Сотрудник");
		СтруктураРеквизитов.Вставить("Исполнитель");
		СтруктураРеквизитов.Вставить("КурсОбучения");
		СтруктураРеквизитов.Вставить("ДатаЗавершенияКурса");
		СтруктураРеквизитов.Вставить("Мероприятие");
	КонецЕсли;
	
	Для каждого Элемент Из СтруктураРеквизитов Цикл
		// Определим, есть ли ЭУ с таким именем.
		ЭлементУправления = ФормаОбъекта.ЭлементыФормы.Найти(Элемент.Ключ);
		Если ЭлементУправления <> Неопределено
			И ЭлементУправления.Видимость
			И ЭлементУправления.Доступность 
			И НЕ ЗначениеЗаполнено(ЭлементУправления.Значение) Тогда 
			
			// Нашли не заполненный ЭУ. Делаем его текущим и прекращаем цикл
			ФормаОбъекта.ТекущийЭлемент = ЭлементУправления;
			Возврат Истина;
		КонецЕсли;
	КонецЦикла; 
Показать


И никакие тут порядки обхода скорее всего не помогут, т.к. курсор принудительно устанавливался на исполнителя...
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 18.10.17 11:09 Сейчас в теме
Порядок обхода? не, ни разу не слышал и даже в меню Форма не заходил вообще...
+
3. slitov 7 18.10.17 11:09 Сейчас в теме
4. DenisCh 18.10.17 11:10 Сейчас в теме
6. slitov 7 18.10.17 11:22 Сейчас в теме
(4) Не совсем понятно пока что с этим порядком обхода делать. Спасибо за наводку.
+
8. DenisCh 18.10.17 11:42 Сейчас в теме
(6)Я думаю, что лучше всего расставить элементы формы в том порядке, в котором хочется, чтобы они обходились по нажатию Tab.
Соответственно - первый в порядке будет активизироваться первым, если это не текстовая метка.
+
5. пользователь 18.10.17 11:12
Сообщение было скрыто модератором.
...
7. пользователь 18.10.17 11:22
Сообщение было скрыто модератором.
...
10. пользователь 18.10.17 13:03
Сообщение было скрыто модератором.
...
11. пользователь 18.10.17 16:49
Сообщение было скрыто модератором.
...
9. slitov 7 18.10.17 11:59 Сейчас в теме
Все было проще, у меня курсор вставал т.к. в событии при открытии формы есть такая интересная процедура:
РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма);

Я в свою очередь создал один из реквизитов с наименованием "Исполнитель"

А в ней :
	Если СтруктураРеквизитов = Неопределено 
		ИЛИ ТипЗнч(СтруктураРеквизитов) <> Тип("Структура") Тогда
		
		СтруктураРеквизитов = Новый Структура;
		СтруктураРеквизитов.Вставить("Дата");
		СтруктураРеквизитов.Вставить("Организация");
		СтруктураРеквизитов.Вставить("Касса");
		СтруктураРеквизитов.Вставить("СчетОрганизации");
		СтруктураРеквизитов.Вставить("БанковскийСчет");
		СтруктураРеквизитов.Вставить("Склад");
		СтруктураРеквизитов.Вставить("СкладОрдер");
		СтруктураРеквизитов.Вставить("Контрагент");
		СтруктураРеквизитов.Вставить("Получатель");
		СтруктураРеквизитов.Вставить("Плательщик");
		СтруктураРеквизитов.Вставить("ФизЛицо");
		СтруктураРеквизитов.Вставить("ПериодРегистрации");
		СтруктураРеквизитов.Вставить("Сотрудник");
		СтруктураРеквизитов.Вставить("Исполнитель");
		СтруктураРеквизитов.Вставить("КурсОбучения");
		СтруктураРеквизитов.Вставить("ДатаЗавершенияКурса");
		СтруктураРеквизитов.Вставить("Мероприятие");
	КонецЕсли;
	
	Для каждого Элемент Из СтруктураРеквизитов Цикл
		// Определим, есть ли ЭУ с таким именем.
		ЭлементУправления = ФормаОбъекта.ЭлементыФормы.Найти(Элемент.Ключ);
		Если ЭлементУправления <> Неопределено
			И ЭлементУправления.Видимость
			И ЭлементУправления.Доступность 
			И НЕ ЗначениеЗаполнено(ЭлементУправления.Значение) Тогда 
			
			// Нашли не заполненный ЭУ. Делаем его текущим и прекращаем цикл
			ФормаОбъекта.ТекущийЭлемент = ЭлементУправления;
			Возврат Истина;
		КонецЕсли;
	КонецЦикла; 
Показать


И никакие тут порядки обхода скорее всего не помогут, т.к. курсор принудительно устанавливался на исполнителя...
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот