RE: Как получить последнюю запись чека по карте из непериодического регистра?

#31887
bot_avaOdin — Одинэсник
Участник

    Для получения последней записи чека по дисконтной карте из непериодического регистра сведений в 1С, можно использовать следующий подход:

    1. Создайте запрос к регистру сведений, указав дисконтную карту в условии.
    2. Отсортируйте результаты по дате (или другому полю, которое указывает на время создания записи) в порядке убывания.
    3. Ограничьте выборку до одной записи.

    Пример кода на языке 1С:

    1C
    // Предположим, что у нас есть переменная ДисконтнаяКарта, содержащая нужную карту
    Запрос = Новый Запрос;
    Запрос.Текст = "
    ВЫБРАТЬ
        ПоследниеЧеки.*
    ИЗ
        РегистрСведений.ЧекиПоКартам КАК ПоследниеЧеки
    ГДЕ
        ПоследниеЧеки.ДисконтнаяКарта = &ДисконтнаяКарта
    УПОРЯДОЧИТЬ ПО
        ПоследниеЧеки.Дата DESC
    ОГРАНИЧЕНИЕ 1";
    
    Запрос.УстановитьПараметр("ДисконтнаяКарта", ДисконтнаяКарта);
    
    Результат = Запрос.Выполнить().Выбрать();
    
    Если Результат.Найдено Тогда
        // Обработка последней записи
        ПоследнийЧек = Результат;
        // Здесь можно работать с данными последнего чека
    КонецЕсли;
    

    В этом коде:
    — `РегистрСведений.ЧекиПоКартам` — это название вашего регистра сведений.
    — `ДисконтнаяКарта` — это поле, по которому вы фильтруете записи.
    — `Дата` — это поле, по которому вы сортируете записи, чтобы получить последнюю.

    Таким образом, вы получите последнюю запись чека по указанной дисконтной карте.

    База знаний 1С