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

Получение из запроса нескольких значений и использование их в модуле формы документа

Автор Sasha1C, 05 сен 2023, 09:07

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

Sasha1C

Доброе утро, мой вопрос заключается в том, можно ли из нижеприведенного запроса вытянуть данные для нескольких реквизитов формы используя только один запрос, или все же следует использовать свой запрос для каждого реквизита формы? Или все же есть другой более рациональный вариант. Заранее благодарен. :dfbbdrfb:   

&НаКлиенте
Процедура СчетСчетПриИзменении(Элемент)
ТекущиеДанные = Элементы.Счет.ТекущиеДанные;

Объект.Контрагент = ПодробнаяИнформация(ТекущиеДанные.Счет);
Объект.НомерДокумента = ПодробнаяИнформация(ТекущиеДанные.Счет);
Объект.СрокРезервирования = ПодробнаяИнформация(ТекущиеДанные.Счет);
 
КонецПроцедуры

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

alexandr_ll

Sasha1C, Например, результат запроса можно выгрузить в таблицу значений и выбирать из нее нужное.

Sasha1C


LexaK

Sasha1C, вообще этого, ни чего не надо делать! просто переоткройте форму с новым значение
вашим счетом, передайте его в виде параметра Ключ в форму, все поля формы заполнятся автоматически
(что ж так, все начинающие простыми путями не действуете,
вот надо кучу г..кода нагромоздить, когда можно все сделать без него...)
если помогло нажмите: Спасибо!

LexaK

реквизит Объект в вашей форме это что?

(скорее всего ДокументОбъект.Счет?)

тогда просто загрузите в него новый, выбранный Счет (одна команда)
если помогло нажмите: Спасибо!

Sasha1C

LexaK, LexaK, Объект(в данной ситуации) - это реквизит формы, имеющий вид поле надписи

LexaK

Цитата: Sasha1C от 05 сен 2023, 20:26Объект(в данной ситуации) - это реквизит формы,
Тип этого реквизита: Объект - какой ?
если помогло нажмите: Спасибо!

Sasha1C

LexaK, Тип этого реквизита строка, так как используется на форме как поле надписи

LexaK

Цитата: Sasha1C от 07 сен 2023, 15:38LexaK, Тип этого реквизита строка, так как используется на форме как поле надписи
как все плохо!

какая строка, когда вы у себя в коде пишите
    Объект.Контрагент = ПодробнаяИнформация(ТекущиеДанные.Счет);
    Объект.НомерДокумента = ПодробнаяИнформация(ТекущиеДанные.Счет);
    Объект.СрокРезервирования = ПодробнаяИнформация(ТекущиеДанные.Счет);

у строки не может быть других реквизитов!  :fdbsdfbsd:
в 1С используется какая-то методика назначения реквизитам имен с определенным смыслом!
попробуйте ей следовать/придерживаться!
тогда и вам понятнее будет и другие вас лучше (и быстрее) поймут, когда вы описываете свою задачу.

если эта задача еще не решена, попробуйте ее описать еще раз, (или как выглядит в оригинале то ТЗ которое вам дали?)
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск