Как отключить сообщение «Введенные данные не отображены в списке...» при отборе в 1С (Обычные формы)

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При работе в интерфейсе обычного приложения (обычных форм) в «1С:Предприятии 8» разработчики и пользователи часто сталкиваются со стандартным поведением платформы: если в списке документов или справочника установлен фильтр (отбор), а пользователь создает новый элемент, который под критерии этого отбора не подходит, система выдает предупреждение: «Введенные данные не отображены в списке, так как не соответствуют отбору».

Такое поведение платформы абсолютно логично с точки зрения системной архитектуры — программа предупреждает пользователя, что вновь созданный документ «исчезнет» из его поля зрения сразу после записи. Однако в реальной бизнес-практике часто возникают ситуации, когда документ в момент создания действительно не соответствует отбору, но обязательно попадет в него позже (например, после изменения статуса, проведения или обработки другим отделом). В таких случаях назойливое окно предупреждения только замедляет работу пользователей и вызывает лишние вопросы к технической поддержке.

В этой статье мы подробно разберем, почему возникает это сообщение и как полностью его отключить двумя способами: интерактивно (для пользователей и администраторов) и программно (для разработчиков в конфигураторе).

Выясним причину: почему платформа выдает предупреждение

Давайте проанализируем ситуацию. Когда в табличном поле списка (например, списка документов) применен отбор, платформа постоянно контролирует динамическую выборку данных. При нажатии кнопки «Добавить» (или клавиши Insert) открывается форма нового документа. В процессе заполнения реквизиты документа могут не соответствовать жестко заданным параметрам фильтрации в исходном списке.

При записи и закрытии формы нового документа управление возвращается в родительскую форму списка. Платформа пытается спозиционироваться на новой строке в табличном поле. В этот момент срабатывает системный механизм проверки:

  1. Платформа сопоставляет значения реквизитов нового объекта с установленными элементами отбора.
  2. Если выявляется несоответствие (например, в списке стоит отбор по организации «Альфа», а документ создан по организации «Бета»), система понимает, что новая строка не будет выведена на экран.
  3. Платформа выводит стандартное диалоговое окно с предупреждением, требующее от пользователя нажать кнопку «ОК».

Для оптимизации бизнес-процессов это предупреждение можно безболезненно отключить. Ниже мы детально рассмотрим оба доступных метода решения задачи.

Решение 1. Интерактивный способ настройки (в режиме «1С:Предприятие»)

Если проблему нужно решить быстро на рабочем месте конкретного пользователя без изменения конфигурации и написания кода, мы можем воспользоваться штатными интерактивными настройками списка.

Рассмотрим этот процесс по шагам:

  1. Откроем форму списка документов или справочника, в которой установлен отбор и появляется мешающее сообщение.
  2. В командной панели табличной части найдем кнопку «Действия». Если кнопки нет на панели, нажмем правой кнопкой мыши в любом свободном месте списка для вызова контекстного меню.
  3. В выпадающем меню выберем пункт «Настройка списка...». Перед нами откроется стандартное диалоговое окно настройки динамического списка обычного приложения.
  4. В открывшемся окне перейдем на вкладку «Прочее» (она обычно находится в правой части закладок).
  5. Найдем и установим флажок напротив опции «Не проверять соответствие новых строк отбору».
  6. Нажмем кнопку «ОК» для сохранения настроек и закрытия формы параметров.

После выполнения этих простых шагов платформа перестанет анализировать новые документы на соответствие фильтрам для данного пользователя, и раздражающее предупреждение больше не появится. Новый документ будет тихо записан в базу данных, даже если он сразу скроется из текущего списка.

Решение 2. Программный способ (для разработчика в конфигураторе)

Интерактивный метод хорош для разовой настройки, но у него есть существенный недостаток: его нужно выполнять вручную для каждого пользователя. Если в системе работают десятки человек или отбор устанавливается программно в рамках определенного алгоритма, правильнее решить задачу на уровне кода конфигурации.

Для программного управления поведением платформы при записи новых объектов в обычных формах используется свойство табличного поля ПроверкаОтображенияНовойСтроки. Это свойство определяет, как именно интерфейс будет реагировать на создание строк, не подходящих под критерии текущего отбора.

Свойство ПроверкаОтображенияНовойСтроки может принимать одно из значений системного перечисления ВариантПроверкиОтображенияНовойСтроки. Рассмотрим эти варианты подробнее:

Разберем по шагам, как применить это свойство в коде формы списка.

Шаг 1. Откроем конфигуратор, найдем нужный документ (или справочник) и откроем его форму списка.

Шаг 2. Перейдем в модуль формы списка.

Шаг 3. В обработчике события ПриОткрытии (или в процедуре установки отбора, если отбор накладывается динамически в коде) пропишем отключение проверки. Нам необходимо обратиться к элементу управления формы, который отображает список документов. Обычно этот элемент имеет тип ТабличноеПоле и стандартное имя ДокументСписок или СправочникСписок.

Посмотрим на пример кода, который решает эту задачу при открытии формы:


Процедура ПриОткрытии()
	
	// Отключаем проверку отображения новой строки для списка документов.
	// Вместо "ДокументСписок" укажите имя вашего табличного поля на форме.
	ЭлементыФормы.ДокументСписок.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять;
	
КонецПроцедуры

Проанализируем комплексный пример. Предположим, у нас в коде программно устанавливается сложный отбор (например, по нескольким ссылкам документов), и мы хотим быть абсолютно уверены, что при создании новых документов пользователи не столкнутся с системным окном предупреждения:


Процедура УстановитьПрограммныйОтборИОтключитьПредупреждение()
	
	// Получаем массив нужных нам документов для отбора
	МассивСсылок = ПолучитьСписокНужныхДокументов();
	
	// Накладываем программный отбор по ссылке
	ОтборПоСсылке = ЭлементыФормы.ДокументСписок.Значение.Отбор.Ссылка;
	ОтборПоСсылке.ВидСравнения = ВидСравнения.ВСписке;
	ОтборПоСсылке.Значение.Очистить();
	Для Каждого СсылкаИзМассива Из МассивСсылок Цикл
		ОтборПоСсылке.Значение.Добавить(СсылкаИзМассива);
	КонецЦикла;
	ОтборПоСсылке.Использование = Истина;
	
	// Программно отключаем вывод предупреждения о несоответствии отбору
	ЭлементыФормы.ДокументСписок.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять;
	
КонецПроцедуры

Использование свойства ПроверкаОтображенияНовойСтроки в значении НеПроверять гарантирует, что при интерактивном добавлении нового документа через стандартную кнопку командной панели «Добавить» или клавишу Insert, платформа запишет элемент молча, без вывода диалоговых окон.

Применяя эти простые, но эффективные приемы настройки и разработки в среде «1С:Предприятие 8» для обычных форм, мы можем значительно повысить удобство работы пользователей с интерфейсом системы, убрать раздражающие факторы и оптимизировать процесс ежедневного ввода первичных документов.

← На главную