8.х Временная таблица в схеме компоновки даннх

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем romsrs, 21 мар 2009.

  1. TopicStarter Overlay
    romsrs
    Offline

    romsrs

    Регистрация:
    21 мар 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Помогите, люди добрые!
    есть задача получения среза последних на список периодов.
    решаю эту задачу через временную таблицу. Т.е., формирую таблицу значений с нужными датами, потом использую ее в запросе к периодическому регистру для получения срезов. Все прекрасно.
    Но как это сделать в схеме компоновки?
    Пробовал передавать таблицу значений как источник данных в СКД, но результат не тот, что нужен.

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

    Вот так это выглядит без СКД.

    Код:
        МенеджерВТ = Новый МенеджерВременныхТаблиц;
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
    
    Запрос.Текст = "ВЫБРАТЬ
    |	ТабПериодов.кДата
    |ПОМЕСТИТЬ ТаблицаПериодов
    |ИЗ
    |	&ТабПериодов КАК ТабПериодов";
    
    Запрос.УстановитьПараметр("ТабПериодов", ТаблицаПериодов);
    
    Результат = Запрос.Выполнить();
    
    Запрос.Текст = "ВЫБРАТЬ
    |	Периоды.кДата,
    |	МАКСИМУМ(Периоды.Период) КАК Период,
    |	КОЛИЧЕСТВО(Слушатели.Слушатель) КАК Количество
    |ИЗ
    |	(ВЫБРАТЬ
    |		ТаблицаПериодов.кДата КАК кДата,
    |		СлушателиКурсов.Слушатель КАК Слушатель,
    |		МАКСИМУМ(СлушателиКурсов.Период) КАК Период
    |	ИЗ
    |		ТаблицаПериодов КАК ТаблицаПериодов
    |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СлушателиКурсов КАК СлушателиКурсов
    |			ПО ТаблицаПериодов.кДата >= СлушателиКурсов.Период
    |	
    |	СГРУППИРОВАТЬ ПО
    |		ТаблицаПериодов.кДата,
    |		СлушателиКурсов.Слушатель) КАК Периоды
    |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			СлушателиКурсов.Период КАК Период,
    |			СлушателиКурсов.Слушатель КАК Слушатель,
    |			СлушателиКурсов.Состояние КАК Состояние
    |		ИЗ
    |			РегистрСведений.СлушателиКурсов КАК СлушателиКурсов
    |		ГДЕ
    |			СлушателиКурсов.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСтудента.Учится)) КАК Слушатели
    |		ПО Периоды.Период = Слушатели.Период
    |			И Периоды.Слушатель = Слушатели.Слушатель
    |
    |СГРУППИРОВАТЬ ПО
    |	Периоды.кДата";
    
    Рез = Запрос.Выполнить();
    Рез.выгрузить().ВыбратьСтроку();
    
    
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Используйте пакетный запрос
  3. TopicStarter Overlay
    romsrs
    Offline

    romsrs

    Регистрация:
    21 мар 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    А как мне в него передать мою таблицу значений?
  4. TopicStarter Overlay
    romsrs
    Offline

    romsrs

    Регистрация:
    21 мар 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Проблему решил так: тот запрос из первого сообщения формирую в модуле формы, а потом передаю как Набор данных - объект в схему компоновки. Ну а в ней уже настраиваю параметры вывода.

Поделиться этой страницей