Доброе время суток Всем!
Давно работаю на СКД, но так глубоко не копал
Ситуация: Ести отчет по затратам. Писал на СКД. Давно работает. Все довольны.
Запрос построен на рег. бухгалтерии. Выборка идет по всем затратным счетам, где есть
субконто "СтатьиЗатрат" (с иерархией, что самое главное).
Одному бухгалтеру неудобно, что отчет очень широкий (счетов и субсчетов много).
Просит по условию скрыть колонки по счетам, оставив только Общий итог.
Другой попросил по условию не выводить документы (Регистраторы).
Галочки в настройках я то поставил. А вот обработать их я могу только через
"КомпоновщикНастроек.ПользовательскиеНастройки.Элементы", в процедуре "ПриКомпоновкеРезультата".
И вот дальше у меня как раз проблемма
Много посмотрел статей, форумов. Для моего случая ничего не нашел.
Подскажите плз, какие нибудь ссылки, примеры и т.д.
Думаю, что сам могу разобраться, знать бы куда копать!
Платформа 8.3.17, конфигурация Бухгалтерия 2.0.
Заранее спасибо!
Несколько вариантов с разными настройками полей
sava1 @ Сегодня, 13:17
,
Спасибо, конечно. Но это еще один бесполезный совет...
sava1 @ Сегодня, 15:50
,
Поле.Использование = Ложь
КАК достучаться до этих полей? перед тем как Использование?
Да и вообще то в теме я просил, есть ли в инете описание компоновщика настроек.
Его методы, свойства и т.д.
Andi_x2021, было бы хорошо озвучить решение. Возможно, кому-то ещё оно пригодится когда-то.
Vofka @ Вчера, 7:48
,
Не вдавался более глубже, но для моей задачи получилось вот так:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПараметрыОтчета = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
ПолеГруппировки = Новый ПолеКомпоновкиДанных("Регистратор");
Для Каждого ПараметрОтчета Из ПараметрыОтчета Цикл
Если ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных("ПоДокументам") Тогда //это галочка на форме
Если ПараметрОтчета.Значение = Ложь Тогда
Если ТипЗнч(ПараметрОтчета) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") И ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных("ПоДокументам") Тогда
Если НЕ (КолонкаОборотДоступна() И ПараметрОтчета.Значение) Тогда
ПараметрОтчета.Значение = Ложь;
//убирем из выводимых колонок
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных("Регистратор") Тогда
ЭлКолонки.Использование = Ложь;
ИначеЕсли ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных("ДатаДок") Тогда
ЭлКолонки.Использование = Ложь;
КонецЕсли;
КонецЦикла;
Иначе
//добавляем, если нет
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных("Оборот") Тогда
ЭлКолонки.Использование = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua