Имя: Пароль:
1C
1С v8
СКД + ТЗ + сортировка
0 Сформировать Отчет
 
09.10.12
11:21
Создал отчет на основе СКД, набор данных - ТЗ с одной колонкой "СсылкаНаДокумент".
Хочу отсортировать результат вывода по дате документа.
Добавил в Настройках СКД в Сортировке новое поле Ссылка.Дата
При формировании отчета вылетает ошибка:
   "МакетДляВывода = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Ссылка.Date""

В чем может быть проблема, как исправить? Спасибо
1 IronDemon
 
09.10.12
12:14
Ссылка типизирована в ТЗ?
2 Сформировать Отчет
 
09.10.12
12:20
(1) Да, ссылка типизирована
3 Kashemir
 
09.10.12
12:28
(2) У поля в самой схеме явно укажи все доступные типы
4 Сформировать Отчет
 
09.10.12
12:29
(3) в СКД тип указан
5 Kashemir
 
09.10.12
12:30
(4) Значит есть еще какой-то неучтенный тип, неявляющийся документом
6 Сформировать Отчет
 
09.10.12
12:35
(5)
Используется только дин тип документа.
Колонка ТЗ имеет аналогичный вид.
7 Kashemir
 
09.10.12
12:36
(6) Тогда это мистика
8 Сформировать Отчет
 
09.10.12
12:44
Вот как это все выглядит:
http://s004.radikal.ru/i205/1210/cb/ad021f6ab090.jpg
http://s48.radikal.ru/i119/1210/1c/eb99b46bacf1.jpg
http://s019.radikal.ru/i631/1210/5a/2c237890efb3.jpg

Не могу понять в чем может быть проблема
9 Сформировать Отчет
 
09.10.12
12:52
В ТЗ содержатся только документы Реализация товаров и услуг, проверял в отладчике
10 Kashemir
 
09.10.12
12:54
(8) Все правильно. С правами все полный ок ? - есть разрешения на просмотр всех реквизитов ?
11 Сформировать Отчет
 
09.10.12
12:54
(10) Полные права
12 Kashemir
 
09.10.12
12:55
(11) Тогда у меня  идеи закончились
13 Сформировать Отчет
 
09.10.12
13:02
(12) ок, спасибо и на этом
14 IronDemon
 
09.10.12
13:07
С другими полями такая-же беда при сортировке?
Просто вывести поле получается?
15 IronDemon
 
09.10.12
13:10
Весь код формирования СКД покажи
16 Сформировать Отчет
 
09.10.12
13:11
(14) Если в сортировку добавить другое поле, ошибка аналогичная:
{Форма.ФормаОтчета.Форма(244)}: Ошибка при вызове метода контекста (Выполнить)
   МакетДляВывода = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, мДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Документ.Комментарий"
17 Сформировать Отчет
 
09.10.12
13:16
(16)

Функция ПолучитьТаблицуДляСКД()

   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Ссылка КАК Документ
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Дата >= &ДатаНач
   |    И РеализацияТоваровУслуг.Дата <= &ДатаКон";
   
   Запрос.Установитьпараметр("ДатаНач",    ДатаНач);
   Запрос.Установитьпараметр("ДатаКон",    ДатаКон);
   
   Возврат Запрос.Выполнить().Выгрузить();
   
КонецФункции

Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина) Экспорт
   
   ЭлементыФормы.Результат.Очистить();
   
   ТЗ = ПолучитьТаблицуДляСКД();
   
   Если ТЗ = Неопределено ИЛИ ТЗ.Количество()=0 Тогда
       Возврат;    
   КонецЕсли;
   
   СтруктураДляИнициализацииВнешнихИсточников = Новый Структура("ТЗ", ТЗ);
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   мДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   
   МакетДляВывода = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, мДанныеРасшифровки);
   
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетДляВывода, СтруктураДляИнициализацииВнешнихИсточников, мДанныеРасшифровки);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);

   ПроцессорВывода.НачатьВывод();

   Пока Истина Цикл

       ЭлементРезультата = ПроцессорКомпоновки.Следующий();

       Если ЭлементРезультата = Неопределено Тогда
           Прервать;
       Иначе
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
       
   КонецЦикла;
       
   ПроцессорВывода.ЗакончитьВывод();
       
КонецПроцедуры
18 Сформировать Отчет
 
09.10.12
13:23
(15) если в настройках вывести поле Документ.Дата, то ошибка не возникает, даже если добавить сортировку по дате.
очень странно, но работает))
19 IronDemon
 
09.10.12
13:23
В запросе Документ, в СКД Ссылка.
:)
20 IronDemon
 
09.10.12
13:23
Имена разные
21 Kashemir
 
09.10.12
13:24
(17) Вот... и зачем спрашивается обманывал http://s004.radikal.ru/i205/1210/cb/ad021f6ab090.jpg
22 Сформировать Отчет
 
09.10.12
13:25
(19) нет, это моя опечатка, я пробовал менять название Ссылка на Документ, не помогло
23 Сформировать Отчет
 
09.10.12
13:25
(17) не обманывал, просто код не совсем прваильно выложил
вообщем проблема решилась добавлением поля Дата в Выбранные поля настройки СКД
24 Сформировать Отчет
 
09.10.12
13:26
видимо это такая особенность СКД
25 IronDemon
 
09.10.12
13:28
Нет. У меня все работает.
26 IronDemon
 
09.10.12
13:29
Попробуй сортировку не для отчета сделать а для группировки.