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

Получение необходимых данных запросом

Автор Sasha1C, 24 мая 2023, 11:37

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

Sasha1C

Добрый день, столкнулся с проблемой получения необходимых данных запросом. При выполнении запрос должен дать остатки в разрезе магазина, читателя и конкретной книги(НазваниеКниги), но получаются общие остатки всех книг по конкретному магазину и читателю, подскажите пожалуйста как реализовать данный функционал?
Регистр накопления "Задолженность по книгам" имеет следующие измерения: "Книжный магазин", "Книга"(НазваниеКниги) и "Читатель" + ресурс "Количество"

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
               | СдачаКниг.Ссылка КАК Ссылка,
               | СдачаКниг.КнижныйМагазин КАК КнижныйМагазин,
               | СдачаКниг.Читатель КАК Читатель,
               | СдачаКнигВыданныеКниги.НазваниеКниги КАК НазваниеКниги
               |ИЗ
               | Документ.СдачаКниг.ВыданныеКниги КАК СдачаКнигВыданныеКниги,
               | Документ.СдачаКниг КАК СдачаКниг";

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

   Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                 | СдачаКнигВыданныеКниги.НазваниеКниги КАК НазваниеКниги,
                 | СдачаКнигВыданныеКниги.КоличествоКниг КАК КоличествоКниг,
                 | СдачаКнигВыданныеКниги.НомерСтроки КАК НомерСтроки
                 |ПОМЕСТИТЬ ТаблицаДокумента
                 |ИЗ
                 | Документ.СдачаКниг.ВыданныеКниги КАК СдачаКнигВыданныеКниги
                 |ГДЕ
                 | СдачаКнигВыданныеКниги.Ссылка = &Ссылка
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 | ЕСТЬNULL(ЗадолженностьПоКнигамОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
                 | ТаблицаДокумента.НазваниеКниги КАК НазваниеКниги,
                 | ТаблицаДокумента.КоличествоКниг КАК КоличествоКниг,
                 | ТаблицаДокумента.НомерСтроки КАК НомерСтроки
                 |ИЗ
                 | РегистрНакопления.ЗадолженностьПоКнигам.Остатки(
                 | &МоментДокумента,
                 | КнижныйМагазин = &Книжныймагазин
                 | И Читатель = &Читатель
                 | И Книга В
                 | (ВЫБРАТЬ
                 | ТаблицаДокумента.НазваниеКниги КАК НазваниеКниги
                 | ИЗ
                 | ТаблицаДокумента КАК ТаблицаДокумента)) КАК ЗадолженностьПоКнигамОстатки,
                 | ТаблицаДокумента КАК ТаблицаДокумента";
   
Запрос.УстановитьПараметр("МоментДокумента", ДокументСсылка.МоментВремени());
Запрос.УстановитьПараметр("КнижныйМагазин", Шапка.КнижныйМагазин);
Запрос.УстановитьПараметр("Читатель", Шапка.Читатель);
//Запрос.УстановитьПараметр("Книга", Шапка.НазваниеКниги);
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);


LexaK

Sasha1C, нельзя просто так перечислять таблицы данных через запятую в секции "ИЗ"
необходимо их связывать через Соединения (левое, внутреннее, ...)

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

Теги:

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

Рейтинг@Mail.ru

Поиск