Вопрос № 141995: Здравствуйте, эксперты. Вопрос по платформе 7.7, связан с запросом к регистру. Имеется регистр взаиморасчетов с поставщиками, измерения – поставщик и документ поступления, ресурс – сумма, а также реквизит вид движения (который по-моему является ли...
Вопрос № 141.995
Здравствуйте, эксперты. Вопрос по платформе 7.7, связан с запросом к регистру. Имеется регистр взаиморасчетов с поставщиками, измерения – поставщик и документ поступления, ресурс – сумма, а также реквизит вид движения (который по-моему является лишним). Для получения информации о кредиторской задолженности формируется следующий запрос (см. в Приложении).
Проблема заключается в следующем: необходимо, чтобы по запросу из регистра отбиралась только та информация, по которой конечный остаток ресурса
(суммы) больше нуля. В соответствии с приведенным запросом по регистру отбирается вся информация, по которой хотя бы одна из функций вернет ненулевое значение. Сначала решил использовать:
Условие(СуммаКонОст > 0)
но как оказалось (судя по сообщению ошибки) в условии запроса нельзя использовать имена функций. Единственное решение, которое пока приходит в голову, после выполнения приведенного запроса выгружать результат в таблицу значений и, затем, переб
ором всех строк производить выборочное удаление по уже упомянутому условию. Но хотелось бы отобрать всю информацию через запрос. Подскажите, если есть идеи.
Приложение:
Отправлен: 22.08.2008, 19:19
Вопрос задал: Stalwart (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Stalwart! Судя по условию в запросе: "Контрагент = Поставщик" поставщик у вас один поэтому ваш вопрос о выборе в запросе данных где "...конечный остаток ресурса (суммы) больше нуля..." относится к выбираемым документам, хотя тот же принцип можно применить и к измерению "Поставщик" если захотите. Я столкнулся недавно с такой же поблемой сразу скажу что если данных достаточно много то перебирать данные в таблице значений то же можно часами как выяснилось.Поэтому пошел
следующим путем , делаем поледовательно два запроса: 1. Сначала делаем запрос в котором только одна функция: СуммаКонОст = КонОст(Сумма) т.е. ваш же запрос в которм убрать лишние функции; 2. Потом результаты этого запроса в вашем случае по документам поступления с ненулевыми конечными остатками выгружаем в список значений: Табл = СоздатьОбъект("ТаблицаЗначений"); СписДок = СоздатьОбъект("СписокЗначений"); ЗАПРОС.Выгрузить(Табл,0,0);
Табл.Выгрузить(,,,"ДокументПоступления"); 3. Делаем ваш опять же запрос но уже полностью т.е. со всеми функциями какие вам нужны, а в условия добавляем: Условие(ДокументПоступления в СписДок); Таким образом основной запрос пройдет только по тем документам где точно есть конечные остатки.Удачи !!!
Ответ отправил: Астафьев Александр Николаевич (статус: Студент)
Ответ отправлен: 23.08.2008, 07:56 Оценка за ответ: 5 Комментарий оценки: Спасибо за совет, так и сделаю! Правда не понял фразу "ваш вопрос о выборе в запросе данных где "...конечный остаток ресурса (суммы) больше нуля..." относится к выбираемым документам, хотя тот же принцип можно применить и к измерению "Поставщик" если захотите". В запросе отбираются данные по обоим измерениям. Что значит "тот
же принцип можно применить и к измерению "Поставщик"?