В процессе разработки конфигураций на платформе 1С часто возникают задачи по разграничению доступа к информации. Одной из таких типовых задач является создание отдельного раздела «Файлы для финансистов», где должны отображаться документы, доступные только узкой группе пользователей. Давайте разберем, как реализовать этот функционал правильно с точки зрения архитектуры 1С, избегая распространенных ошибок.
При попытке простого копирования кода вызова формы ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ПрисоеденныеФайлы"), возникает логическая коллизия: форма ссылается на тот же справочник-хранилище, что и стандартная вкладка «Файлы». В результате пользователи видят одни и те же данные. Чтобы решить эту задачу, у нас есть несколько вариантов реализации:
Если специфика задач финансистов кардинально отличается от работы с обычными вложениями, наиболее надежным способом будет создание отдельного справочника. Разберем шаги этого процесса:
Во-первых, создайте новый объект метаданных — Справочник, предназначенный для хранения файлов финансистов. Назовите его, например, ФинансовыеПрисоединенныеФайлы. Во-вторых, настройте его реквизиты так, чтобы они соответствовали требованиям хранения, например, добавьте владельца, тип файла и двоичные данные. В-третьих, при разработке команды на панели навигации используйте открытие формы именно вашего нового справочника.
Если вы хотите сохранить использование стандартного справочника ПрисоединенныеФайлы, вам необходимо научиться передавать в него параметры отбора. Стандартная форма всегда ожидает параметр ВладелецФайла. Если вы вызываете форму программно, вы можете передать дополнительные параметры через структуру:
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ВладелецФайла", Объект.Ссылка);
ПараметрыФормы.Вставить("Отбор", Новый Структура("ТипФайла", "Финансовый"));
ОткрытьФорму("Справочник.ПрисоединенныеФайлы.Форма.ФормаСписка", ПараметрыФормы);
Важно помнить, что простого скрытия команд недостаточно. Для полноценной защиты данных необходимо настроить Роли. Создайте роль, которая разрешает чтение данных только определенному справочнику или объекту, и назначьте её финансистам. Без прав доступа любой пользователь сможет найти способ открыть форму или получить доступ к данным через другие отчеты.
Частой причиной пустых окон или ошибок при открытии формы является отсутствие передачи контекста владельца. Платформа 1С при работе с ПрисоединеннымиФайлами жестко привязывает их к владельцу (документу или справочнику). Если при вызове метода ОткрытьФорму() вы не передаете параметр ВладелецФайла, форма не «понимает», какие именно записи фильтровать. Всегда проверяйте передачу этого параметра в структуре ПараметрыФормы.
Чтобы решение выглядело «чисто» с точки зрения методологии 1С:Предприятия, придерживайтесь следующих принципов:
Подводя итог: если вы хотите, чтобы файлы финансистов были полностью изолированы, лучше всего создать отдельный справочник. Если же задача состоит лишь в удобстве интерфейса для работы с общей базой файлов — используйте фильтрацию через параметры формы ОткрытьФорму() в сочетании с грамотной настройкой ролей доступа.