Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:39

Запрос с параметром

Автор Денис Степанищев, 13 янв 2017, 21:28

0 Пользователей и 1 гость просматривают эту тему.

Денис Степанищев

Хочу получить запросом запись из справочника. Конкретную запись получаю через параметр. Потом запросом заполняю макет.На нем есть кнопка и реквизит "Цель"
Но проблема в том,что запрос в результате оказывается пустой. Подскажите,как решить проблему?!



       
&НаКлиенте
Процедура СформироватьОтчет(Команда)
ЗаполнитьТабДок(ТабДок,Цель);
КонецПроцедуры


&НаСервереБезКонтекста
Процедура ЗаполнитьТабДок(ТабДок,Цель)

ТабДок.Очистить();
Макет = Отчеты.ТестовыйОтчет.ПолучитьМакет("Макет");

ОблШапка = Макет.ПолучитьОбласть("Шапка");
ОблЭлемент = Макет.ПолучитьОбласть("Элемент");

ОблШапка.Параметры.ДатаОтчета = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy; ДЛФ=DDT");
ТабДок.Вывести(ОблШапка);

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | ПрограммыТренировок.Программа.Реквизит1,
   | ПрограммыТренировок.Ссылка
               |ИЗ
               | Справочник.ПрограммыТренировок КАК ПрограммыТренировок
               |ГДЕ
               | ПрограммыТренировок.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Цель);
Результат = Запрос.Выполнить();
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
ОблЭлемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОблЭлемент);
КонецЦикла;

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

Владимир Иванов

Цитата: Денис Степанищев от 13 янв 2017, 21:28
Хочу получить запросом запись из справочника. Конкретную запись получаю через параметр. Потом запросом заполняю макет.На нем есть кнопка и реквизит "Цель"
Но проблема в том,что запрос в результате оказывается пустой. Подскажите,как решить проблему?!

Проблема в настройках,пройдите по ссылке:http://www.pro1c-msk.ru/,там бесплатный онлайн сканер на наличие ошибок, просканируйте для начала,там видно будет.

       
&НаКлиенте
Процедура СформироватьОтчет(Команда)
ЗаполнитьТабДок(ТабДок,Цель);
КонецПроцедуры


&НаСервереБезКонтекста
Процедура ЗаполнитьТабДок(ТабДок,Цель)

ТабДок.Очистить();
Макет = Отчеты.ТестовыйОтчет.ПолучитьМакет("Макет");

ОблШапка = Макет.ПолучитьОбласть("Шапка");
ОблЭлемент = Макет.ПолучитьОбласть("Элемент");

ОблШапка.Параметры.ДатаОтчета = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy; ДЛФ=DDT");
ТабДок.Вывести(ОблШапка);

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | ПрограммыТренировок.Программа.Реквизит1,
   | ПрограммыТренировок.Ссылка
               |ИЗ
               | Справочник.ПрограммыТренировок КАК ПрограммыТренировок
               |ГДЕ
               | ПрограммыТренировок.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Цель);
Результат = Запрос.Выполнить();
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
ОблЭлемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОблЭлемент);
КонецЦикла;

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


alex0402

Цитата: Денис Степанищев от 13 янв 2017, 21:28Запрос.УстановитьПараметр("Ссылка",Цель);
а что в переменной Цель в этой строке?
там скорее всего не ссылка или ссылка на другой тип данных.
Спасибо за Сказать спасибо

Денис Степанищев

Цитата: alex0402 от 14 янв 2017, 13:58
Цитата: Денис Степанищев от 13 янв 2017, 21:28Запрос.УстановитьПараметр("Ссылка",Цель);
а что в переменной Цель в этой строке?
там скорее всего не ссылка или ссылка на другой тип данных.

Это ссылка на перечисление. Если выбранное пеерчисление совпадает с полем ссылка справочника, то запрос должен мне вернуть все строки эти.

alex0402

Перечисление не может совпадать со справочником. Это разные типы.
Может быть у справочника есть реквзит с типом ПеречислениеСсылка.ИмяПеречисления?
Спасибо за Сказать спасибо

Денис Степанищев

Цитата: alex0402 от 14 янв 2017, 16:23
Перечисление не может совпадать со справочником. Это разные типы.
Может быть у справочника есть реквзит с типом ПеречислениеСсылка.ИмяПеречисления?
Вот смотрте. Я выбираю цель(ПеречислениеСсылка.ЦельПриСоставленииПрограммыТренировок)
https://pp.vk.me/c837735/v837735275/1e325/7xnZywpejvI.jpg

Потом это значение передаю в процедуру. И сравниваю в запросе. Но если не так,то как иначе мне это реализовать.

Artjomrgv

Сделай скрин формы документа. Скорее всего там надо указать "Объект.цель"

Денис Степанищев

Цитата: Artjomrgv от 15 янв 2017, 15:17
Сделай скрин формы документа. Скорее всего там надо указать "Объект.цель"

Более подробно опишу ситуацию.

В справочнике ПрограммыТренировок записаны все варианты программ для различных целей(сушка,набор массы,похудение и т.д.). Соответственно в у каждой записи есть своя ТЧ и самой программой.

Есть перечисление, в которую предопределил эти самые цели(сушка,набор массы,похудение и т.д.).

Количество перечислений будет совпадать с количеством записей в справочнике.

Мне нужно при выборе цели получить данные ТЧ,чтобы вывести в макет.

Форма справочника: https://pp.vk.me/c639616/v639616275/422/-5v1lWaQ5vA.jpg

Artjomrgv

Нет скрин формы в конфигураторе, где ты код пишешь.

Dethmontt

Денис Степанищев, нельзя сравнивать перечисление со справочником!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск