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

Как в запросе установить период, сгруппировать по схожим реквизитам?

Автор kulkrise, 05 ноя 2013, 13:44

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

kulkrise

1С 8.2 БП 2.0. Обычное приложение.


Прощу прощения за открытие новой темы, однако это связано с отсутствием
возможности добавить вложение в уже ранее созданную тему.


1. Как сделать, чтобы выборка из запроса организовывалась за определенный период,
с учетом установленных параметров в обработке реквизитов: НачДата и КонДата.
А здесь я вообще не понимаю как установить привязку.


2. Как сгруппировать схожих по значениям контрагентов, или выбрать только первых
или только последних.
Если я устанавливаю ВЫБРАТЬ ПЕРВЫЕ или ВЫБРАТЬ ПОСЛЕДНИЕ или
СГРУППИРОВАТЬ ПО, то мне выдает ошибку.

Besart

Цитата: kulkrise от 05 ноя 2013, 13:441. Как сделать, чтобы выборка из запроса организовывалась за определенный период,
с учетом установленных параметров в обработке реквизитов: НачДата и КонДата.
где ВашаДата между НачДата и КонДата

Цитата: kulkrise от 05 ноя 2013, 13:442. Как сгруппировать схожих по значениям контрагентов,
по каким значениям вы хотите сгруппировать?

kulkrise

Цитата: Besart от 05 ноя 2013, 15:38
где ВашаДата между НачДата и КонДата
я так понимаю что в запросе нужно указать
|ГДЕ Документ.ПоступлениеТоваровУслуг.Дата = &НачДата И Документ.ПоступлениеТоваровУслуг.Дата = &КонДата
я правильно понимаю?

Цитата: Besart от 05 ноя 2013, 15:38
по каким значениям вы хотите сгруппировать?

Возможно СГРУППИРОВАТЬ ПО не совсем верно, корректнее выбрать ПЕРВЫЕ или ПОСЛЕДНИЕ, но выдает ошибку.
У меня выводит например, Контрагент Авто-Март и выборка по нему значений реквизитов из запроса.
Так вот этот Авто-Март повторяется столько раз, сколько документов по нему проводилось.
Но в этом нет необходимости, т.к. реквизиты самих документов я не вытаскиваю. то мне нет
необходимости чтобы он столько раз дублировался. Достаточно вытащить его один раз.

sdilshod

ЦитироватьВозможно СГРУППИРОВАТЬ ПО не совсем верно, корректнее выбрать ПЕРВЫЕ или ПОСЛЕДНИЕ, но выдает ошибку.

Выполнение запроса должно быть на сервере

&НаСервере
Процедура ЗаполнитьПараметры(ОбластьШапки, ОбластьСтроки)
  // Запрос
КонецПроцедуры

kulkrise

Спасибо, исправлено.

Ошибки:
ВЫБРАТЬ ПОСЛЕДНИЕ
{Форма.Форма.Форма(79)}: Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = МойЗапрос.Выполнить().Выбрать();
по причине:
{(2, 1)}: Неправильный псевдоним "Контрагент.Ссылка"
<<?>>Контрагент.Ссылка КАК Ссылка,

ВЫБРАТЬ ПЕВЫЕ
{Форма.Форма.Форма(79)}: Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = МойЗапрос.Выполнить().Выбрать();
по причине:
{(2, 1)}: Ожидается константа
<<?>>Контрагент.Ссылка КАК Ссылка,

|УПОРЯДОЧИТЬ ПО
|ГруппаКонтрагентов,
|Наименование
|СГРУППИРОВАТЬ ПО
|Контрагент.Код,
|Контрагент.Наименование,
|Контрагент.Родитель.Наименование,
|Контрагент.НаименованиеПолное,
|Контрагент.ИНН,
|Контрагент.КПП,
|Контрагент.КодПоОКПО,
|Контрагент.ОсновнойБанковскийСчет.НомерСчета,
|Контрагент.ОсновнойБанковскийСчет.Банк.Наименование,
|Контрагент.ОсновнойБанковскийСчет.Банк.Код,
|Контрагент.ОсновнойБанковскийСчет.Банк.КоррСчет,
|Контрагент.ОсновнойДоговорКонтрагента.ВидДоговора,
|Контрагент.ОсновнойДоговорКонтрагента.Номер,
|Контрагент.ОсновнойДоговорКонтрагента.Дата,
|Контрагент.ОсновнойДоговорКонтрагента.СрокДействия";

{Форма.Форма.Форма(78)}: Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = МойЗапрос.Выполнить().Выбрать();
по причине:
{(43, 1)}: Синтаксическая ошибка "СГРУППИРОВАТЬ"
<<?>>СГРУППИРОВАТЬ ПО

sdilshod

|Контрагент.ОсновнойДоговорКонтрагента.СрокДействия КАК СрокДействия
|ИЗ Документ.РеализацияТоваровУслуг КАК Контрагент

kulkrise

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

{Форма.Форма.Форма(94)}: Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = МойЗапрос.Выполнить().Выбрать();
по причине:
{(34, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ Документ.РеализацияТоваровУслуг Как Контрагент

Besart

создайте этот же запрос через конструктор.
учите матчасть, иначе вы так один запрос будете создвать неделю
Добавлено: 06 ноя 2013, 19:02


переименуйте Контрагент

kulkrise

через конструктор создавала - не помогло,
как говорится: плохому танцору и ноги мешают".

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

Контрагент переименовывала. не помогло, решилось по-другому,
уже и не помню, что я там меняла, но привожу запрос, на моменте группировки работает.

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


на моменте дат - не работает:
Также на форме есть 2 реквизита: НачПериод и КонПериод, но при добавлении в запрос


|ГДЕ Проведен
|И Документ.РеализацияТоваровУслуг >= &НачПериод
|И Документ.РеализацияТоваровУслуг <= &КонПериод
|СГРУППИРОВАТЬ ПО
|...
|ГДЕ Проведен 
|И Документ.ПоступлениеТоваровУслуг >= &НачПериод
|И Документ.ПоступлениеТоваровУслуг <= &КонПериод
|СГРУППИРОВАТЬ ПО

 
выдает ошибку:

{Форма.Форма.Форма(100)}:
Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = МойЗапрос.Выполнить().Выбрать();
по причине:{(20, 3)}:
Поле не найдено "Документ.РеализацияТоваровУслуг"И <<?>>Документ.РеализацияТоваровУслуг >= &НачПериод

Я так понимаю это связано с отсутствием привязки &НачПериод и &КонПериод с реквизитами формы. но не пойму как их между собой связать,
попробовала прописать ЭтаФорма.НачПериод и ЭтаФорма.КонПериод ошибка в принципе та же

GRADUS

Как вам еще раз сказать, что уже сказали?

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

В последнем коде зачем ты сравниваешь ссылку с датой?

Запрос к форме вот вообще никак не привязан. Небо и земля.

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

Рейтинг@Mail.ru

Поиск