Переопределение настроек отчета на СКД. 1С: БСП

24.04.20

Разработка - БСП (Библиотека стандартных подсистем)

Изменение настроек СКД отчета без доработки модулей БСП

Перестаньте править БСП!

Вы вывели отбор подразделений на форму списком, а список только для чтения и содержит все подразделения без иерархии, а вы можете проставить галочки, то вот пример как для конкретного отчета переопределить список подразделений для выбора.
Конфигурация 1С:ERP Управление предприятием 2 (2.4.9.82)

Пишем в модуле отчета:

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

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

Функция ЗапросДляОтбораПодразделение()
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	               |	СтруктураПредприятия.Ссылка КАК Ссылка
	               |ИЗ
	               |	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
	               |ГДЕ
	               |	СтруктураПредприятия.Родитель.Код = ""000000190""
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	СтруктураПредприятия.Наименование";
	
	Возврат Запрос;
КонецФункции

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

БСП СКД

См. также

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1088    PROSTO-1C    0    

12

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    978    PROSTO-1C    4    

10

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    1830    MadRave    11    

24

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1819    MadRave    1    

17

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1254    n_mezentsev    10    

8

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    4105    John_d    10    

52

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5354    PROSTO-1C    12    

52
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 24.04.20 10:26
Сообщение было скрыто модератором.
...
2. klimsrv 18 24.04.20 10:36 Сейчас в теме
(1) это код из БСП, вы можете не читать, ни какого принуждения
3. VmvLer 24.04.20 11:44 Сейчас в теме
(2) если это
 |ГДЕ
	               |	СтруктураПредприятия.Родитель.Код = ""000000190""

код из БСП, то моя система ценностей разрушена.

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

я не задумался, можете сказать почему?
4. klimsrv 18 24.04.20 11:52 Сейчас в теме
(3) Я понимаю, что вы бы определили параметр запроса через НайтиПоКоду или НайтиПоНаименованию, или добавили предопределенный элемент в типовой справочник, вас бы это устроило, а может даже вы бы добавили допник и по его значению бы сделали отбор, а может вы бы добавили просто реквизит в типовой справочник, но поймите, суть поста вовсе не в этом, это лишь пример.

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

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

Вы можете пройти писать сочинения, а тут просто готовый код, готовый к использованию для решения конкретной задачи без изменения типовых модулей и справочников.
Риник; motiask; +2 Ответить
5. пользователь 24.04.20 12:07
Сообщение было скрыто модератором.
...
6. klimsrv 18 24.04.20 12:13 Сейчас в теме
(5) Действительно, сделайте такое приобретение, может станете писать пунктуационно правильно . И давайте, я сам решу, что буду приобретать
7. PerlAmutor 155 27.04.20 06:21 Сейчас в теме
Использую этот подход наверное уже год, т.к. подсистема Вариантов Отчетов в БСП делает свой запрос к справочнику СтруктураПредприятия по всем подразделениям и помещает результат в СписокЗначений. А как вы знаете, если элемент формы использует список значений, то осуществлять поиск по коду уже не получится. В случае с огромным количеством подразделений это становится головной болью и отнимает время.

Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт

    Если ТипЗнч(СвойстваНастройки.ДоступнаяНастройкаКД) = Тип("ДоступныйПараметрКомпоновкиДанных")
        И СвойстваНастройки.ДоступнаяНастройкаКД.Параметр = Новый ПараметрКомпоновкиДанных("Подразделение") Тогда

        СвойстваНастройки.БыстрыйВыбор = Истина;

        Если Не ПустаяСтрока(СвойстваНастройки.ЗапросЗначенийВыбора.Текст) Тогда

            СвойстваНастройки.ЗапросЗначенийВыбора.Текст = ""; // Если тут текст запроса стереть, то используется стандартный

        КонецЕсли;

    КонецЕсли;

КонецПроцедуры
Показать
8. gorakh 26 06.05.20 22:39 Сейчас в теме
Набор настроек зависит от версии БСП. Сталкивался с этим.
Оставьте свое сообщение