|

Запрос, обход выборки с табличной частью в учетной системе 1С


Содержание:

  1. Список товаров, реализованных за определенный период в учетной программе 1С
  2. Обход выборки в 1С
  3. Выборка с данными нескольких табличных частей в системе конфигураций 1С

Для работы с данными из табличных частей используется стандартный механизм запросов в 1С. Запросы позволяют извлекать данные из табличных частей, фильтровать их, агрегировать и сортировать. Давайте рассмотрим пример запроса к табличной части документа «Реализация товаров и услуг».

Список товаров, реализованных за определенный период в учетной программе 1С

Допустим, необходимо получить список товаров, реализованных за определённый период, и их количество:

ВЫБРАТЬ

    РеалТов.Изделие КАК Тов,

    СУММА(РеалТов.Штук) КАК ОбщКоличество

ИЗ

    Документ.РеализацияТоваровУслуг.Товары КАК РеалТов

ГДЕ

    РеалТов.Ссылка.Дата МЕЖДУ &ДатаПервая И &ДатаВторая

СГРУППИРОВАТЬ ПО

    РеалТов.Товар

Обход выборки в 1С

После того, как запрос выполнен, его результат нужно обработать в программном коде. Это делается с помощью обхода выборки. Запрос в 1С возвращает объект типа РезультатЗапроса, который содержит строки выборки. Для доступа к данным используется метод Выбрать(), который возвращает объект ВыборкаЗапроса.

Запрос = Новый Запрос;

Запрос.Текст = “

    ВЫБРАТЬ

        РеалТов. Изделие КАК Тов,

        СУММА(РеалТов.Штук) КАК ОбщКоличество

    ИЗ

        Документ.РеализацияТоваровУслуг.Товары КАК РеалТов

    ГДЕ

        РеалТов.Ссылка.Дата МЕЖДУ &ДатаПервая И &ДатаВторая

    СГРУППИРОВАТЬ ПО

        РеалТов. Изделие “;

Запрос.УстановитьПараметр(“ДатаПервая”, ДатаНачала);

Запрос.УстановитьПараметр(“ДатаВторая”, ДатаОкончания);

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

ВыборкаПервая = РезультатЗап.Выбрать();

ПОКА ВыборкаПервая.Следующий() Цикл

    Сообщить(“Изделие: ” + ВыборкаПервая.Тов + ” Штук: ” + ВыборкаПервая.ОбщКоличество);

КОНЕЦЦИКЛА;

Выборка с данными нескольких табличных частей в системе конфигураций 1С

Нередко встречаются ситуации, когда необходимо получить данные сразу из нескольких табличных частей. Например, у документа может быть табличная часть “Товары” и “Услуги”, и нужно объединить данные по ним.

Рассмотрим задачу: нужно получить список товаров, проданных за последний месяц, и для каждого товара вывести его количество и сумму.

ВЫБРАТЬ

    РеалТов.Изделие КАК Тов,

    СУММА(РеалТов.Штук) КАК ОбщКоличество,

    СУММА(РеалТов.Сумма) КАК Сумма1

ИЗ

    Документ.РеализацияТоваровУслуг.Товары КАК РеалТов

ГДЕ

    РеалТов.Ссылка.Дата МЕЖДУ &ДатаПервая И &ДатаВторая

СГРУППИРОВАТЬ ПО

    РеалТов.Изделие

Обработка выборки:

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

ВыборкаПоследняя = РезультатЗап.Выбрать();

ПОКА ВыборкаПоследняя.Следующий() Цикл

    Сообщить(“Изделие: ” + ВыборкаПоследняя.Тов + ” Штук: ” + ВыборкаПоследняя. ОбщКоличество + ” Сумма: ” + ВыборкаПоследняя.Сумма1);

КОНЕЦЦИКЛА;

Специалист компании ООО “Кодерлайн”,

Дубровина Елена


Помогла ли вам статья? Оставьте свой комментарий:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог про 1С:Предприятие

Copyright © 2024 TopKoder

Мы занимаемся внедрением и обслуживанием программных продуктов 1С.