Имя: Пароль:
1C
1С v8
Передача параметров в динамический список
,
0 serega1977
 
27.06.12
21:35
1C 8.2 УНФ 8.2.13.205
Произвольный запрос по справочнику номенклатуры.
ВЫБРАТЬ
   ЗапасыНаСкладахОстаткиИОбороты.Номенклатура.Код,
   ЗапасыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ЗапасыНаСкладах.ОстаткиИОбороты КАК ЗапасыНаСкладахОстаткиИОбороты
ГДЕ
   &Отображать = ИСТИНА
Имя параметра "Отбор".
Мне необходимо чтобы обработка запустилась, выставить необходимые отборы и только после этого заполнился ДС. Может не совсем корректно описал задачу (как сам понимаю).
1 vs7719
 
27.06.12
22:02
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Список.Параметры.УстановитьЗначениеПараметра("Отображать ", Истина);
КонецПроцедуры
2 serega1977
 
27.06.12
22:07
Ошибка при открытии обработки
{(7, 2)}: Не задано значение параметра "Отображать"
<<?>>&Отображать = ИСТИНА
3 Rovan
 
гуру
27.06.12
22:35
(2) покажи-ка твой код !
4 serega1977
 
27.06.12
22:40
Имя списка "Наличие"
Сам запрос

ВЫБРАТЬ
   ЗапасыНаСкладахОстаткиИОбороты.Номенклатура.Код,
   ЗапасыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ЗапасыНаСкладах.ОстаткиИОбороты КАК ЗапасыНаСкладахОстаткиИОбороты
ГДЕ
   &Отображать = ИСТИНА

На форме

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Наличие.Параметры.УстановитьЗначениеПараметра("Отображать ", Истина);
КонецПроцедуры
5 rs_trade
 
27.06.12
22:55
в правом верхнем углу есть кнопка Я. нажми на нее.
6 serega1977
 
27.06.12
23:07
(5)хороша кнопка, но не помогло к сож.
7 serega1977
 
28.06.12
08:05
(2)прошу подсказать, что не правильно.
8 rphosts
 
28.06.12
08:15
&Отображать = ИСТИНА

это в запросе имеет следующий смысл: если передаваемый параметр с именем "Отображать" имеет некоторое значение точно такое-же как у какого-то ИСТИНА.  

Если действительно нужно передавать такой парамтер и он имеет тип булево, пишите так: &Отображать
9 serega1977
 
28.06.12
08:36
(8)спасибо что поясняешь, ведь так и написано или нет?
10 serega1977
 
28.06.12
09:00
просьба покажите в коде где ошибка.
11 aleks-id
 
28.06.12
09:02
бред какой то а не код
12 aleks-id
 
28.06.12
09:02
зачем тебе ОстаткиИОбороты если ты оттуда берешь только конечный остаток?
зачем тебе этот бредовый параметр?
13 serega1977
 
28.06.12
09:05
(12) скажи тогда как сделать чтобы ДС не заполнялся при открытии, а только после заданных отборов.
14 serega1977
 
28.06.12
09:07
(12)отборы в ДС каждый раз будут задаваться разные, например кол-во больше 0, или по группам номенклатуры.
15 serega1977
 
28.06.12
09:17
(12) так что бредового, объясни.
16 Rovan
 
гуру
28.06.12
09:23
(4) а пробел зачем ?

Наличие.Параметры.УстановитьЗначениеПараметра("Отображать ", Истина);
надо
Наличие.Параметры.УстановитьЗначениеПараметра("Отображать", Истина);
17 Rovan
 
гуру
28.06.12
09:24
(+8) такой параметр лучше ставить в виртуальную таблицу !
18 aleks-id
 
28.06.12
09:26
(13) я бы сделал так.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Наличие.ТекстЗапроса="";
КонецПроцедуры
19 serega1977
 
28.06.12
09:26
(17) да пробел лишний, но ошибка осталась
{(7, 2)}: Не задано значение параметра "Отображать"
<<?>>&Отображать = ИСТИНА
20 serega1977
 
28.06.12
09:33
(18) ДС не должен заполниться при открытии?
21 Avalone2010
 
28.06.12
09:35
как пример из УТ 11:
ОбщегоНазначенияКлиент.ИзменитьЭлементОтбораСписка(СписокЗаявокНаОплату  , "Организация", Организация, ЗначениеЗаполнено(Организация));

// Устанавливает элемент отбор динамического списка
//
//Параметры:
//Список            - обрабатываемый динамический список,
//ИмяПоля            - имя поля компоновки, отбор по которому нужно установить,
//ВидСравнения        - вид сравнения отбора, по умолчанию - Равно,
//ПравоеЗначение    - значение отбора
Процедура ИзменитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение = Неопределено, Установить = Ложь, ВидСравнения = Неопределено) Экспорт
   
   УдалитьЭлементОтбораСписка(Список, ИмяПоля);
   
   Если Установить Тогда
       УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения);
   КонецЕсли;
   
КонецПроцедуры // ИзменитьЭлементОтбораСписка()


// Удаляет элемент отбора динамического списка
//
//Параметры:
//Список  - обрабатываемый динамический список,
//ИмяПоля - имя поля компоновки, отбор по которому нужно удалить
//
Процедура УдалитьЭлементОтбораСписка(Список, ИмяПоля) Экспорт
   
   УдалитьЭлементОтбораКоллекции(Список.Отбор.Элементы, ИмяПоля);
   
КонецПроцедуры // УдалитьЭлементОтбораСписка()


// Устанавливает элемент отбор динамического списка
//
//Параметры:
//Список            - обрабатываемый динамический список,
//ИмяПоля            - имя поля компоновки, отбор по которому нужно установить,
//ВидСравнения        - вид сравнения отбора, по умолчанию - Равно,
//ПравоеЗначение    - значение отбора
//
Процедура УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено) Экспорт
   
   УстановитьЭлементОтбораКоллекции(Список.Отбор.Элементы, ИмяПоля, ПравоеЗначение, ВидСравнения);
   
КонецПроцедуры // УстановитьЭлементОтбораСписка()


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



Процедура УстановитьЭлементОтбораКоллекции(КоллекцияЭлементов, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено)
   
   ЭлементОтбора = КоллекцияЭлементов.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(ИмяПоля);
   ЭлементОтбора.ВидСравнения     = ?(ВидСравнения = Неопределено, ВидСравненияКомпоновкиДанных.Равно, ВидСравнения);
   ЭлементОтбора.Использование    = Истина;
   ЭлементОтбора.ПравоеЗначение   = ПравоеЗначение;
   ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   
КонецПроцедуры // УстановитьЭлементОтбораСписка()
22 Avalone2010
 
28.06.12
09:35
все работает, все проверенно.