| 
    
            
         
         | 
    
    
  | 
Заменить запрос СКД тонкий клиент | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ghostrid3r    
     27.09.13 
            ✎
    18:53 
 | 
         
        Доброго времени суток уважаемые форумчане помогите решить проблему, столкнулся вот с чем, есть отчет на СКД со своей формой под тонкий клиент, там есть Реквизит - С наработкой (тип булево). Так вот когда галочка не стоит пытаюсь поменять запрос обычным методом :
 
        СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Отчет").СхемаКомпоновкиДанных; Если НЕ СНаработкой Тогда СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = СтрЗаменить(СхемаКомпоновкиДанных.НаборыДанных[0].Запрос,"ГДЕ ИСТИНА", "ГДЕ ИСТИНА И ВыпускПродукции.Стоимость <> 0"); КонецЕсли; В резултате сей манипуляции получаю точно такой же запрос как и был, те СтрЗаменить не срабатывает.  | 
|||
| 
    1
    
        User_Agronom    
     27.09.13 
            ✎
    18:56 
 | 
         
        Предположу: может во фразе "ГДЕ ИСТИНА" пробелов несколько не столько?     
         | 
|||
| 
    2
    
        User_Agronom    
     27.09.13 
            ✎
    18:57 
 | 
         
        Вообще смысл "ГДЕ Истина" несколько непонятен. 
 
        Всё равно же истина.  | 
|||
| 
    3
    
        discovery science    
     27.09.13 
            ✎
    18:59 
 | 
         
        где истина что?     
         | 
|||
| 
    4
    
        fisher    
     27.09.13 
            ✎
    18:59 
 | 
         
        Знатный изврат. Никогда так не пробовал.
 
        А не проще в запросе написать ГДЕ НЕ &СНаработкой ИЛИ ВыпускПродукции.Стоимость <> 0?  | 
|||
| 
    5
    
        ghostrid3r    
     27.09.13 
            ✎
    19:01 
 | 
         
        (2) оно понятно что истина, где истина тут используются больше для СТРЗаменить чтобы знать где и что менять.     
         | 
|||
| 
    6
    
        discovery science    
     27.09.13 
            ✎
    19:01 
 | 
         
        (4)имха, это не изврат, а косяк     
         | 
|||
| 
    7
    
        Franchiser    
     27.09.13 
            ✎
    19:09 
 | 
         
        (4) +, сам так делаю, подсмотрел в типовой, так запрос не портится     
         | 
|||
| 
    8
    
        Franchiser    
     27.09.13 
            ✎
    19:10 
 | 
         
        Либо можно использовать оператор Выбора     
         | 
|||
| 
    9
    
        Franchiser    
     27.09.13 
            ✎
    19:12 
 | 
         
        Выбор когда не &снаработкой тогда истина иначе выпускпродукции.стоимость<>0 конец     
         | 
|||
| 
    10
    
        Fragster    
     модератор 
    27.09.13 
            ✎
    19:33 
 | 
         
        (4) еще проще в отбор это добавить безо всяких ИЛИ, ВЫБОР и НЕОПРЕДЕЛЕНО     
         | 
|||
| 
    11
    
        Fragster    
     модератор 
    27.09.13 
            ✎
    19:34 
 | 
         
        а все от того, что никто построитель не учил, когда только он был     
         | 
|||
| 
    12
    
        ghostrid3r    
     27.09.13 
            ✎
    19:47 
 | 
         
        (4) Ок с вашим варинтом согласен, но тут есть одна загвоздка, это в том что СНаработкой это должна быть галочка на форме отчета, вот тут и загвоздка как передать эту галочку в пользовательские настройки. Поставить на этом параметре в отчете включить в пользовательские настройки не разрешают, говорят отдельно галочека на форме.     
         | 
|||
| 
    13
    
        Noroving    
     27.09.13 
            ✎
    22:34 
 | 
         
        (0) Честно говоря, все это мне кажется бредовой идеей. Лично я решал этот вопрос посредством СКД. Все что нужно прописываеш в запросе СКД. Выводиш параметр в настройках СКД, но не доступный для пользователя. В модуле формы при открытии и изменении твоего флага срабатывает процедурка: 
 
        &НаКлиенте Процедура УстановитьПараметрыОтчета() Настройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы; //получаем настройки СКД ПарамСНаработкой = Настройки.Найти("СНаработкой"); Если ПарамСНаработкой <> Неопределено Тогда ПарамСНаработкой.Использование = Истина; ПарамСНаработкой.Значение = СНаработкой; КонецЕсли; ЭтаФорма.ВариантМодифицирован = Ложь; КонецПроцедуры // УстановитьПараметрыОтчета() Если Параметр выведен в польз. настройках, тогда нужно еще получеть его по идентификатору: ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; //получаем пользовательские настройки ПарамСНаработкойПольз = ПользовательскиеНастройки.Найти(ПарамСНаработкой.ИдентификаторПользовательскойНастройки); Если ПарамСНаработкойПольз <> Неопределено Тогда ПарамСНаработкойПольз.Использование = Истина; ПарамСНаработкойПольз.Значение = СНаработкой; КонецЕсли; Радуемся)  | 
|||
| 
    14
    
        GANR    
     27.09.13 
            ✎
    23:09 
 | 
         
        (0) Не знаю! Я пробовал в событии модуля объекта (отчета) ПриКомпоновкеДанных (не помню точно название) подсунуть другой запрос - все прекрасно работает.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |