|
Как правильно передать параметр в запрос через СКД? | ☑ | ||
---|---|---|---|---|
0
Dotoshin
22.05.15
✎
14:34
|
Добрый день, уважаемые форумчане.
Помогите пожалуйста правильно сделать отчет. Есть такой запрос: ВЫБРАТЬ НоменклатураДополнительныеРеквизиты.Ссылка, НоменклатураДополнительныеРеквизиты.Значение ПОМЕСТИТЬ ОбластиПрименения ИЗ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты ГДЕ НоменклатураДополнительныеРеквизиты.Свойство = &ОбластьПрименения ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Номенклатура.Ссылка КАК Номенклатура, Номенклатура.Производитель, Номенклатура.Марка, ОбластиПрименения.Значение КАК ОбластиПрименения ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ОбластиПрименения КАК ОбластиПрименения ПО Номенклатура.Ссылка = ОбластиПрименения.Ссылка В параметрах СКД появляется параметр ОбластьПрименения. Как сделать чтобы этот параметр всегда содержал нужное значение. То есть в справочнике есть элемент, значение которого мне нужно всегда подставлять в качестве параметра. |
|||
1
Desna
22.05.15
✎
14:40
|
в параметрах укажи значение
|
|||
2
Desna
22.05.15
✎
14:42
|
или выражение если он не предопределенный или в модуле
|
|||
3
ssh2006
22.05.15
✎
14:44
|
(0) еще вариант - сделать предопределенным (для 8.3)
|
|||
4
РазДва
22.05.15
✎
14:47
|
а ещё можно сделать схему в режиме предприятия, указать в параметрах нужный элемент, а потом загрузить её в конфигуратор через xml
|
|||
5
Dotoshin
22.05.15
✎
15:02
|
Да в том то и дело, что элемент не предопределенный
|
|||
6
Dotoshin
22.05.15
✎
15:03
|
А как его в параметрах указать?
|
|||
7
Desna
22.05.15
✎
15:09
|
(4) прикольно, оно туда гуид пишет, спасибо не знал
|
|||
8
User_Agronom
22.05.15
✎
15:19
|
ХЗ = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ОбластьПрименения");
ХЗ.Использование = Истина; ХЗ.Значение = "находи его сам как-нибудь"; Я обычно делаю форму. Если тебе нужно этот параметр всегда один и тот же, тогда в событии приОткрытии, например. |
|||
9
Desna
22.05.15
✎
15:19
|
(4) только задачу это не решает
|
|||
10
Desna
22.05.15
✎
15:23
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных; Параметры.УстановитьЗначениеПараметра("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить()); |
|||
11
kosts
22.05.15
✎
15:24
|
Создай справочник. Назови его к примеру ДругиеПредопределенные. Добавить реквизит с именем Значение, с нужным тебе типом. Добавить предопределенный элемент в этот справочник (запомни имя). В режиме предприятия заполнишь руками Значение в предопределенном элемента. В запросе потом можно писать:
Чем всё это удобно- в конфигураторе изменения только один раз. Изменение значения делаются в предприятии (может к примеру, пользователь сменить). Т.е. полужесткая схема, вроде мы жестко сделали, но остается возможность легко поменять. И главное не вмешиваемся в предопределенные элементы типового справочника, что положительно сказывается на обновлении. |
|||
12
Dotoshin
22.05.15
✎
15:24
|
(8) А как лучше находить? По наименованию как-то не надежно - могут поменять наименование.
На счет формы вы имели ввиду, что надо на нее вывести этот параметр и пусть пользователь его каждый раз заполняет? |
|||
13
Dotoshin
22.05.15
✎
15:28
|
(11) У нас конфигурация на поддержке, не хочется с нее снимать.
|
|||
14
Desna
22.05.15
✎
15:30
|
(11) эта проста в мемориз
|
|||
15
Desna
22.05.15
✎
15:31
|
(11) это овнодело, но не овнокод
|
|||
16
kosts
22.05.15
✎
15:32
|
(15) Предложишь схему получше, поверю
|
|||
17
Desna
22.05.15
✎
15:33
|
(16) сделать отдельный справочник ПредопределенныеЭлементы и общую функцию повторного или неповторного использования, некоторые все равно потом грохают этот справочник и тулят все в константы таки.
|
|||
18
kosts
22.05.15
✎
15:34
|
(15) Чем один подход хуже другого, первое законно второе нет?...
|
|||
19
kosts
22.05.15
✎
15:35
|
(18) Имелось ввиду
|
|||
20
Dotoshin
22.05.15
✎
15:36
|
(17) То есть надо сделать константу и в нее загрузить значение нужного элемента? Я правильно понимаю?
|
|||
21
Desna
22.05.15
✎
15:37
|
(18) обычно делали ПредопределенныеЭлементы с ПВХ, зачем еще лезть в конфигуратор чтобы вносить предопределенные? по-сути предопределенные ничем от констант не отличаются
|
|||
22
Dotoshin
22.05.15
✎
15:37
|
и потом в параметры запроса передавать эту константу?
|
|||
23
Desna
22.05.15
✎
15:40
|
(22) нет, еще пример овнокода, может тебе сгодится
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных; Параметры.УстановитьЗначениеПараметра("Вася", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Вася", Истина)); |
|||
24
Dotoshin
22.05.15
✎
15:45
|
(23) Можно конечно и так, но хотелось бы обойтись без поисков по наименованию. Как-то это ненадежно.
|
|||
25
РазДва
22.05.15
✎
15:50
|
(24) А где ты всовываешь этот отчет, если конфигурация на поддержке и не хочется её снимать?
|
|||
26
Dotoshin
22.05.15
✎
15:51
|
(25) Как внешний отчет.
|
|||
27
Dotoshin
22.05.15
✎
15:54
|
Может быть есть какие-то рекомендации со стороны разработчиков, как нужно решать такие задачи?
|
|||
28
Desna
22.05.15
✎
15:59
|
(27) пользователь пусть сохраняет свои настройки
|
|||
29
Desna
22.05.15
✎
16:04
|
(28) упс, варианты у пользователя должны быть свои
|
|||
30
Dotoshin
22.05.15
✎
16:04
|
(28) Не понял, а как он это может сделать? Параметр-то внутри. Как пользователь до него доберется или вы предлагаете сделать этот параметр доступным для ввода в настройках и для каждого пользователя сохранить значение этого параметра?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |