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

Заполнение ТЧ запросом

Автор Elfidor, 01 дек 2019, 18:52

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

Elfidor

Здравствуйте! Я новичок и столкнулся с проблемой, что я не могу заполнить табличную часть документа.
Заранее хочу сказать, что конфа пустая и создана мной с нуля чисто для тренировок и понимания. Сейчас только начал её разрабатывать.
Создал 2 справочника "Контрагенты" (реквизит "Услуги" тип СправочникСсылка.Услуги) и "Услуги"(реквизит "Цена" тип Число), а так же документ "УслугиКонтрагента" с реквизитом "Контрагент"(тип СправочникСсылка.Контрагенты), табличную часть "Услуги"(рек.Контрагент, Цена, Услуга). Сделал ОсновнуюФормуДокумента, где чисто поле контрагент и тч услуг этого контрагента. Задачу поставил себе, чтобы при выборе контрагента в тч выпадали все услуги что оказывает этот контрагент. В модуле формы начал писать код, всё вроде норм, а он ругается! Взгляните, пожалуйста, опытным взглядом, что не так? Я уже с бубнами скоро танцевать буду, хотя по сути всё элементарно, но ей богу, ошибки не вижу в силу недостаточных знаний... Заранее спасибо огромное за помощь или хотя бы подсказку!
&НаСервере
Процедура КонтрагентПриИзмененииНаСервере(Ссылка)
Объект.Услуги.Очистить();

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

Запрос.УстановитьПараметр("Ссылка",Ссылка);

РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Объект.Услуги.Загрузить(РезультатЗапроса);

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

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    КонтрагентПриИзмененииНаСервере(Объект);
КонецПроцедуры


P.S. Запрос написан правильно (проверял через консоль запросов), но вот результат вывести не могу...

bsn-chita

В запросе переименовать поля с УслугиНаименование, УслугиЦена, Контрагенты на Услуга, Цена, Контрагент. И не знаю какой тип для Услуги в табличной части вы указали возможно надо выбирать не Наименование.



Elfidor

Цитата: bsn-chita от 02 дек 2019, 02:02
В запросе переименовать поля с УслугиНаименование, УслугиЦена, Контрагенты на Услуга, Цена, Контрагент. И не знаю какой тип для Услуги в табличной части вы указали возможно надо выбирать не Наименование.
Спасибо большое! Разобрался со всем. Оказывается изначально была конфигурация не совсем корректно забита. Всё переделал и код вышел вот такой (мало ли вдруг кому пригодится)
&НаСервере
Процедура КонтрагентПриИзмененииНаСервере(Ссылка)

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

РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Объект.УслугиКонтрагента.Очистить();

Объект.УслугиКонтрагента.Загрузить(РезультатЗапроса);

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

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииНаСервере(Объект.Контрагент);
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск