|   |   | 
| 
 | СКД. В коде задать значения параметра отбора. | ☑ | ||
|---|---|---|---|---|
| 0
    
        Fedor 29.11.11✎ 20:04 | 
        В отчете в отборе есть 1 параметр. Как при открытии этого отчета в коде установить конкретное значение этого параметра?     | |||
| 1
    
        DrShad 29.11.11✎ 20:31 | 
        а посмотреть в типовом отчете?     | |||
| 2
    
        Fedor 29.11.11✎ 20:42 | 
        Перепробовал много вариантов. Делал даже по примеру типового отчета. Значения присваиваются. Но в настройках запоминается последнее выбранное вручную значение.     | |||
| 3
    
        philosofka 29.11.11✎ 23:40 | 
        Процедура ПриОткрытии()
  Настройки = КомпоновщикНастроек.Настройки; КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = <нужное значение>; КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; КонецПроцедуры | |||
| 4
    
        Fedor 30.11.11✎ 01:17 | 
        (3) Отчет делаю на 1С 8.2, и там так не работает. Всё-равно при открытии устанавливает последний вариант, а не <нужное значение>. Но при закрытии пишет, что вариант отчета был изменен и спрашивает, сохранить ли вариант.     | |||
| 5
    
        MikleV 30.11.11✎ 01:28 | 
        подумать..что можно установить не только в ПриОткрытии()     | |||
| 6
    
        Fedor 30.11.11✎ 01:37 | 
        (5) Та не в том дело. Это понятно. Я и писал не только в ПриОткрытии(). И значение устанавливается (для проверки вывел его на форму). Но в отборе значение не меняется, хотя на вариант это влияет.     | |||
| 7
    
        MikleV 30.11.11✎ 01:39 | 
        в отборе не меняется - где?
  т.е. как понял, что не меняется | |||
| 8
    
        Fedor 30.11.11✎ 01:46 | 
        (7) На форме над полем результата есть поле "КомпоновщикНастроекПользовательскиеНастройки", в котором отображаются параметры с быстрым отбором. Там у этого параметра задано последнее заданное значение, и на устанавливаемое оно не меняется. И если нажать на кнопку "Настройка..." (редактировать текущие настройки отчета), то там то же значение.     | |||
| 9
    
        Fedor 30.11.11✎ 02:05 | 
        (7) Ну и, естественно, результат отчета соответствующий.     | |||
| 10
    
        kipish 30.11.11✎ 08:29 | 
        перем ОтборПодр;
  Процедура ОтборПодрПриИзменении(Элемент) Если ОтборПодр <> Неопределено Тогда ОтборПодр.ПравоеЗначение = ЭлементыФормы.ОтборПодр.Значение; Иначе ОтборПодр = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборПодр.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Подразделение")).Поле; ОтборПодр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборПодр.ПравоеЗначение = ЭлементыФормы.ОтборПодр.Значение; ОтборПодр.Использование = Истина; КонецЕсли; КонецПроцедуры ОтборПодр = Неопределено; | |||
| 11
    
        Fedor 30.11.11✎ 12:19 | 
        (10) Это нужно делать в форме отчета? Переменная ОтборПодр - это реквизит формы?     | |||
| 12
    
        Fedor 30.11.11✎ 13:29 | 
        Кто-то знает как в 8.2 в СКД устанавливать в коде значение параметра отбора?     | |||
| 13
    
        Kreont 30.11.11✎ 13:34 | 
        КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = ______;
  КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование = Истина; | |||
| 14
    
        Sulimov 30.11.11✎ 13:37 | 
        а что у тебя? обычное приложение или управляемое?     | |||
| 15
    
        Fedor 30.11.11✎ 13:39 | 
        (14) Управляемое приложение.     | |||
| 16
    
        Sulimov 30.11.11✎ 13:48 | 
        А где ты хочешь отбор установить в общих настройках или пользовательских (которые на форме)?     | |||
| 17
    
        Fedor 30.11.11✎ 14:06 | 
        в пользовательских, которые на форме.     | |||
| 18
    
        Sulimov 30.11.11✎ 14:12 | 
        Тогда нужно как-то так:
  ЭлементыОтбора = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; мОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[4]; мОтбор.Использование = Истина; Надо в отладчике посмотреть, какой индекс и как до него достучаться. Я только проверку делал, установлен или нет... | |||
| 19
    
        Fedor 30.11.11✎ 14:13 | 
        Я делал так:
  КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = <нужное значение> Значение устанавливается, но на параметр отбора это не влияет. | |||
| 20
    
        Fedor 30.11.11✎ 14:16 | 
        (18) А это где должно быть написано? Я делал ПриСозданииНаСервере и ПриОткрытии, там пишу Отчет.КомпоновщикНастроек.Настройки.Отбор... Но как нужно не работает.     | |||
| 21
    
        Sulimov 30.11.11✎ 14:17 | 
        Мне нужно было ПриКомпоновкеРезультата()     | |||
| 22
    
        Sulimov 30.11.11✎ 14:18 | 
        (19) Так вот это у тебя в общих настройках...     | |||
| 23
    
        Sulimov 30.11.11✎ 14:19 | 
        ты попробуй напиши так ПриОткрытии()     | |||
| 24
    
        Fedor 30.11.11✎ 14:32 | 
        Написал так: Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.
  Но там нет нужного параметра. Похоже я не правильно объяснил ситуацию. В запросе пишу: ВЫБРАТЬ Документ1.Ссылка.Реквизит1 КАК НужноеПоле ... Потом в Настройках отчета на вкладке Отбор добавляю отбор по полю НужноеПоле. И при открытии отчета хочу установить в качестве значения этого отбора нужное значение. | |||
| 25
    
        Sulimov 30.11.11✎ 14:53 | 
        Ну так выбрал запросом и в пользовательские пихай... Не получается что-ли?     | |||
| 26
    
        Fedor 30.11.11✎ 15:06 | 
        Получается. Но, я хочу, чтоб при открытии отчета одно конкретное значение в отборе устанавливалось автоматически. А дальше сделал, чтоб для разных прав было доступно или не доступно изменение этого параметра отбора.     | |||
| 27
    
        Sulimov 30.11.11✎ 15:29 | 
        Ну так а просто настройки сохранить..?     | |||
| 28
    
        Fedor 30.11.11✎ 15:32 | 
        Не пойдет.     | |||
| 29
    
        Fedor 30.11.11✎ 15:53 | 
        Другие варианты есть? Нужно именно в коде установить необходимое значение отбора.     | |||
| 30
    
        Sulimov 30.11.11✎ 15:54 | 
        Так а как ты пишешь, еще раз? И куда, еще раз, хочешь установить?     | |||
| 31
    
        Fedor 30.11.11✎ 16:09 | 
        В запросе пишу:
  ВЫБРАТЬ Документ1.Реквизит1 КАК Реквизит1, Документ1.Реквизит2 КАК Реквизит2, Документ1.Ссылка ИЗ Документ.Документ1 КАК Документ1 ГДЕ Документ1.Проведен И (НЕ Документ1.ПометкаУдаления) В отбор добавляю поле Реквизит1. У отчета, кроме СКД, создаю форму отчета и форму настроек. При открытии отчета в поле КомпоновщикНастроекПользовательскиеНастройки находится параметр Реквизит1, который я хочу автоматически заполнять конкретным значением (он не во всех случаях будет доступен для изменения вручную. | |||
| 32
    
        Fedor 30.11.11✎ 16:45 | 
        Делал так, но на значение отбора это не повлияло.
  ОтборПодр = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0]; ОтборПодр.ЛевоеЗначение = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Реквизит1")).Поле; ОтборПодр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборПодр.ПравоеЗначение = "123"; //ЭлементыФормы.ОтборПодр.Значение; ОтборПодр.Использование = Истина; | |||
| 33
    
        kipish 01.12.11✎ 10:01 | 
        (11) Переменная ОтборПодр - это реквизит формы?
  ЭлементыФормы.ОтборПодр.Значение; // здесь да, эл формы всё остальное переменная так обозвана просто. Да в модуле формы! Скачай книгу хрусталёвой и почитай там есть примеры. Процедура ПриОткрытии() ОтборОрг = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборОрг.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Организация")).Поле; ОтборОрг.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборОрг.ПравоеЗначение = Справочники.Организации.НайтиПоКоду("000000001"); ОтборОрг.Использование = Истина; //-----------------------------------------------------------------------// КонецПроцедуры может это тебе поможет | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |