Ну вот, частично получилось.
Но че-то туплю (может пятница влияет):
1. Как добавить ТМЦ из справочника ТМЦ (причем все ТМЦ, так же как и с Клиентами) ? В регистре Обороты есть измерение ТМЦ (вид - справочник.ТМЦ) с которым и нужно объединить.
2. Почему в запрос №2 (куб) попадает не весь список Клиентов? В запрос №1 попадают все - проверял.
3. В справочнике Клиенты есть реквизит "активный" (тип - число, длина 1, точность 0). Почему он непопадает в запрос №2 ? В запрос №1 попадает.
Помогите кто может, немогу понять где затык.
Запрос №1.
тТЗ.Очистить();
Запрос = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
|SELECT Клиенты.ID [Клиент $Справочник.Клиенты]
|, $Клиенты.ВидДоставки [ВидДоставки $Перечисление.ВидДоставки]
|, $Клиенты.КатегорияКлиента [КатегорияКлиента $Перечисление.КатегорииКлиента]
|, $Клиенты.Менеджер [Менеджер $Справочник.Сотрудники]
|, $Клиенты.НаселенныйПункт [Территория $Справочник.НаселенныеПункты]
|, НаселенныеПункты.PARENTEXT [Область $Справочник.Территории]
|, $Клиенты.Отдел [КаналСбыта $Перечисление.Отделы]
|, $ПоследнееЗначение.Клиенты.Плательщик(Клиенты.ID, :КонДата) [Плательщик $Справочник.Клиенты]
|, $Клиенты.ФорматКлиента [ФорматКлиента $Перечисление.КатегорииКлиента]
|, $Клиенты.активный активный
|, Sum($Обороты.РасходКво) Кво
|, Sum($Обороты.РасходГрн) ФактГрн
|, ($НачалоПериода.День(Обороты.DATE_TIME_IDDOC)) Период
|FROM $Справочник.Клиенты AS Клиенты
|INNER JOIN $Справочник.НаселенныеПункты AS НаселенныеПункты ON $Клиенты.НаселенныйПункт = НаселенныеПункты.ID
|LEFT JOIN $Регистр.Обороты AS Обороты ON (Клиенты.ID = $Обороты.Клиент) AND (Обороты.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~) AND (Обороты.IDDOCDEF = $ВидДокумента.РасходнаяНакладная)
|WHERE (Клиенты.ISFOLDER = 2)
|GROUP BY Клиенты.ID
|, $Клиенты.ВидДоставки
|, $Клиенты.КатегорияКлиента
|, $Клиенты.Менеджер
|, $Клиенты.НаселенныйПункт
|, НаселенныеПункты.PARENTEXT
|, $Клиенты.Отдел
|, $Клиенты.ФорматКлиента
|, $Клиенты.активный
|, Обороты.DATE_TIME_IDDOC
|
|";
Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата);
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
тТЗ.Загрузить(ТЗ);
Если тТЗ.КоличествоСтрок()>0 Тогда
Сообщить("строк "+тТЗ.КоличествоСтрок(),);
КонецЕсли;
Запрос №2 (куб)
ТекстЗапроса = "
|SELECT Клиенты.ID [Клиенты $Справочник.Клиенты]
|, $Клиенты.ВидДоставки [ВидДоставки $Перечисление.ВидДоставки]
|, $Клиенты.КатегорияКлиента [КатегорияКлиента $Перечисление.КатегорииКлиента]
|, $Клиенты.Менеджер [Менеджер $Справочник.Сотрудники]
|, $Клиенты.НаселенныйПункт [Территория $Справочник.НаселенныеПункты]
|, НаселенныеПункты.PARENTEXT [Область $Справочник.Территории]
|, $Клиенты.Отдел [КаналСбыта $Перечисление.Отделы]
|, $ПоследнееЗначение.Клиенты.Плательщик(Клиенты.ID, :КонДата) [Плательщик $Справочник.Клиенты]
|, $Клиенты.ФорматКлиента [ФорматКлиента $Перечисление.КатегорииКлиента]
|, $Клиенты.активный активный
|, $Обороты.РасходКво Кво
|, $Обороты.РасходГрн ФактГрн
|, ($НачалоПериода.День(Обороты.DATE_TIME_IDDOC)) Период
|FROM $Справочник.Клиенты AS Клиенты
|LEFT JOIN $Справочник.НаселенныеПункты AS НаселенныеПункты ON $Клиенты.НаселенныйПункт = НаселенныеПункты.ID
|LEFT JOIN $Регистр.Обороты AS Обороты ON (Клиенты.ID = $Обороты.Клиент) AND (Обороты.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~) AND (Обороты.IDDOCDEF = $ВидДокумента.РасходнаяНакладная)
|WHERE (Клиенты.ISFOLDER = 2)
|TOTALS Sum(ФактГрн), Sum(Кво)
|BY ALL
|, [Клиенты $Справочник.Клиенты]
|, [ВидДоставки $Перечисление.ВидДоставки]
|, [КатегорияКлиента $Перечисление.КатегорииКлиента]
|, [Менеджер $Справочник.Сотрудники]
|, [Территория $Справочник.НаселенныеПункты]
|, [Область $Справочник.Территории]
|, [КаналСбыта $Перечисление.Отделы]
|, [Плательщик $Справочник.Клиенты]
|, [ФорматКлиента $Перечисление.КатегорииКлиента]
|, активный
|, Период PERIODS
|";
Консоль.УстановитьТекстовыйПараметр("НачДата", НачДата);
Консоль.УстановитьТекстовыйПараметр("КонДата", КонДата);
Консоль.СоздатьКуб(ТекстЗапроса, "D:\mytest.cub");