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

Помогите с построением запроса

Автор Игорь_M, 23 апр 2015, 14:24

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

Игорь_M

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

Запрос.УстановитьПараметр("Документ",Документ);
ТЗзаявка = Запрос.Выполнить().Выгрузить();


Выдает ошибку : Группировка по таблицам верхнего уровня и вложенным таблицам
Что не так?

Дмитрий@

Можно объединять запросы с одинаковым количеством выводимых полей, а у вас разное. Возможно поэтому пишет ошибку.

LexaK

все неправильно! это же 1С!

вы рассматриваете типичную ситуацию остатков! ну так и используйте регистр накопления!
при проведении,
документ КонсолидированнаяЗаявка пишет в этот регистр с плюсом,
документы ЗаявкиПоставщику пишут туда с минусом,
Потом в запросе одной строкой получаете остатки из этого регистра!
Поищите, у вас этот регистр, наверняка уже есть,
если нет, создайте его, и в обработке проведения этих документов добавьте код по заполнению этого регистра.

если помогло нажмите: Спасибо!

Игорь_M

оно бы и так, но  нужно выбирать только по одной консзаявке , а регистр будет считать все.
ну вообщем-то решил проблему - скачал консоль запросов, посмотрел Чистова  и наступило просветление :ooifh:
все равно спасибо:btbzdb:

Теги:

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

Рейтинг@Mail.ru

Поиск