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