Имя: Пароль:
1C
 
СКД, оформление строки жирным шрифтом
0 slasher
 
17.12.14
14:50
Здравствуйте, есть отчет на СКД, несколько колонок, одна из которых Контрагент. Как сделать чтобы строки выводились жирным шрифтом, если контрагент из СпискаКонтрагентов. СписокКонтрагентов строго задан изначально. Чувствую что это в оформлении делается, не не пойму как туда привязать СписокКонтрагентов. Может кто знает?
1 barrgand
 
17.12.14
14:55
Программно можно подставить список контрагентов в оформления
2 antoneus
 
17.12.14
14:58
Добавить в запрос поле и ставить в него истину, если контрагент в списке и по этому полю оформлять?
3 spiller26
 
17.12.14
15:05
(0) В запросе пропиши типа
Выбор Когда ВтТаб.Контрагент В (&СписокКонтрагентов) Тогда  1 Иначе 0 Конец КАК ИндКонтрагента

В Настройках > Условное Оформление
Добавляй, ставь условия "ИндКонтрагента=1" Жирный...
Далее разберетесь
4 тарам пам пам
 
17.12.14
15:21
(3), а зачем так извращаться? нельзя сразу в условном оформлении задать список контрагентов?
5 spiller26
 
17.12.14
15:35
(4) можно и так
6 slasher
 
17.12.14
15:37
(2)(3) творческий подход, только теперь туплю как передать список в запрос СКД
7 slasher
 
17.12.14
15:38
(4) чота сомневаюсь я в этом способе
8 spiller26
 
17.12.14
15:42
(6)
ТвойСписок = Новый СписокЗначений;
ТвойСписок.Добавить(Контр1);
ТвойСписок.Добавить(Контр2);
    ПараметрСписокКонтров = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СписокКонтров"));;
    ПараметрСписокКонтров .Значение = ТвойСписок;  
    ПараметрСписокКонтров .Использование = Истина;
9 antoneus
 
17.12.14
15:50
(6) дык параметром же. Ну, или программно, на худой конец. Запросом-то не получится их отобрать, что ли?
10 slasher
 
17.12.14
15:56
(8) я правильно понимаю, что список должен быть передан в запрос до момента компоновки? почему он тогда передается в момент компоновки или в какой момент он передается?
11 spiller26
 
17.12.14
16:00
(10) Блинннн... Вот держи... готовое

// Процедура - обработчик нажатия кнопки "Сформировать"
Процедура ДействияФормыСформировать(Кнопка)
    
    ОбновитьОтчет();
        
КонецПроцедуры

Процедура ОбновитьОтчет() Экспорт
    
    Если ДатаНач > ДатаКон тогда
        Сообщить("Неправильно указан период.");
        Возврат;
    КонецЕсли;
    
    пНоменклатура = Справочники.Номенклатура.НайтиПоКоду("000000005");
    Если пНоменклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
        Сообщить("Не найдена номенклатура с кодом ""000000005""");
        Возврат;
    КонецЕсли;        
    
    // Установим параметр компоновки данных    
    ПараметрНачало = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));;
    ПараметрНачало.Значение = НачалоДня(ДатаНач);
    ПараметрНачало.Использование = Истина;
    
    ПараметрКонец = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));;
    ПараметрКонец.Значение = КонецДня(ДатаКон);
    ПараметрКонец.Использование = Истина;
    
    ПараметрНоменклатура = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Номенклатура"));;
    ПараметрНоменклатура.Значение = Справочники.Номенклатура.НайтиПоКоду("000000005");
    ПараметрНоменклатура.Использование = Истина;
    
    Настройки = КомпоновщикНастроек.Настройки;
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    // Инициализируем процессор СКД
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    ЭлементыФормы.Результат.Очистить();
    ДокРезультат = ЭлементыФормы.Результат;
    
    // Инициализируем процессор вывода
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
        
КонецПроцедуры
12 тарам пам пам
 
17.12.14
16:06
(0), Тебе надо тупо сохранить в макете схемы список контрагентов, которых нужно выделить жирным?
Тогда не смотри на весь написанный бред, а установи оформление, какое нужно, в предприятии, затем сохрани настройку в файл и загрузи эту настройку в конфигураторе. Твой список контрагентов будет выглядеть как список гуидов (потому что конфигуратор не знает, чего там есть в предприятии). И не нужно извращаться с параметрами и их программной установкой.
13 spiller26
 
17.12.14
16:15
(12) Гуиды могут не совпадать, если ты разрабатываешь на копии, а потом в рабочую.
14 slasher
 
17.12.14
16:28
Всё получилось (причем разными способами), всем спасибо. Вы все такие творческие, я поражаюсь как я отстал в плане 1С. Вот что значит не программировать давно. Спасибо всем!
15 тарам пам пам
 
17.12.14
16:29
(13), коды тоже могут не совпадать, или, что еще хуже, могут принадлежать разным элементам в копии и в рабочей базе. Что так, что этак хреново - этот "жестко изначально заданный список" 100% будет изменен через какое-то время, поэтому
в идеале надо показать пользователю, где и как настраивается оформление.
Независимо от того, куда вы едете — это в гору и против ветра!