Имя: Пароль:
1C
1С v8
Программная инициализация параметров в СКД (8.3)
0 lucifer
 
21.10.13
14:23
Этим кодом я изменяю значение параметра.

ПараметрыДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных;  
  Для Каждого Элемент Из ПараметрыДанных.Элементы Цикл
    Если Строка(Элемент.Параметр) = "Период" Тогда
      Элемент.Значение      = НачалоМесяца(ОтчетНаДату);  // для отладки пока так
      Элемент.Использование = Истина;    
    КонецЕсли;  
  КонецЦикла;

После выполнения этого кода отчет перестает вообще выводить данные.
вот скрин на котором видно что данные параметру присвоились
http://fscreen.ru/gallery/21-10-14-22-45_1079248.jpg

Почему в 8.3 это перестало работать? 8.2 все работало
1 lucifer
 
21.10.13
14:57
кукуалло
2 Леха Дум
 
21.10.13
15:07
Странный ты, показываешь скрин из отладчика с заполненным параметром и говоришь не работает... может все таки запрос кривенький?
3 lucifer
 
21.10.13
15:11
этот запрос вставляю в консоль запросов, данные выводятся
4 lucifer
 
21.10.13
15:14
комментирую код (0) все работает
5 МойКодУныл
 
21.10.13
15:16
А если параметр не задан, точней пустая дата '00010101'. отчет должен что-то выводить? Может не там ставишь? и он при выполнении запроса пуст
6 r_p
 
21.10.13
15:27
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период",НачалоМесяца(ОтчетНаДату))
7 lucifer
 
21.10.13
15:28
(5) если оставить пустым и сказать что этот параметр используется, будет ошибка что-то типа параметр не заполнен, если сказать что параметр не используется то ошибки не будет, и отчет сформируется, по всей видимости СКД будет выполнять запрос так ****.СрезПоследних() т.е. как буд-то параметра нет
8 lucifer
 
21.10.13
15:31
(6) такая же фигня
9 r_p
 
21.10.13
15:33
Попробуй запихнуть "Период" в компоновку в СКД.
10 lucifer
 
21.10.13
15:34
(9) куда?
11 lucifer
 
21.10.13
15:35
(9) СхемаКомпоновкиДанных.Параметры - сюда?
12 r_p
 
21.10.13
15:35
В конструкторе запроса в СКД во вкладку "Компоновка данных", а там "Условия"
13 Nenaviwu1c20
 
21.10.13
15:45
ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
    
    Если ЗначениеПараметра <> Неопределено и ЗначениеПараметра.Значение = '00010101' тогда
        
        ЗначениеПараметра.Значение = НачалоМесяца(ОбщегоНазначения.ПолучитьРабочуюДату());
        
    КонецЕсли;
14 tenikov
 
21.10.13
15:46
(0) на сервере\клиенте?
15 lucifer
 
21.10.13
15:54
(14) на сервере
16 lucifer
 
21.10.13
16:02
(13) вааах, неужели работает )) Спасибо тебе ОГРОМЕННОЕ. А у меня уже тремор начинается когда я слышу про СКД  ))