Имя: Пароль:
1C
1С v8
СКД и вывод в макет...
0 Зая Бусечка
 
21.06.16
16:03
И сновая я, здравствуйте...
Есть отчёт, который выводит данные по внешнему набору.
вот код


    ВнешниеНаборыДанных=Новый Структура;
    ВнешниеНаборыДанных.Вставить("ВнешниеНаборы", ВнешниеНаборы);
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    Настройки=КомпоновщикНастроек.ПолучитьНастройки();
    МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);

    ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);

    ДокументРезультат=ЭлементыФормы.Результат;
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

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

    Пока Истина Цикл
       ЭлементРезультата=ПроцессорКомпоновки.Следующий();
       Если ЭлементРезультата=Неопределено Тогда
          Прервать;
       Иначе
          ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
    КонецЦикла;

    ПроцессорВывода.ЗакончитьВывод();

На каких-то данных ЭлементРезультата=ПроцессорКомпоновки.Следующий(); вот это валится с ошибкой "Неверные параметры +".
Очевидно, где-то в данных проблема (ибо идёт подобно)
Как можно поймать, на каком элементе ошибка?
1 Nuobu
 
21.06.16
16:08
Где в ресурсах или в вычисляемых полях есть вычисление:
Число(Поле1) + Число(Поле2)
И одно из них - нулл.
2 Зая Бусечка
 
21.06.16
16:25
В вычисляемых пусто.
В ресурсах СУММА по полю. Думаешь, оно может гадить?
3 Nuobu
 
21.06.16
16:28
(2) А там плюс есть?
4 Зая Бусечка
 
21.06.16
16:30
(3) Нет, просто СУММА(реквизит).
5 Nuobu
 
21.06.16
16:32
(4) Пробовала Сумма(ЕстьNull(Реквизит, 0))?
6 Зая Бусечка
 
21.06.16
16:35
(5) В исходной таблице, той что внешний набор данных - нуллов нет нигде. Проверяла.
Но сейчас попробоую
7 aleks_default
 
21.06.16
16:52
Возможно надо типизировать поля внешнего набора.
8 aleks_default
 
21.06.16
16:54
может там где-то строка, а не число.
9 Зая Бусечка
 
21.06.16
16:57
(7) Всё типизировано принудительно
Причём. Если отбор по "покупателю" не ставить - всё работает.
Глянула в МакетКомпоновки.НаборыДанных.НаборДанных1.Отбор - там 'НаборДанных1.Контрагент Подобно "%" + &П "%"'
Если в отборе ставить равно - то работает. Значит, где-то проблема в данных. Вот как найти, где?
Есть контрагенты вида Вася+ или Дуся+Катя... Может из-за них?
10 aleks_default
 
21.06.16
16:58
а строка не неограниченной длины?
11 Зая Бусечка
 
21.06.16
17:00
(10) Нет, наименование. 100 символов
12 aleks_default
 
21.06.16
17:12
Глянула в МакетКомпоновки.НаборыДанных.НаборДанных1.Отбор - там 'НаборДанных1.Контрагент Подобно "%" + &П "%"'

А эта конструкция "Подобно "%" + &П "%"'" -  где формируется? Ты сама это прописала?
13 Зая Бусечка
 
21.06.16
17:20
(12) Нет. Это штатный отбор "Контрагент" "Содержит"...
14 aleks_default
 
21.06.16
17:56
Странно, у меня такой отбор формирует конструкцию ПОДОБНО &П2 СПЕЦСИМВОЛ "/"