powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Не работает запрос (1С 8.1)
10 сообщений из 10, страница 1 из 1
Не работает запрос (1С 8.1)
    #35979916
XopcT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Ситуация следующая: необходимо узнать о состоянии взаиморасчётов с контрагентами в определённые даты.
Есть регистр накопления ВзаиморасчетыСКонтрагентами ,
есть справочник ДатыДляОтчёта , в котором перечислены все необходимые даты.
Отчёт собираюсь строить по выборке со следующими данными ( Дата , Контрагент , Сумма ). Соответственно, основная часть запроса должна проходить по всем датам из справочника, а вложенная часть - по регистру накопления, сравнивая дату взаиморасчёта с текущей датой из справочника.
Пока проблема состоит в том, чтобы сосчитать сумму взаиморасчётов, произведённых до указанной даты. Запрос выглядит вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
"ВЫБРАТЬ
|    Справочник.ДатыДляОтчёта.Дата КАК Дата
|    (ВЫБРАТЬ
|        СУММА(Взаиморасчёты.СуммаВзаиморасчетовОстаток) КАК Су
|        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК Взаиморасчёты
|        ГДЕ Взаиморасчёты.Период <= Дата) КАК Суммы
|    ИЗ Справочник.ДатыДляОтчёта";
Ругаться начинает прямо перед вложенным запросом. В чём может быть причина? Заранее благодарю.
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35979966
johnn06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XopcTПриветствую!
Ситуация следующая: необходимо узнать о состоянии взаиморасчётов с контрагентами в определённые даты.
Есть регистр накопления ВзаиморасчетыСКонтрагентами ,
есть справочник ДатыДляОтчёта , в котором перечислены все необходимые даты.
Отчёт собираюсь строить по выборке со следующими данными ( Дата , Контрагент , Сумма ). Соответственно, основная часть запроса должна проходить по всем датам из справочника, а вложенная часть - по регистру накопления, сравнивая дату взаиморасчёта с текущей датой из справочника.
Пока проблема состоит в том, чтобы сосчитать сумму взаиморасчётов, произведённых до указанной даты. Запрос выглядит вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
"ВЫБРАТЬ
|    Справочник.ДатыДляОтчёта.Дата КАК Дата
|    (ВЫБРАТЬ
|        СУММА(Взаиморасчёты.СуммаВзаиморасчетовОстаток) КАК Су
|        ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК Взаиморасчёты
|        ГДЕ Взаиморасчёты.Период <= Дата) КАК Суммы
|    ИЗ Справочник.ДатыДляОтчёта";
Ругаться начинает прямо перед вложенным запросом. В чём может быть причина? Заранее благодарю.

Вы вообще поняли что написали в запросе? если вы хотите с помощью подзапроса выбрать поле(тогда почему после слова дата нет запятой?), то в 1С это не поддерживатеся, делайте левое соединение...
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35979975
XopcT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
johnn06
> если вы хотите с помощью подзапроса выбрать поле(тогда почему после слова дата нет запятой?)
Да, именно это мне и нужно. Каюсь, запятую разглядел уже после того, как запостил сообщение.

> в 1С это не поддерживатеся, делайте левое соединение
Понял, попробую. Благодарю.
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35980043
XopcT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переписал запрос с использованием соединения. Чувствую, что получился непонятный велосипед_о_восьми_колёсах. Выходит, что мне нужно соединить две таблицы по полю "Дата". Одна таблица будет состоять из одних только дат, а вторая должна использовать эти же даты как поле и их же в условии для расчёта суммы. Спрашивается, к чему тогда вообще соединение? - тем более, что вторая таблица не может знать о значениях в первой :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
"ВЫБРАТЬ
|	Даты.Дата КАК Дата
|	ИЗ Справочник.ДатыДляОтчёта КАК Даты
|	ЛЕВОЕ СОЕДИНЕНИЕ
|		(ВЫБРАТЬ
|			Даты.Дата КАК Дата,
|			СУММА (Взаиморасчёты.СуммаВзаиморасчетовОстаток) КАК Сумма
|			ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК Взаиморасчёты
|			ГДЕ Взаиморасчёты.Период <= Даты.Дата) КАК Расчёты
|	ПО Даты.Дата = Расчёты.Дата";
Получил вот такую вполне ожидаемую ошибку:
Код: plaintext
1.
Поле не найдено "Даты.Дата"
ГДЕ Взаиморасчёты.Период <= <<?>>Даты.Дата) КАК Расчёты
Сейчас не могу понять, с какой стороны вообще подступиться к этой задаче.
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35980259
Estel I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Явно надо: 1. понять, какую таблицу надо получить; 2. написать запрос
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35980273
XopcT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Estel I
Юмор оценил. Смешно.
Какую таблицу получить определился - см. первый пост.
С запросом пока непонятное. Если есть идеи - с интересом выслушаю.
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35981605
Estel I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, конечно, не блещу умом и я не понял из первого поста какая таблица нужна ;)
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35982182
serge_b77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XopcTПолучил вот такую вполне ожидаемую ошибку:
Код: plaintext
1.
Поле не найдено "Даты.Дата"
ГДЕ Взаиморасчёты.Период <= <<?>>Даты.Дата) КАК Расчёты
Сейчас не могу понять, с какой стороны вообще подступиться к этой задаче.
Не буду комментировать подход к задаче.Запрос на мой взгляд неверен.Ну а синтаксически вот ИМХО.
Ошибка "вполне ожидаемая" очевидна:
Дата определен как АЛИАС Даты.Дата в первом выражении,что же Вы пытаетесь выбирать во втором - это раз,и два - после определения АЛИАСа его и нужно использовать.
Почитать:Виртуальные таблицы и их параметры(период).Что такое левое соединение.
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35982223
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ругается как? матом?
вам надо почитать книгу и начать с более простых запросов
вы просто не понимаете что вы пишете
...
Рейтинг: 0 / 0
Не работает запрос (1С 8.1)
    #35982677
XopcT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё, проблему заборол. Была возможность ограничиться только тремя датами замест произвольного числа. Сделал только для такого частного случая. Пока достаточно.
Благодарю всех, кто участвовал.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Не работает запрос (1С 8.1)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]