Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамСоздание и изменение объект…

1С:Предприятие 8.2 /
Разработчикам /
Создание и изменение объектов метаданных

Оглавление

Работа с неактуальными (недействительными) объектами

Методическая рекомендация (полезный совет)

1. Данная рекомендация действует для ситуаций, когда какой-либо объект информационной базы перестает быть актуальным – навсегда или на время (сотрудник увольняется или уходит в декретный отпуск, подразделение расформируется и т.д.). При этом удалять этот объект из базы недопустимо, чтобы не нарушать ссылочную целостность: на него должны ссылаться другие ранее созданные объекты. Например, объект типа Файл должен содержать в поле Автор ссылку на уволившегося сотрудника и после его увольнения.

2. Для запрета выбора неактуальных объектов с помощью автоподбора и быстрого выбора в полях ввода следует выбрать один из двух подходов к реализации (2.1 или 2.2). Проиллюстрируем их далее на примере пользователей информационной системы, учет которых ведется в справочникеПользователи.

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

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

2.1.1. В модуле менеджера справочника Пользователи реализуются обработчики ОбработкаПолученияДанныхВыбора и ОбработкаПолученияФормы для установки параметров отбора. Пример реализации этих обработчиков для справочника Пользователи:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
Если Не Параметры.Отбор.Свойство("Недействителен") Тогда
Параметры.Отбор.Вставить("Недействителен", Ложь);
КонецЕсли;
КонецПроцедуры

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаВыбора" Тогда
ПараметрИзменен = Ложь;
Если Не Параметры.Свойство("Отбор") Тогда
Параметры.Вставить("Отбор", Новый Структура("Недействителен", Ложь));
ПараметрИзменен = Истина;
ИначеЕсли Не Параметры.Отбор.Свойство("Недействителен") Тогда
Параметры.Отбор.Вставить("Недействителен", Ложь);
ПараметрИзменен = Истина;
КонецЕсли;

// Этот код нужен, чтобы были использованы измененные нами значения параметров
Если ПараметрИзменен Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаВыбора"; // передаем имя формы выбора
КонецЕсли;
КонецЕсли;
КонецПроцедуры

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

  • если требуется выбирать недействующих пользователей, указываем в свойстве реквизита «Параметры выбора» значение Отбор.Недействителен(Ложь),
  • а если не требуется ограничивать выбор вообще, то оба значения - Истина и Ложь.

2.2. Если запрет на выбор неактуальных объектов сильно зависит от контекста (сценариев работы), то не следует его устанавливать по умолчанию.

  • Модуль менеджера справочника Пользователи не реализуется.
  • В простейшем случае, во всех объектах, в которых есть реквизиты типа СправочникСсылка.Пользователи устанавливаются значения свойств«Параметры выбора» и «Связи параметров выбора», как описано выше в пункте 2.1.2.
  • В тех случаях, когда критерий ограничения не может быть описан параметрами выбора, то реализуются обработчики формыОбработкаПолученияДанныхВыбора, ОбработкаВыбора и ОкончаниеВводаТекста, а также разрабатывается отдельная форма выбора, в которой реализуется та же логика ограничения.

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

4. Для отображения неактуальных объектов в списках рекомендуется использовать элемент стиля ТекстЗапрещеннойЯчейкиЦвет (192,192,192).


Нас находят: обработкаполученияформы 1с 8 2, обработкаполученияданныхвыбора пример, 1с обработкаполученияформы параметры, 1с обработкаполученияданныхвыбора не срабатывает, ОкончаниеВводаТекста, 1с обработкаполученияданныхвыбора отбор, ОбработкаПолученияДанныхВыбора() не работает, 1с8 как в подписке обработкаполученияформы открыть элементы на просмотр, 1с ОбработкаПолученияДанныхВыбора, обработкаПолученияФормы добавить команду


Подписка на новости RSS

Мы на Facebook