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

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

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

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

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

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

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

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

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