Как сохранить вариант отчета СКД для всех пользователей в 1С:Управление торговлей 10.3?

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

При работе в конфигурации «Управление торговлей 10.3» (которая базируется на обычных формах платформы 1С:Предприятие 8.2 или 8.3) разработчики и пользователи часто сталкиваются с проблемой сохранения вариантов отчетов. Отчеты, разработанные на системе компоновки данных (СКД), по умолчанию сохраняют свои настройки только для текущего активного пользователя. Попытка поделиться настроенным вариантом отчета с коллегами вызывает трудности: другие пользователи просто не видят сохраненный вариант в своем списке, а привычные механизмы копирования настроек не срабатывают.

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

Метод 1. Настройка прав доступа к варианту через штатный механизм СКД

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

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

Метод 2. Важная доработка для внешних отчетов (файлы .erf)

Рассмотрим ситуацию, когда отчет распространяется как внешний файл (.erf) или подключен через справочник «Внешние обработки». В этом случае пользователи часто сталкиваются с ошибкой: «Свойство отчета 'Хранилище вариантов' не заполнено», из-за чего первый метод становится недоступен.

Для решения этой проблемы нам понадобится запустить Конфигуратор и внести небольшое изменение в свойства внешнего отчета. Пройдем по шагам этот процесс:

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

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

Метод 3. Программная привязка настроек к регистру «Сохраненные настройки»

В конфигурации «Управление торговлей 10.3» стандартные отчетостроения (например, построенные на базе «Универсального отчета») используют для хранения параметров регистр сведений СохраненныеНастройки. Если вы хотите централизованно управлять настройками СКД-отчетов через административную панель «Сохраненные настройки», мы можем реализовать программную выгрузку настроек компоновщика в этот регистр.

Разберем по шагам, как сериализовать настройки компоновщика СКД в ХранилищеЗначения и записать их в регистр программным путем. Посмотрим на пример кода, который можно разместить в модуле формы отчета:


// Процедура для сохранения настроек СКД в регистр СохраненныеНастройки
Процедура СохранитьНастройкуВРегистр(ИмяНастройки, ПользовательПолучатель = Неопределено)
    
    // Получаем текущие настройки компоновщика СКД
    НастройкиДляСохранения = КомпоновщикНастроек.ПолучитьНастройки();
    
    // Помещаем настройки в ХранилищеЗначения для возможности записи в базу данных
    ОбъектХранилища = Новый ХранилищеЗначения(НастройкиДляСохранения);
    
    // Создаем запись в регистре СохраненныеНастройки
    МенеджерЗаписи = РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи();
    
    // Если пользователь не указан, настройка будет доступна ВСЕМ пользователям
    Если ПользовательПолучатель = Неопределено Тогда
        МенеджерЗаписи.Пользователь = Справочники.Пользователи.ПустаяСсылка();
    Иначе
        МенеджерЗаписи.Пользователь = ПользовательПолучатель;
    КонецЕсли;
    
    МенеджерЗаписи.ИмяОбъекта = ЭтотОбъект.Метаданные().Имя;
    МенеджерЗаписи.НаименованиеНастройки = ИмяНастройки;
    МенеджерЗаписи.СохраненнаяНастройка = ОбъектХранилища;
    МенеджерЗаписи.ИспользоватьПриОткрытии = Ложь;
    
    Попытка
        МенеджерЗаписи.Записать(Истина);
        Сообщить("Настройка успешно сохранена в общую базу настроек.");
    Исключение
        ВызватьИсключение "Не удалось сохранить настройку: " + ОписаниеОшибки();
    КонецПопытки;
    
КонецПроцедуры

Для обратной загрузки настроек при открытии отчета другими пользователями мы можем применить следующий программный код:


// Процедура восстановления настроек СКД из регистра
Процедура ВосстановитьНастройкуИзРегистра(ИмяНастройки)
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   СохраненныеНастройки.СохраненнаяНастройка
        |ИЗ
        |   РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
        |ГДЕ
        |   СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
        |   И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки";
        
    Запрос.УстановитьПараметр("ИмяОбъекта", ЭтотОбъект.Метаданные().Имя);
    Запрос.УстановитьПараметр("НаименованиеНастройки", ИмяНастройки);
    
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        
        // Извлекаем настройки из ХранилищаЗначения
        ВосстановленныеНастройки = Выборка.СохраненнаяНастройка.Получить();
        
        Если ВосстановленныеНастройки <> Неопределено Тогда
            КомпоновщикНастроек.ЗагрузитьНастройки(ВосстановленныеНастройки);
            Сообщить("Настройки отчета успешно загружены.");
        КонецЕсли;
    Иначе
        Предупреждение("Настройка с таким именем не найдена в базе данных.");
    EndIf;
    
КонецПроцедуры

Используя этот подход, вы полностью контролируете хранение настроек ваших отчетов, обходя ограничения стандартного системного хранилища вариантов платформы 1С.

Метод 4. Быстрый перенос настроек через XML-файлы (без изменения конфигурации)

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

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

Таким образом, мы детально разобрали все доступные способы совместного использования вариантов отчетов в 1С:Управление торговлей 10.3. Выбирайте наиболее подходящий метод в зависимости от ваших задач: штатную настройку прав доступа для стандартных отчетов, доработку внешних отчетов в Конфигураторе или гибкую программную интеграцию через регистры сведений.

← На главную