Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Срез последних на каждую дату в запросе          
Vofka Подменю пользователя
сообщение 19.02.12, 22:06
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Данный способ подходит для отчетов. Из очевидных плюсов - если курс (или другие данные) не нужны для построения отчета, то СКД не будет их получать. Однако быстродействие такого отчета может оказаться и несколько ниже, чем в первом способе.

Для примера сделаем отчет - список заказов покупателей.

Для этого создадим набор данных "Документы" - запрос:

ВЫБРАТЬ
    ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    ЗаказПокупателя.Дата КАК Дата,
    ЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента,
    ЗаказПокупателя.СуммаДокумента КАК СуммаДокумента
{ВЫБРАТЬ
    ЗаказПокупателя.*,
    Дата,
    ВалютаДокумента.*,
    СуммаДокумента}
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
{ГДЕ
    ЗаказПокупателя.Ссылка.* КАК ЗаказПокупателя,
    ЗаказПокупателя.СуммаДокумента}


Для того, чтобы потом успешно свзать наборы данных, в запрос необходимо включить поля "Дата" и "ВалютаДокумента". Чтобы они не появлялись в списке доступных полей, если это необходимо, их можно убрать, установив флажки ограничений в таблице "Поля" схемы компоновки. В остальном запрос вряд ли требует комментариев.



Для того, чтобы получить информацию о курсах валют, добавим второй набор данных-запрос, "Курсы валют":

ВЫБРАТЬ
    &Дата КАК Дата,
    КурсыВалютСрезПоследних.Валюта КАК Валюта,
    КурсыВалютСрезПоследних.Курс КАК Курс,
    КурсыВалютСрезПоследних.Кратность КАК Кратность
{ВЫБРАТЬ
    Дата,
    Валюта.*,
    Курс,
    Кратность}
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних
{ГДЕ
    КурсыВалютСрезПоследних.Курс,
    КурсыВалютСрезПоследних.Кратность}


В этом запросе имеются 2 параметра: "Дата" и "Валюта". Эти параметры будут установлены СКД при соединении наборов. Кроме того, параметр "Дата" указан в выбранных полях - это нужно для соединения таблиц.
Для ненужный полей "Дата" и "Валюта" также устанавливаем флажки ограничений, чтобы они не появлялись в доступных полях.



Перейдем к соединению наборов. На странице "Связи наборов данных" добавим 2 связи:
1. Источник связи - набор "Документы", приемник - набор "Курсы валют". Выражение источник - "Дата", выражение приемник - "Дата", Параметр - "Дата"
2. Источник связи - набор "Документы", приемник - набор "Курсы валют". Выражение источник - "ВалютаДокумента", выражение приемник - "Валюта", Параметр - "Валюта"



Главное здесь - параметры связи. При соединении наборов данных, если указан параметр, СКД передает в подчиненный набор (в нашем случае - запрос "Курсы валют") параметры, указанные в соединении. Значениями параметров будут значения соответствующих полей набора-источника.

Перейдем к вычисляемым полям. Добавим вычисляемое поле "СуммаВВалютеУпрУчета". Выражение поля - "СуммаДокумента * Курс / Кратность".



Также укажем поля "СуммаДокумента" и "СуммаВВалютеУпрУчета" как ресурсы



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



Можно формировать отчет



Ещё вариант с использованием запроса
И ещё один вариент с использованием запроса

И ещё один вариант с искользованием СКД

[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: craneua, MATEVI,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 10:32
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!