Показано с 1 по 10 из 12
Тема: Запрос с параметром
-
13.01.2017, 23:51 #1
- Регистрация
- 08.12.2016
- Сообщений
- 11
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Запрос с параметром
Хочу получить запросом запись из справочника. Конкретную запись получаю через параметр. Потом запросом заполняю макет.На нем есть кнопка и реквизит "Цель"
Но проблема в том,что запрос в результате оказывается пустой. Подскажите,как решить проблему?!
Код:&НаКлиенте Процедура СформироватьОтчет(Команда) ЗаполнитьТабДок(ТабДок,Цель); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьТабДок(ТабДок,Цель) ТабДок.Очистить(); Макет = Отчеты.ТестовыйОтчет.ПолучитьМакет("Макет"); ОблШапка = Макет.ПолучитьОбласть("Шапка"); ОблЭлемент = Макет.ПолучитьОбласть("Элемент"); ОблШапка.Параметры.ДатаОтчета = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy; ДЛФ=DDT"); ТабДок.Вывести(ОблШапка); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПрограммыТренировок.Программа.Реквизит1, | ПрограммыТренировок.Ссылка |ИЗ | Справочник.ПрограммыТренировок КАК ПрограммыТренировок |ГДЕ | ПрограммыТренировок.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Цель); Результат = Запрос.Выполнить(); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ОблЭлемент.Параметры.Заполнить(Выборка); ТабДок.Вывести(ОблЭлемент); КонецЦикла; КонецПроцедуры
-
14.01.2017, 09:06 #2
- Регистрация
- 29.11.2013
- Адрес
- Берег Волги
- Сообщений
- 1962
- Сказал(а) спасибо
- 644
- Поблагодарили 10121 раз(а) в 2661 сообщениях
Re: Запрос с параметром
Что собой представляет реквизит Цель?
-
14.01.2017, 11:16 #3
- Регистрация
- 08.12.2016
- Сообщений
- 11
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Запрос с параметром
Это объект перечисление. Если же цель совпадает с одной из ссылок в справочнике. то беру именно эту строку. Могу скрин выложить. будет понятнее
-
14.01.2017, 14:51 #4
- Регистрация
- 29.11.2013
- Адрес
- Берег Волги
- Сообщений
- 1962
- Сказал(а) спасибо
- 644
- Поблагодарили 10121 раз(а) в 2661 сообщениях
-
14.01.2017, 19:59 #5
- Регистрация
- 08.12.2016
- Сообщений
- 11
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Запрос с параметром
Вот смотрите. Я выбираю цель(ПеречислениеСсылка.Це льПриСоставленииПрограммы Тренировок)
https://pp.vk.me/c837735/v837735275/...xnZywpejvI.jpg
Потом это значение передаю в процедуру. И сравниваю в запросе. Но если не так,то как иначе мне это реализовать.
-
15.01.2017, 08:26 #6
- Регистрация
- 29.11.2013
- Адрес
- Берег Волги
- Сообщений
- 1962
- Сказал(а) спасибо
- 644
- Поблагодарили 10121 раз(а) в 2661 сообщениях
Re: Запрос с параметром
Как я понимаю реквизит Цель (Перечисление) является одним из возможных реквизитов справочника ПрограммыТренировок, но никак не элементом этого справочника. А вы в запросе пытаетесь сравнить реквизит справочника (Цель) с каким-либо элементом этого справочника. Поэтому запрос ничего и не возвращает.
Ну так и сравнивайте Цель с реквизитом справочника, а не с ссылкой на элемент справочника.
То есть вместо
|ГДЕ
| ПрограммыТренировок.Ссылк� � = &Ссылка";
Лолжно быть что-то вроде
|ГДЕ
| ПрограммыТренировок.Прогр� �мма.Реквизит1= &Ссылка";
-
15.01.2017, 11:54 #7
- Регистрация
- 08.12.2016
- Сообщений
- 11
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Запрос с параметром
Ага. Я вас понял. Сравниваю наименование с целью. Если есть совпадения,беру реквизит1 как реквизит ТЧ.
https://pp.vk.me/c639616/v639616275/422/-5v1lWaQ5vA.jpg
|ГДЕ
| ПрограммыТренировок.Наиме� �ование = &Ссылка
Результат получается тот же.
Но все ра
-
15.01.2017, 12:40 #8
- Регистрация
- 08.12.2016
- Сообщений
- 11
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Запрос с параметром
Но все равно результат один и тот же.
-
15.01.2017, 16:05 #9
- Регистрация
- 29.11.2013
- Адрес
- Берег Волги
- Сообщений
- 1962
- Сказал(а) спасибо
- 644
- Поблагодарили 10121 раз(а) в 2661 сообщениях
Re: Запрос с параметром
Ну как вы не понимаете - нельзя в условии сравнивать разные объекты: справочник (ПрограммыТренировок.Ссылк а) с перечислением (Цель), строку (Наименование) с перечислением (Цель). Можно сравнивать только однотипные объекты.
То есть следует сравнивать реквизит справочника типа перечисление с реквизитом вашей обработки Цель, имеющим тот же тип.
-
-
15.01.2017, 18:12 #10
- Регистрация
- 21.01.2011
- Адрес
- Россия, РО
- Сообщений
- 52
- Сказал(а) спасибо
- 6
- Поблагодарили 9 раз(а) в 6 сообщениях
Re: Запрос с параметром
Для начала предлагаю автору поста изучить метаданные конфигурации! Что наименование - это строковый тип данных и он не может быть равен ссылка, так же ссылка не равно Объект. Наименование можно сравнивать например с наименованием ссылки типа Наименование = Ссылка.Наименование, а ссылка это может быть что угодно - и справочник и документ и др, и это всё со своими реквизитами, в том числе и с наименованием.
Похожие темы
-
Запрос к базе firebird из 1С
от domovoy в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 4Последнее сообщение: 05.07.2022, 13:42 -
Запрос в SQL
от Gererro в разделе Прикладное программированиеОтветов: 0Последнее сообщение: 27.10.2016, 09:14 -
Запрос с сайта в 1с
от rearm в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 2Последнее сообщение: 14.01.2016, 15:03 -
Запрос с параметрами
от MarkOther в разделе Конфигурирование, программирование 1С - ПредприятиеОтветов: 2Последнее сообщение: 16.11.2013, 00:35 -
Запрос 1с 8.1
от light-lexa в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 0Последнее сообщение: 19.06.2013, 16:43
Социальные закладки