Имя: Пароль:
1C
1С v8
СКД вывод колонки опционально
0 ANDRU48
 
13.10.14
14:04
Как реализовать вывод колонки в скд в определенном случае (к примеру, параметр "Выводить такую-то колонку", значения да или нет.)
1 ultrannge89
 
13.10.14
14:11
Программно
2 ultrannge89
 
13.10.14
14:19
К сожалению нет такого кода чтобы прямо этот случай показать... Можешь по аналогии с этим сделать несколько макетов Схемы компоновки данных, один с колонкой, другой без, если параметр задан то открыть первый если нет то второй...


        БазаИсточник = V82COMConnector.Connect(Параметры);
        Запрос = БазаИсточник.NewObject("Запрос");
        Запрос.Текст = "ВЫБРАТЬ
        |    ПлатежиПоДоговору.ДоговорКонтрагента.Номер КАК УтНомер,
        |    ВЫБОР
        |        КОГДА ПлатежиПоДоговору.ДоговорКонтрагента.СпособОплаты = ЗНАЧЕНИЕ(Перечисление.СпособыОплатыДоговоров.Оплата100)
        |            ТОГДА ""Оплата100""
        |        КОГДА ПлатежиПоДоговору.ДоговорКонтрагента.СпособОплаты = ЗНАЧЕНИЕ(Перечисление.СпособыОплатыДоговоров.Ипотека)
        |            ТОГДА ""Ипотека""
        |        КОГДА ПлатежиПоДоговору.ДоговорКонтрагента.СпособОплаты = ЗНАЧЕНИЕ(Перечисление.СпособыОплатыДоговоров.ИпотекаФОНД)
        |            ТОГДА ""ИпотекаФОНД""
        |        КОГДА ПлатежиПоДоговору.ДоговорКонтрагента.СпособОплаты = ЗНАЧЕНИЕ(Перечисление.СпособыОплатыДоговоров.Рассрочка)
        |            ТОГДА ""Рассрочка""
        |    ИНАЧЕ """"
        |    КОНЕЦ КАК УтСпособОплаты,
        |    ПлатежиПоДоговору.СуммаПлатежа КАК УтСуммаДок,
        |    ПлатежиПоДоговору.Период КАК УтПериод
        |ИЗ
        |    РегистрСведений.ПлатежиПоДоговору КАК ПлатежиПоДоговору
        |ГДЕ
        |    ПОДСТРОКА(ПлатежиПоДоговору.ДоговорКонтрагента.Номер, 1, 1) = ""А""
        |
        |УПОРЯДОЧИТЬ ПО
        |    ДоговорКонтрагента,
        |    Период";
        Результат = Запрос.Выполнить();
        Если Не Результат.Пустой() Тогда
            ТаблицаРезультат = Новый ТаблицаЗначений;
            ТаблицаРезультат.Колонки.Добавить("УтНомер", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100)));
            ТаблицаРезультат.Колонки.Добавить("УтСпособОплаты", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100)));
            ТаблицаРезультат.Колонки.Добавить("УтНомерСтроки", Новый ОписаниеТипов("Число",, Новый КвалификаторыЧисла(12)));
            ТаблицаРезультат.Колонки.Добавить("УтСуммаДок", Новый ОписаниеТипов("Число",, Новый КвалификаторыЧисла(12)));
            ТаблицаРезультат.Колонки.Добавить("УтПериод", Новый ОписаниеТипов("Дата",, Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
            Выборка = Результат.Выбрать();
            ДокНомерПред = "";
            Пока Выборка.Следующий() Цикл
                НоваяСтрока = ТаблицаРезультат.Добавить();
                Если ДокНомерПред = "" ИЛИ ДокНомерПред <> Выборка.УтНомер Тогда
                    ДокНомерПред = Выборка.УтНомер;
                    НомерСтроки = 1;
                ИначеЕсли ДокНомерПред = Выборка.УтНомер Тогда
                    НомерСтроки = НомерСтроки + 1;
                КонецЕсли;
                НоваяСтрока.УтНомерСтроки = НомерСтроки;
                НоваяСтрока.УтНомер = Выборка.УтНомер;
                НоваяСтрока.УтСпособОплаты = Выборка.УтСпособОплаты;
                НоваяСтрока.УтСуммаДок = Выборка.УтСуммаДок;
                НоваяСтрока.УтПериод = Выборка.УтПериод;
            КонецЦикла;
        Иначе
            Сообщить("Пустой результат запроса");
        КонецЕсли;
        
        //сформируем структуру внешних данных
        ВнешниеНаборыДанных = Новый Структура;
        ВнешниеНаборыДанных.Вставить("Данные", ТаблицаРезультат);
        
        Настройки = КомпоновщикНастроек.Настройки;
        ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
        
        //инициализация процессора скд
        ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
        
        ТабличныйДокумент.Очистить();
        
        //инициализация процессора вывода
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
        ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
3 ultrannge89
 
13.10.14
14:20
Это на кнопку,

СформироватьОтчет(ЭлементыФормы.Результат, ДанныеРасшифровки);
4 Chameleon1980
 
13.10.14
15:22
может как-то через условное оформление подумать?
5 echo77
 
13.10.14
15:25
Таблица = КомпоновщикНастроек.Настройки.Структура.Получить(0);// Первый элемент структуры таблица

Таблица.Настройки.Выбор.Элементы - содержит коллекцию выбранных полей - изменяй свойство использование тем самым будешь включать/выключать вывод
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.