Как организовать подбор элемента справочника Форма справочника должна быть открыта как подчинённая данной форме (или элементу формы), а в нашей форме (или элементе формы) кодируем событие “Обработка выбора”:
Код 1C v 8.х Процедура кнПодборНажатие(Элемент)
ОчиститьСообщения( ) ;
форма = Справочники. Номенклатура. ПолучитьФормуВыбора( ) ;
форма. ВладелецФормы = ЭтаФорма;
форма. РежимВыбора = Истина ;
форма. ЗакрыватьПриВыборе = Ложь ;
форма. Открыть( ) ;
КонецПроцедуры
Процедура ОбработкаВыбора(значениеВыбора, Источник)
перем стр;
стр = табл. Найти( строка( значениеВыбора) , "Вторая" ) ;
если стр = Неопределено тогда
кол = табл. Количество( ) ;
новаяСтрока = табл. Добавить( ) ;
новаяСтрока. Первая = кол + 1 ;
новаяСтрока. Вторая = строка( значениеВыбора) ;
иначе
Сообщить( "Наименование " + строка( значениеВыбора) + " уже имеется в таблице." ) ;
конецЕсли ;
конецПроцедуры
Категория:
Справочники Форма ~ Получение списка открытых окон и вывод свойств элементов Код 1C v 8.х Функция ПолучитьСписокОткрытыхОкон() Экспорт
ВключатьФормыЭлементов = ЭтаФорма. ВладелецФормы. ЭлементыФормы. ВключатьФормыЭлементов. Значение;
КолвоОбъектов = 0 ;
Для Каждого ТипОбъекта Из ВсеТипы Цикл
Если ( ТипОбъекта. Ключ < > "Константы" ) и ( ТипОбъекта. Ключ < > "ОбщиеФормы" ) Тогда
Для каждого Объект из Метаданные[ТипОбъекта. Ключ] Цикл
Для каждого Фрм из Объект. Формы Цикл
КолвоОбъектов = КолвоОбъектов + 1 ;
КонецЦикла ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
ЭлементыФормы. ХодВыполненияОперации. МинимальноеЗначение = 1 ;
ЭлементыФормы. ХодВыполненияОперации. МаксимальноеЗначение = КолвоОбъектов;
ЭлементыФормы. ХодВыполненияОперации. Шаг = 100 / КолвоОбъектов;
КолвоОбъектов = 0 ;
сзСписокОкон = Новый СписокЗначений;
Для Каждого ТипОбъекта Из ВсеТипы Цикл
Если ( ТипОбъекта. Ключ < > "Константы" ) и ( ТипОбъекта. Ключ < > "ОбщиеФормы" ) Тогда
Для каждого Объект из Метаданные[ТипОбъекта. Ключ] Цикл
Если ВключатьФормыЭлементов И ( ТипОбъекта. Ключ = "Справочники" Или ТипОбъекта. Ключ = "Документы" ) Тогда
Менеджер = Вычислить( ( ТипОбъекта. Ключ + "[Объект.Имя]" ) ) ;
Выборка = Менеджер. выбрать( ) ;
пока Выборка. Следующий( ) Цикл
ФормаЭлем = Выборка. Ссылка. ПолучитьФорму( ) ;
Если ФормаЭлем. Открыта( ) Тогда
сзСписокОкон. Добавить( ФормаЭлем, Строка( Выборка. Ссылка) + " (" + Объект. Имя + ", форма элемента)" ) ;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
Для каждого Фрм из Объект. Формы Цикл
Форма = Вычислить( ТипОбъекта. Ключ + "[Объект.Имя].ПолучитьФорму(Фрм)" ) ;
КолвоОбъектов = КолвоОбъектов + 1 ;
ЭлементыФормы. ХодВыполненияОперации. Значение = КолвоОбъектов;
Попытка
Если Форма. открыта( ) Тогда
сзСписокОкон. Добавить( Форма, Объект. Имя + " (" + Фрм + ")" ) ;
КонецЕсли ;
Исключение
Сообщить( "ошибка" ) ;
КонецПопытки ;
КонецЦикла ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
Возврат сзСписокОкон;
КонецФункции
Категория:
Работа с Формой (Диалог) и её элементами