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

Выбор последний записи из регистра накоплений

Автор cobra152, 14 фев 2024, 10:44

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

cobra152

Всем добрый день, у мня задачка взять последнюю запись из регистра накоплений по определённому дебитору и счёту. Пробовал через "Срез последних", не помогло. Не подскажет кто как правильно выбирать последнюю запись из регистра ?



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

РезультатЗапроса = Запрос.Выполнить();

LexaK

cobra152, так РН как правило имеют реквизит Период - это дата учета данной проводки
(но бывают проводки и будущей датой) в вашем случае просто добавить сортировку по Период и взять первую строку
примерно так
   
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ первые 1
        |    ЗадолженностьПоДебиторам.Дебитор КАК Дебитор,
        |    ЗадолженностьПоДебиторам.СуммаЗадолженности КАК СуммаЗадолженности,
        |    ЗадолженностьПоДебиторам.ЗадолженностьПоПроцентам КАК ЗадолженностьПоПроцентам,
        |    ЗадолженностьПоДебиторам.Счёт КАК Счёт
        |ИЗ
        |    РегистрНакопления.ЗадолженностьПоДебиторам КАК ЗадолженностьПоДебиторам
        |ГДЕ
        |    ЗадолженностьПоДебиторам.Дебитор = &Дебитор
        |    И ЗадолженностьПоДебиторам.Счёт = &Счёт
        |Упорядочить по
        |    ЗадолженностьПоДебиторам.Период убыв
        |
        |";   
    Запрос.УстановитьПараметр("Дебитор", Дебитор);
    Запрос.УстановитьПараметр("Счёт", Счёт);
   
    РезультатЗапроса = Запрос.Выполнить();
если помогло нажмите: Спасибо!

Afinogen

 B) я бы глянул как срезпоследних работает в регистре накопления  :D

Максим75


Afinogen

 :D просто я завтра увольняюсь, настроение такое)))

cobra152

LexaK, Не помогло, как и раньше не определяет значение последней записи регистра

LexaK

Цитата: cobra152 от 14 фев 2024, 11:29LexaK, Не помогло, как и раньше не определяет значение последней записи регистра
скорее всего, у вас просто нет записей в регистре по данным условиям!
такое тоже бывает!

(консолью запросов умеете пользоваться? проверьте в ней свой запрос и какие данные он возвращает)
если помогло нажмите: Спасибо!

Afinogen

либо как вариант у вас в РН измерений больше 2-х, и есть записи с одинаковыми значениями периода но  с разными значениями измерений не входящих в вашу выборку, тип такого

1я запись

период = период1
Дебитор = Дебитор1
счет = Счет1
Измерение3 = Измерение3

2я запись

период = период1
Дебитор = Дебитор1
счет = Счет1
Измерение3 = Другое значение

Тогда при выборке первых 1 по убыванию периода выдаст первую запись если в выборке указано только дебитор и счет
 

Afinogen

в любом случае вам надо смотреть что у вас в регистре сохранено

Afinogen

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

Теги:

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

Рейтинг@Mail.ru

Поиск