Имя: Пароль:
1C
1С v8
Выбрать остаток на последнюю дату в запросе
0 marshalbratsk
 
06.06.17
07:40
Тяну остатки из регистра бухгалтерии "остатки и обороты". Столбцы "Документ", "Остаток", "Дата". Получилось так, что тянется несколько записей с одного документа, но с остатками на разную дату. Например:
Поступление товаров и услуг №ААА | 100500 | 21.03.2017
Поступление товаров и услуг №ААА | 100600 | 25.03.2017
Поступление товаров и услуг №ААА | 100200 | 15.03.2017
Поступление товаров и услуг №БББ | 100    | 15.03.2017
Поступление товаров и услуг №ВВВ | 500    | 15.03.2017
Можно ли как-нибудь в запросе (!) выбрать только запись за последнюю дату?
1 Я не курил
 
06.06.17
07:46
Тоесть нужно выводить последний документ и остаток после проведения этого документа? Выбери тогда из этой таблицы максимальную дату документа и потом соедини по ней.
2 Альбатрос
 
06.06.17
07:47
Ничо не понял (
3 igorPetrov
 
06.06.17
07:52
(2) +100
4 marshalbratsk
 
06.06.17
07:55
(2) (3) Выводятся несколько записей с одинакового документа с остатками на разные даты, а нужно выбрать только за последнюю дату. Я очень плохо мысли формулирую(
5 Я не курил
 
06.06.17
08:02
(4) я тебя понял..
1) помещаешь этот результат во временную таблицу
2) выбираешь максимальную дату докумета, агрегатная функция
МАКСИМУМ по полю Документ.Дата, помещаяешь в другую временную таблицу
3) соединяешь предыдущую таблицу с первой таблицей внутренним соединением по полю МаксимальнаяДата (из второй таблицы) = Документ.Дата (из первой таблицы)
Так понятней или текст запроса написать?
6 Я не курил
 
06.06.17
08:04
+(5) единственное, что может даты одинаковые быть, так что выбирай ещё и Максимум(Документ) и соединяй по нему тоже
7 marshalbratsk
 
06.06.17
08:13
(5) Спасибо большое! Всё работает как и хотел.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший