СКД: Установка параметров программно в созданную программным образом схему

03.03.15

Разработка - СКД

Установить параметры в отчет, где есть объект "КомпоновщикНастроек", просто, а если схема создана программным образом, требуется перехват процедуры формирования.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ОтчетПример
.erf 11,78Kb
6 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Обычным образом 

КомпоновщикНастроекСКД = ОтчетОбъект.КомпоновщикНастроек;
ПараметрСКД = КомпоновщикНастроекСКД.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
ПараметрСКД.Использование = Истина;
ПараметрСКД.Значение      = Значение;

При формировании схемы программным путем

ТаблицаСШагом = Новый ТаблицаЗначений;
	ТаблицаСШагом.Колонки.Добавить("Шаг",            Новый ОписаниеТипов("Число",,  Новый КвалификаторыЧисла(3, 0, ДОпустимыйЗнак.Неотрицательный)));
	ТаблицаСШагом.Колонки.Добавить("Наименование",   Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(3, ДопустимаяДлина.Фиксированная)));
	ЗаполнитьТаблицуСШагом(ТаблицаСШагом);
	
	СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	// компоновщик настроек, выгрузка, настройка и загрузка
	Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
	КомпНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпНастроек.ЗагрузитьНастройки(Настройки);
	СтруктураПараметров = ПолучитьСтруктуруПараметров(); ЗаполнитьПараметрыПоСтруктуреПараметров(КомпНастроек.Настройки,СтруктураПараметров); Настройки = КомпНастроек.ПолучитьНастройки();
	
	ДанныеРасшифровки         = Новый ДанныеРасшифровкиКомпоновкиДанных;
	КомпоновщикМакета         = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки           = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
	ВнешнийНаборДанных        = Новый Структура("ТаблицаСШагом", ТаблицаСШагом);
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

где

Функция ПолучитьСтруктуруПараметров()
 
    Структура = Новый Структура; //Ключ структуры - Имя параметра схемы компановки; Значение структуры - Значение реквизита с формы
	
	СписокНежелательныхГрупп = новый СписокЗначений;
	Поиск = Справочники.Номенклатура.НайтиПоКоду("С597");
	Если Поиск<>Справочники.Номенклатура.ПустаяСсылка() Тогда
		СписокНежелательныхГрупп.Добавить(Поиск);
	КонецЕсли; 
    Структура.Вставить("СписокНежелательныхГрупп",СписокНежелательныхГрупп); 
    
    Возврат Структура;
 
КонецФункции
 
Процедура ЗаполнитьПараметрыПоСтруктуреПараметров(Настройки,СтруктураПараметров)
 
    Для Каждого Стр Из СтруктураПараметров Цикл 
        Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Стр.Ключ));
        Если НЕ Параметр = Неопределено Тогда 
            Параметр.Значение = Стр.Значение;
            Параметр.Использование = Истина;
        КонецЕсли;  
    КонецЦикла; 
 
КонецПроцедуры

В СКД представлен способ формирования прайс-листа с заданным шагом прироста цены.

Вступайте в нашу телеграмм-группу Инфостарт

СКД параметры

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

10000 руб.

02.09.2020    267663    1492    421    

1179

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

16.06.2026    3838    sapervodichka    45    

50

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    7758    399    shapa_pro    27    

71

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    22480    ovetgana    112    

116

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    12891    krasnoshchekovpavel    7    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    12457    Neti    0    

42

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    17780    ovetgana    50    

94

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    15565    Akcium    17    

48
Для отправки сообщения требуется регистрация/авторизация