Имя: Пароль:
1C
1С v8
СКД добавление условия
0 Sasha_H
 
28.09.11
20:34
Необходимо на форму добавить флажок по нажатию которого в запрос СКД должно добавится условие. Как это сделать?!

И НАЧАЛОПЕРИОДА(ВзаиморасчетыРазвернуто.ДоговорКонтрагента.СрокДействия, ДЕНЬ) >= НАЧАЛОПЕРИОДА(ВзаиморасчетыРазвернуто.Регистратор.Дата,ДЕНЬ)

соотв-но удалится условие после снятия флажка.
1 Mort
 
28.09.11
20:36
Сделай параметр в запросе
2 Никола_
Питерский
 
28.09.11
20:37
(1) +100 В типовых сделано через параметр
3 Mort
 
28.09.11
20:37
НЕ &ТвойМопедТфуФлажок ИЛИ (НАЧАЛОПЕРИОДА(ВзаиморасчетыРазвернуто.ДоговорКонтрагента.СрокДействия, ДЕНЬ) >= НАЧАЛОПЕРИОДА(ВзаиморасчетыРазвернуто.Регистратор.Дата,ДЕНЬ) )
4 Sasha_H
 
28.09.11
20:39
А как в настройках СКД куда написать необходимый текст?!
5 Sasha_H
 
28.09.11
20:43
каким образом вписать сюда это условие? и где необходимо в параметрах СКД флажок прописать, чтоб корректно работало.

|ГДЕ
|(НЕ ВзаиморасчетыРазвернуто.Регистратор.ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка))
   |   //УСЛОВИЕ_АКТУАЛЬНЫХ_РЕАЛИЗАЦИЙ
6 Mort
 
28.09.11
20:49
Процедура УстановитьПараметр(КомпоновщикНастроек, Поле, Значение)
   
   //1. Поиск среди параметров
   ПараметрПриемник = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Поле));    
   Если ПараметрПриемник <> Неопределено Тогда
       ИдНастройкиПриемника = КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьИдентификаторПоОбъекту(ПараметрПриемник);    
       ПараметрПНПриемника = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ИдНастройкиПриемника);
       Если ПараметрПНПриемника <> Неопределено Тогда
           ПараметрПНПриемника.Значение = Значение;
           ПараметрПНПриемника.Использование = Истина;
       Иначе
           ПараметрПриемник.Значение = Значение;
           ПараметрПриемник.Использование = Истина;
       КонецЕсли;
       Возврат;
   КонецЕсли;
   
   //2. Поиск среди отбора
   
   Если КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных(Поле)) <> Неопределено Тогда
       ЭлеменОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
       ЭлеменОтбора.Использование = Истина;
       ЭлеменОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Поле);
       ЭлеменОтбора.ВидСравнения =  ВидСравненияКомпоновкиДанных.Равно;
       ЭлеменОтбора.ПравоеЗначение = Значение;
   КонецЕсли;

КонецПроцедуры


// Пример вызова

           УстановитьПараметр(Отчет.КомпоновщикНастроек, "Отбирать", ФлагОтбирать);


А с запросом сам давай.