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