Имя: Пароль:
1C
1С v8
Как программно установить параметр?Отчет СКД!
0 Taffy
 
17.06.12
17:05
Добрый день!Подскажите пжл.делаю Отчет.Есть 2 параметра.Один параметр задаю во вкладке параметр,другой хочу установить программно.
Код запроса:
ВЫБРАТЬ
   Партии.Количество,
   Партии.Номенклатура,
   РеализацияТоваровУслуг.Контрагент
ИЗ
   РегистрНакопления.Партии КАК Партии
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ПО Партии.Регистратор = РеализацияТоваровУслуг.Ссылка
ГДЕ
   Партии.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
   И Партии.СтатусЗаписи = &СтатусЗаписи
   И РеализацияТоваровУслуг.Контрагент В ИЕРАРХИИ(&Контрагент)


В модуле Форме отчета устанавливаю параметр:

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

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


Подскажите пожалуйста,почему не срабатывает у не отбирает нужный параметр.спасибо
1 Конфигуратор1с
 
17.06.12
17:09
(0)потому что в подразумевает список значений
2 zippygrill
 
17.06.12
17:09
попробуй по индексу получить твой параметр.
3 Конфигуратор1с
 
17.06.12
17:09
Проверьте тип значения параметра в настройках скд
4 sanja26
 
17.06.12
17:10
причем тут список
5 sanja26
 
17.06.12
17:11
000008772 - папка?
6 sanja26
 
17.06.12
17:11
процедура ПриКомпоновкеРезультата()
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Контрагент");
ПараметрДанных.Значение = Справочники.Контрагенты.НайтиПоКоду("000008772");
ПараметрДанных.Использование=Истина;
7 Конфигуратор1с
 
17.06.12
17:12
(4)при том, что если у параметра стоит тип список значений, а она передает значение справочник ссылку, то фиг он ей что отбирет
8 sanja26
 
17.06.12
17:12
(7) и где ты там увидел список????
9 Taffy
 
17.06.12
17:13
тип СправочникСсылка.Контрагенты
10 sanja26
 
17.06.12
17:13
(9) мы про параметр в запросе
11 sanja26
 
17.06.12
17:14
))
12 sanja26
 
17.06.12
17:15
(7) Для справочников проверка может осуществляться и на принадлежность по иерархии. Результатом оператора В ИЕРАРХИИ будет ИСТИНА, если значение выражения слева является ссылкой на элемент справочника и входит во множество значений справа или иерархически принадлежит какой-нибудь группе, содержащейся в этом множестве:

Пример:
// В качестве параметра Группа в запрос передается ссылка
// на какую-либо группу справочника Номенклатура.

ВЫБРАТЬ
  Справочник.Номенклатура.Наименование

ГДЕ
  Справочник.Номенклатура.Ссылка В ИЕРАРХИИ (&Группа)

В качестве множества значений, на совпадение с которыми выполняется проверка, может фигурировать и результат запроса. В этом случае справа от оператора В необходимо указать описание запроса.

Пример:
ВЫБРАТЬ
  Справочник.Номенклатура.Наименование

ГДЕ
  Справочник.Номенклатура.Ссылка В ИЕРАРХИИ
  (
     ВЫБРАТЬ
        Справочник.Номенклатура.Ссылка
     ГДЕ
        Справочник.Номенклатура.Наименование = "Одежда"
13 Taffy
 
17.06.12
17:16
000008772 -да, папка.
14 sanja26
 
17.06.12
17:17
(9) нашла процедура ПриКомпоновкеРезультата()?
15 Necessitudo
 
17.06.12
17:17
(0) ну в отладчике посмотри, параметр устанавливается?
16 Конфигуратор1с
 
17.06.12
17:17
Замените на
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ИмяПараметра,ЗначениеПараметра);
17 sanja26
 
17.06.12
17:18
при открытии вообще воде нет компоновщика настроек..
18 Конфигуратор1с
 
17.06.12
17:18
ИмяПараметра = "Контрагент", ЗначениеПараметра = Справочники.Контрагенты.НайтиПоКоду("000008772")
19 Конфигуратор1с
 
17.06.12
17:18
(17)есть
20 Necessitudo
 
17.06.12
17:20
Схема вообще установлена как главная?
21 sanja26
 
17.06.12
17:21
так может форма вообще не нужна. зачем городить?
22 Taffy
 
17.06.12
17:22
форма нужна.в модуле формы правильно устанавливать параметры?
23 Конфигуратор1с
 
17.06.12
17:22
А отбор не работает как - вообще ничего не выводит или выводит все?
24 Taffy
 
17.06.12
17:24
выводит все.а мне нужны контрагенты из определенно папки
25 sanja26
 
17.06.12
17:24
может пользовательские настройки нужны? как-то мало описания про отчет.
26 sanja26
 
17.06.12
17:25
вообщем смотри (6)
27 Конфигуратор1с
 
17.06.12
17:28
(24) пришлите в общем на почту
28 Taffy
 
17.06.12
17:33
отправила.спасибо
29 Конфигуратор1с
 
17.06.12
17:46
(28)Во первых все таки лучше
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ИмяПараметра,ЗначениеПараметра);
Во вторых, не отбирает, потому что приоткрытии обработчику событий не назначена, поэтому она и не работает
30 Taffy
 
17.06.12
17:52
спасибо большое:)упустила.все получилось)
31 Taffy
 
17.06.12
17:59
а где еще можно передавать значение параметра?например я сейчас буду соединять 2 запроса:из одного мне нужны одни определенные контрагенты,из другого другие.как в таком случае задавать параметры?
32 Конфигуратор1с
 
17.06.12
18:15
Просто создайте два параметра Контрагенты1 и контрагенты2

и задавайте оба параметра
33 Taffy
 
17.06.12
22:20
Процедура ПриОткрытии()
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Контрагент");
ПараметрДанных.Значение = Справочники.Контрагенты.НайтиПоКоду("000008772");
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Контрагент1");
ПараметрДанных.Значение = Справочники.Контрагенты.НайтиПоКоду("000006338");
ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Склады");
ПараметрДанных.Значение = Справочники.Контрагенты.НайтиПоКоду("000000029");
ПараметрДанных.Использование=Истина;

КонецПроцедуры
Примерно так?