Искусство редактирования справочников в типовых
![топ 100 блогов](/media/images/default.jpg)
В процессе сопровождения иногда проще дать отдельную форму для редактирования справочников, чтобы не тратить время на изменения формы при обновлениях 1с.
Кроме того, такая форма может быть максимально оптимизирована под АРМ конкретного пользователя.
Рассмотрим пример, когда в справочник пользователей добавлены два поля для RFID-сканеров: ИспользоватьRFIDВСогласованиях и RFIDПропуска.
Создаем внешнюю обработку, на которую размещаем список пользователей:
Список пользователей – это динамический список, источник
данных – запрос, основная таблица – справочник
«Пользователи»:
ВЫБРАТЬ
Пользователи.ФизическоеЛицо,
Пользователи.ИспользоватьRFIDВСогласованиях,
Пользователи.RFIDПропуска,
Пользователи.Ссылка
ИЗ
Справочник.Пользователи КАК Пользователи
К сожалению, в управляемых формах нельзя редактировать непосредственно в списке, поэтому при выборе строки будем открывать сокращенную форму элемента справочника, описываемую в этой же обработке.
Таблица СписокПользователей – только просмотр.
В форме списка реализовано только событие выбора:
&НаКлиенте
Процедура СписокПользователейВыбор(Элемент, ВыбраннаяСтрока, Поле,
СтандартнаяОбработка)
П = Новый Структура("Ключ", ВыбраннаяСтрока);
ОткрытьФорму("ВнешняяОбработка.РедактированиеRFIDКодовПользователей.Форма.ФормаЭлемента",
П);
СтандартнаяОбработка = ложь;
КонецПроцедуры
При выборе строки списка открывается форма элемента, размещенная в этой же обработке:
В модуле обработки нужно добавить её описание:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации =
ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.3.1");
ПараметрыРегистрации.Вид =
ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "2017-02-14";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Обработка
""Редактирование RFID кодовпользователей""'");
НоваяКоманда.Идентификатор =
"РедактированиеRFIDКодовПользователей";
НоваяКоманда.Использование =
ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции