![]() |
![]() |
![]() |
|
Как в СКД добавить параметр программно | ☑ | ||
---|---|---|---|---|
0
Point
27.05.10
✎
11:04
|
Может где-то и было, но не нашел.
Дайте пинок в нужном направлении. |
|||
1
Point
27.05.10
✎
11:09
|
Актуально!
|
|||
2
Andry888
27.05.10
✎
11:11
|
||||
3
also
27.05.10
✎
11:11
|
на кнопочку я рядом с темой нажать
|
|||
4
also
27.05.10
✎
11:14
|
Его надо добавить интерактивно, а программно управлять его использованием
|
|||
5
Point
27.05.10
✎
11:15
|
(4) делал так
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Клиент")); Если Параметр <> Неопределено Тогда Если НЕ ЗначениеНеЗаполнено(ВыбКлиент) Тогда Параметр.Значение = ВыбКлиент; Параметр.Использование = Истина; Иначе Параметр.Значение = Неопределено; Параметр.Использование = Ложь;; КонецЕсли; КонецЕсли; Выдает ошибку, типа парметр не задан. |
|||
6
Megas
27.05.10
✎
11:16
|
Дата = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата");
Если Дата <> Неопределено тогда Дата.Использование = Истина; Дата.Значение = КонецДня(ТекущаяДата()); КонецЕсли; |
|||
7
also
27.05.10
✎
11:17
|
(5) КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Использование = Истина;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Значение = ВыбКлиент; |
|||
8
Point
27.05.10
✎
11:23
|
(7) А параметр должен быть задан в запросе и на закладке параметры (схемы) или только на закладке параметры?
|
|||
9
luns
27.05.10
✎
11:24
|
||||
10
also
27.05.10
✎
11:30
|
(8) на закладке параметры и еще обрати внимание на последний флажок на это на этой вкладке
|
|||
11
Megas
27.05.10
✎
11:34
|
Если у тебя срабатывает то будет ошибка.
Параметр.Значение = Неопределено; Параметр.Использование = Ложь; Если параметр "НЕОБХОДИМ" то его необходимо использовать = истина! |
|||
12
Смешной 1С
27.05.10
✎
11:48
|
Ну что, получилось? У меня такая же проблема, хотелось бы знать решение
|
|||
13
also
27.05.10
✎
11:50
|
(12) какая у тебя проблема? внимательно прочитай (7) и (10) )))
|
|||
14
Смешной 1С
27.05.10
✎
11:58
|
У меня проблема в том, что когда программно ставлю - не срабатывает (хотя если в настройках глянуть, значение у параметра стоит). Если в СКД параметр указываю - все отлично работает.
|
|||
15
Point
27.05.10
✎
13:17
|
(12) Не получилось.
Вот запрос: ВЫБРАТЬ ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Основание, ЗаказПоставкиЭУТабличнаяЧасть.Комплект, ЗаказПоставкиЭУТабличнаяЧасть.Комплект.Наименование, ЗаказПоставкиЭУТабличнаяЧасть.НомерПроекта, ЗаказПоставкиЭУТабличнаяЧасть.НомерЯчейки, ЗаказПоставкиЭУТабличнаяЧасть.Количество, ЗаказПоставкиЭУТабличнаяЧасть.Сумма, ЗаказПоставкиЭУТабличнаяЧасть.Ссылка, ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Клиент КАК Клиент ИЗ Документ.ЗаказПоставкиЭУ.ТабличнаяЧасть КАК ЗаказПоставкиЭУТабличнаяЧасть Вот процедура: Процедура СформироватьОтчет() КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; СхемаКомпоновки = Отчеты.СтруктараКомплектовЭУ.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Если НЕ ЗначениеНеЗаполнено(ВыбКлиент) Тогда КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Использование = Истина; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Значение = ВыбКлиент; Иначе КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Использование = Ложь; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Клиент").Значение = ВыбКлиент; КонецЕсли; Настройки = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки); КомпоновщикНастроек.Инициализировать(Настройки); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки,КомпоновщикНастроек.Настройки); ПроцессорКомпановкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпановкиДанных.Инициализировать(МакетКомпоновки); ЭлементыФормы.Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпановкиДанных); КонецПроцедуры Что не так? |
|||
16
Смешной 1С
27.05.10
✎
13:20
|
(15) ошибки или просто не выводит?
|
|||
17
Point
27.05.10
✎
13:23
|
(16) Ошибки не дает.
По идее должен вывести в отчет, только те записи, у которых Клиент = ВыбКлиент. Но выводит все. |
|||
18
also
27.05.10
✎
13:23
|
ВЫБРАТЬ
ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Основание, ЗаказПоставкиЭУТабличнаяЧасть.Комплект, ЗаказПоставкиЭУТабличнаяЧасть.Комплект.Наименование, ЗаказПоставкиЭУТабличнаяЧасть.НомерПроекта, ЗаказПоставкиЭУТабличнаяЧасть.НомерЯчейки, ЗаказПоставкиЭУТабличнаяЧасть.Количество, ЗаказПоставкиЭУТабличнаяЧасть.Сумма, ЗаказПоставкиЭУТабличнаяЧасть.Ссылка, ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Клиент КАК Клиент ИЗ Документ.ЗаказПоставкиЭУ.ТабличнаяЧасть КАК ЗаказПоставкиЭУТабличнаяЧасть ГДЕ ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Клиент = &Клиент |
|||
19
Смешной 1С
27.05.10
✎
13:25
|
а в настройку глянь, параметр поставился?
попробуй в СКД ручками задать какой-нибудь параметр. |
|||
20
Point
27.05.10
✎
13:26
|
(18) так дает ошибку если в ВыбКлиент вообще ничего не выбрано
(19) Параметр стоит. |
|||
21
Смешной 1С
27.05.10
✎
13:27
|
(20) ну а как ты хотел без ГДЕ?
Через отбор тогда делай |
|||
22
Point
27.05.10
✎
13:29
|
(21) Можно ведь как-то наверное как-то так сделать?
{ГДЕ ЗаказПоставкиЭУТабличнаяЧасть.Ссылка.Клиент.*} |
|||
23
also
27.05.10
✎
13:40
|
Тебе отбор нужен, а не параметр
|
|||
24
also
27.05.10
✎
13:42
|
Если ЗначениеЗаполнено(ВыбКлиент) Тогда
ОтборКлиент = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеКомпановки = Новый ПолеКомпоновкиДанных("Клиент"); ОтборКлиент .Использование = Истина; ОтборКлиент .ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборКлиент .ЛевоеЗначение = ПолеКомпановки; ОтборКлиент .ПравоеЗначение = ВыбКлиент ; КонецЕсли; |
|||
25
Смешной 1С
27.05.10
✎
13:51
|
(24) Вот я уже и через параметр и через отбор, у меня ничего не выводит, как в (14) писал:(
|
|||
26
also
27.05.10
✎
13:59
|
(25) весь код кажи
|
|||
27
Смешной 1С
27.05.10
✎
14:11
|
(26) Как я только не делал... Ну вот последний через отбор:
Если ЭлементыФормы.ПодразделениеВвод.Значение <> "" Тогда ОтборКлиент = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеКомпановки = Новый ПолеКомпоновкиДанных("Наименование2"); ОтборКлиент.Использование = Истина; ОтборКлиент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборКлиент.ЛевоеЗначение = ПолеКомпановки; ОтборКлиент.ПравоеЗначение = ЭлементыФормы.ПодразделениеВвод.Значение; КонецЕсли; Но дело в том, что значение ставиться: Он пишет, что Наименование2 = "Нужное свойство" В параметрах все стоит. Но НИЧЕГО не выводит... |
|||
28
also
27.05.10
✎
14:16
|
Весь код )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |