Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Неверно работает запрос
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
andrew76
День добрый! Имеется запрос.На выходе нет данных.Хотя на самом деле наоборот,где ошибка не могу разобраться.

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|   ПланСчетовОснДвиженияССубконто.Регистратор,
|   ПланСчетовОснДвиженияССубконто.СубконтоДт1,
|   ПланСчетовОснДвиженияССубконто.СубконтоКт1,
|   ПланСчетовОснДвиженияССубконто.СчетДт,
|   ПланСчетовОснДвиженияССубконто.СчетКт,
|   ПланСчетовОснДвиженияССубконто.Сумма,
|   ПланСчетовОснДвиженияССубконто.ВалютаДт,
|   ПланСчетовОснДвиженияССубконто.ВалютаКт,
|   ПланСчетовОснДвиженияССубконто.ВалютнаяСуммаДт,
|   ПланСчетовОснДвиженияССубконто.ВалютнаяСуммаКт
|ИЗ
|   РегистрБухгалтерии.ПланСчетовОсн.ДвиженияССубконто(&ДатаНач,&ДатаКон,(СчетДт = &Счет ИЛИ СчетКт = &Счет1)
|   И (СубконтоДт1 = &Контрагент) ИЛИ (СубконтоКт1 = &Контрагент)) КАК ПланСчетовОснДвиженияССубконто";

sava1
Убираем условия на вирт.таблицу - смотрим,
добавляем по-одному условия и смотрим где выборка становится пустой.
Или сразу-же - пишем правильное условие (приоритетность И , ИЛИ, скобки)
Petre
Цитата(andrew76 @ 12.03.15, 7:47) необходимо зарегистрироваться для просмотра ссылки
На выходе нет данных.Хотя на самом деле наоборот

"Какие ваши доказательства?"
TipsyKID
1. приоритет операторов "И", "ИЛИ". Разберитесь с ними
2. Предпочтительнее использовать при отборе счетов оператор "В ИЕРАРХИИ". ( Т.к. если вдруг, пользователь вручную введет субсчет, ( к примеру Вы сравниваете Счет = Счет361, а пользователь добавил два субсчета 3611, 3612, то они не попадут в результат запроса )).
3.Проверьте точно ДатаНач, ДатаКон в точности до МоментаВремени().

По факту в чем причина..., черт его знает, нужны данные.
andrew76
На самом деле в выборке данные быть должны.Если уберу нижеприведенное условие

И (СубконтоДт1 = &Контрагент) ИЛИ (СубконтоКт1 = &Контрагент));


тогда срабатывает,только в результат прутся ненужные мне контрагенты.
Petre
Протелепатирую.
(СчетДт = &Счет ИЛИ СчетКт = &Счет1) И (СубконтоДт1 = &Контрагент) ИЛИ (СубконтоКт1 = &Контрагент)

Замените на:
(СчетДт = &Счет ИЛИ СчетКт = &Счет1) И (СубконтоДт1 = &Контрагент ИЛИ СубконтоКт1 = &Контрагент)
andrew76
Цитата(Petre @ 12.03.15, 13:41) необходимо зарегистрироваться для просмотра ссылки
Замените на:
(СчетДт = &Счет ИЛИ СчетКт = &Счет1) И (СубконтоДт1 = &Контрагент ИЛИ СубконтоКт1 = &Контрагент)


Все равно на выходе пустая таблица.Можно конечно "кишлачным" методом,отсекать нужные контрагенты после выполнения запроса,дополнительным условием при добавлении во временную таблицу.Но будет некрасиво так программировать.
Petre
Какой тип значения передается в параметр &Контрагент?
andrew76
Выражение из справочника Контрагенты.Выбирается определенный Контрагент.
andrew76
Разобрался,как всегда-"человеческий фактор".Пользователь ввел несколько контрагентов с одинаковым
названием.Отгрузка "вешалась" на один контрагент,а при выборе контрагента в отчетной форме выбирался другой контрагент- с таким же названием.Соответственно когда убирал условие , фильтрующее определенного
контрагента то запрос был с данными, иначе -на выходе-пусто.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.