Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Универсальный отчет  (Прочитано 12155 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Anhel
Постоялец

ru
Offline Offline

« : 03-05-2011 04:49 » 

Доброго времени суток! Не могу понять что делаю не так, подскажите что не правильно:
Код:
ТаблицаДанных = ТЗ.Скопировать();

ТекстЗапроса = "ВЫБРАТЬ
               | ВЫРАЗИТЬ(ТаблицаДанных.ДокументОснование КАК Документ.ПеремещениеТоваров) КАК ДокументОснование,
               | ВЫРАЗИТЬ(ТаблицаДанных.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
               | ВЫРАЗИТЬ(ТаблицаДанных.Количество КАК ЧИСЛО) КАК Количество,
               | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаТранспорта КАК ЧИСЛО) КАК ЦенаТранспорта,
               | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаНоменклатуры КАК ЧИСЛО) КАК ЦенаНоменклатуры,
               | ВЫРАЗИТЬ(ТаблицаДанных.СуммаНоменклатуры КАК ЧИСЛО) КАК СуммаНоменклатуры,
               | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаБезТранспорта КАК ЧИСЛО) КАК ЦенаСТрРасходами,
               | ВЫРАЗИТЬ(ТаблицаДанных.СуммаБезТранспорта КАК ЧИСЛО) КАК СуммаСТрРасходами,
               | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаЗатратНаКуб КАК ЧИСЛО) КАК ЦенаЗатратНаМ3,
               | ВЫРАЗИТЬ(ТаблицаДанных.СкладПолучатель КАК Справочник.Склады) КАК СкладПолучатель
               |ПОМЕСТИТЬ Таблица
               |{ВЫБРАТЬ
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}
               |ИЗ
               | &ТаблицаДанных КАК ТаблицаДанных
               |{ГДЕ
               | (ВЫРАЗИТЬ(ТаблицаДанных.ДокументОснование КАК Документ.ПеремещениеТоваров)).* КАК ДокументОснование,
               | (ВЫРАЗИТЬ(ТаблицаДанных.Номенклатура КАК Справочник.Номенклатура)).* КАК Номенклатура,
               | (ВЫРАЗИТЬ(ТаблицаДанных.Количество КАК ЧИСЛО)) КАК Количество,
               | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаТранспорта КАК ЧИСЛО)) КАК ЦенаТранспорта,
               | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаНоменклатуры КАК ЧИСЛО)) КАК ЦенаНоменклатуры,
               | (ВЫРАЗИТЬ(ТаблицаДанных.СуммаНоменклатуры КАК ЧИСЛО)) КАК СуммаНоменклатуры,
               | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаБезТранспорта КАК ЧИСЛО)) КАК ЦенаСТрРасходами,
               | (ВЫРАЗИТЬ(ТаблицаДанных.СуммаБезТранспорта КАК ЧИСЛО)) КАК СуммаСТрРасходами,
               | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаЗатратНаКуб КАК ЧИСЛО)) КАК ЦенаЗатратНаМ3,
               | (ВЫРАЗИТЬ(ТаблицаДанных.СкладПолучатель КАК Справочник.Склады)).* КАК СкладПолучатель}
               |{УПОРЯДОЧИТЬ ПО
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}
               |{ИТОГИ ПО
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               | Таблица.ДокументОснование КАК ДокументОснование,
               | Таблица.Номенклатура,
               | Таблица.Количество КАК Количество,
               | Таблица.ЦенаТранспорта КАК ЦенаТранспорта,
               | Таблица.ЦенаНоменклатуры КАК ЦенаНоменклатуры,
               | Таблица.СуммаНоменклатуры КАК СуммаНоменклатуры,
               | Таблица.ЦенаСТрРасходами КАК ЦенаСТрРасходами,
               | Таблица.СуммаСТрРасходами КАК СуммаСТрРасходами,
               | Таблица.ЦенаЗатратНаМ3 КАК ЦенаЗатратНаМ3,
               | Таблица.СкладПолучатель
               |{ВЫБРАТЬ
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}
               |ИЗ
               | Таблица КАК Таблица
               |{ГДЕ
               | Таблица.ДокументОснование.*,
               | Таблица.Номенклатура.*,
               | Таблица.Количество,
               | Таблица.ЦенаТранспорта,
               | Таблица.ЦенаНоменклатуры,
               | Таблица.СуммаНоменклатуры,
               | Таблица.ЦенаСТрРасходами,
               | Таблица.СуммаСТрРасходами,
               | Таблица.ЦенаЗатратНаМ3,
               | Таблица.СкладПолучатель.*}
               |
               |УПОРЯДОЧИТЬ ПО
               | Таблица.ДокументОснование.Дата
               |{УПОРЯДОЧИТЬ ПО
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}
               |ИТОГИ
               | СУММА(Количество),
               | СУММА(ЦенаТранспорта),
               | СУММА(ЦенаНоменклатуры),
               | СУММА(СуммаНоменклатуры),
               | СУММА(ЦенаСТрРасходами),
               | СУММА(СуммаСТрРасходами),
               | СУММА(ЦенаЗатратНаМ3)
               |ПО
               | ОБЩИЕ,
               | ДокументОснование
               |{ИТОГИ ПО
               | ДокументОснование.*,
               | Номенклатура.*,
               | Количество,
               | ЦенаТранспорта,
               | ЦенаНоменклатуры,
               | СуммаНоменклатуры,
               | ЦенаСТрРасходами,
               | СуммаСТрРасходами,
               | ЦенаЗатратНаМ3,
               | СкладПолучатель.*}";

Параметры = УниверсальныйОтчет.ПостроительОтчета.Параметры;
Параметры.Вставить("ТаблицаДанных", ТаблицаДанных);
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;

Выдает ошибку: {ВнешнийОтчет.Доставки.МодульОбъекта(253)}: Ошибка при установке значения атрибута контекста (Текст)
   УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
по причине:

по причине:
{(25, 2)}: Неверные параметры "ТаблицаДанных"
<<?>>&ТаблицаДанных КАК ТаблицаДанных
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-05-2011 14:29 » 

По-моему так делать нельзя - нужно идти через МенеджерВременныхТаблиц. Вот пример для простого запроса (без построителя):
Код:
	// Сформируем запрос
МенеджерВТ = Новый МенеджерВременныхТаблиц();
Запрос=Новый Запрос();
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

// Текущие препараты в документе
ТекстЗапроса =
  "ВЫБРАТЬ
  | Препарат, Кво, Период
  |ПОМЕСТИТЬ ПрепаратыДокумента
  |ИЗ
  | &Препараты КАК Препараты
  |ГДЕ Препараты.Кво<>0
  |";
Запрос.Текст=ТекстЗапроса;
Запрос.Параметры.Очистить();
Запрос.Параметры.Вставить("Препараты", Препараты.Выгрузить()); // Препараты - это табличная часть
Запрос.Выполнить();
// ...
// Сведем количество в одну таблицу
ТекстЗапроса =
  "ВЫБРАТЬ
  | ЕСТЬNULL(ПрепаратыДокумента.Период, ЕСТЬNULL(ПрепаратыДокументаПлан.Период, ПрепаратыРегистра.Период)) КАК Период,
  | ЕСТЬNULL(ПрепаратыДокумента.Препарат, ЕСТЬNULL(ПрепаратыДокументаПлан.Препарат, ПрепаратыРегистра.Препарат)) КАК Препарат,
  | ЕСТЬNULL(ПрепаратыДокумента.Кво, ПрепаратыРегистра.Кво) КАК Кво,
  | ЕСТЬNULL(ПрепаратыДокументаПлан.ПлановоеКво, ПрепаратыРегистра.ПлановоеКво) КАК ПлановоеКво
  |ПОМЕСТИТЬ Препараты
  |ИЗ
  | ПрепаратыРегистра КАК ПрепаратыРегистра
  | ПОЛНОЕ СОЕДИНЕНИЕ ПрепаратыДокумента КАК ПрепаратыДокумента
  | ПО ПрепаратыРегистра.Препарат = ПрепаратыДокумента.Препарат
  | И ПрепаратыРегистра.Период = ПрепаратыДокумента.Период
  | ПОЛНОЕ СОЕДИНЕНИЕ ПрепаратыДокументаПлан КАК ПрепаратыДокументаПлан
  | ПО ПрепаратыРегистра.Препарат = ПрепаратыДокументаПлан.Препарат
  | И ПрепаратыРегистра.Период = ПрепаратыДокументаПлан.Период";
Запрос.Текст=ТекстЗапроса;
Запрос.Параметры.Очистить();
Запрос.Выполнить();

Записан
Anhel
Постоялец

ru
Offline Offline

« Ответ #2 : 10-05-2011 05:06 » 

Спасибо за ответ. Получается что построитель не может использовать внешние таблицы как ТЗ?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 10-05-2011 05:53 » 

Да нет - мне кажется может. Просто сначала их нужно поместить во временную таблицу простым запросом (ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТаблица ИЗ &ТаблицаДанных КАК ТаблицаДанных), а уже потом использовать ее (временную таблицу) в основном запросе.
Записан
Anhel
Постоялец

ru
Offline Offline

« Ответ #4 : 10-05-2011 06:01 » 

Не хочет так работать, пробовали МенеджеромВрТаб и временной таблицей, внешним источником данных, ругается и все.
Записан
Anhel
Постоялец

ru
Offline Offline

« Ответ #5 : 10-05-2011 06:03 » new

Сделал отчет через макет табличного документа.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines