Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Почему не выводит числа в отчете

Почему не выводит числа в отчете
Я
   olegon7
 
28.09.16 - 15:59
Работаю в скд.
2 набора данных - 2 тз(с одинаковыми полями)
я их объединяю, а потом еще соединяю по полю кодОбъекта - кодРодителя.
Данные из  тз1 все получаю, а вот из тз2 почему то поле ПолезныйотпускЮрлиц не отражается.Хотя в тз2 оно заполнено.
Единственная зацепка это то что колонки в тз2 составного типа, может их-за этого??? ти поменять нельзя доступно только для чтения...

http://s45.radikal.ru/i109/1609/23/4f2cfeca5022.jpg

http://s14.radikal.ru/i187/1609/f0/7abc3755c5e3.jpg
 
 
   olegon7
 
1 - 28.09.16 - 16:00
в отладчике останавливал,в тз2 поле ПОлезныйОтпускЮрЛиц заполнено.
   olegon7
 
2 - 29.09.16 - 10:43
никто не знает???

тогда как получить из запроса таблицу значений со строго типизированными даннымми??

вот фрагмент кода

//////////////////////////////////
запрос=новый запрос;
запрос.Текст="ВЫБРАТЬ
             |    ВЫРАЗИТЬ(Расчет.РасчетнаяТочка.Наименование КАК СТРОКА) КАК Наименование,
             |    ВЫРАЗИТЬ(ВЫБОР
             |            КОГДА РасчетныеТочкиКодыПривязки.Код1 = """"
             |                ТОГДА РасчетныеТочкиКодыПривязки.Код2
             |            ИНАЧЕ РасчетныеТочкиКодыПривязки.Код1
             |        КОНЕЦ КАК СТРОКА) КАК КодРодителя,
             |    ВЫРАЗИТЬ(0 КАК ЧИСЛО) КАК РасходПоГоловномуУчету,
             |    ВЫРАЗИТЬ(0 КАК ЧИСЛО) КАК РасходПоОтходяшимУчетам,
             |    ВЫРАЗИТЬ(0 КАК ЧИСЛО) КАК ПолезныйОтпускВсего,
             |    ВЫРАЗИТЬ(Расчет.РасходПолный КАК ЧИСЛО) КАК ПолезныйОтпускЮрЛица,
             |    ВЫРАЗИТЬ(0 КАК ЧИСЛО) КАК ПолезныйОтпускБыт
             |ИЗ
             |    РегистрСведений.Расчет КАК Расчет
             |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РасчетныеТочки.КодыПривязки КАК РасчетныеТочкиКодыПривязки
             |        ПО Расчет.РасчетнаяТочка = РасчетныеТочкиКодыПривязки.Ссылка
             |ГДЕ
             |    (Расчет.РасчетнаяТочка.КодыПривязки.Код1 В (&СписокЗначенийТП)
             |            ИЛИ Расчет.РасчетнаяТочка.КодыПривязки.Код2 В (&СписокЗначенийТП))
             |    И Расчет.годРП = &годРП
             |    И Расчет.месяцРП = &месяцРП
             |    И Расчет.РасчетнаяТочка.ПометкаУдаления = ЛОЖЬ
             |    И Расчет.РасчетнаяТочка.уровень = 1";
             
    Год=Число(Формат(ТекущаяДата, "ДФ=гггг"));
    Месяц=Число(Формат(ТекущаяДата, "ДФ=М"));
     Запрос.УстановитьПараметр("СписокЗначенийТП",СписокЗначенийТП);
     Запрос.УстановитьПараметр("ГодРП",Год);
     Запрос.УстановитьПараметр("МесяцРП",Месяц);
     
   Тз2 = Новый ТаблицаЗначений;
   Тз2.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки()));
   Тз2.Колонки.Добавить("КодОбъекта", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки()));
   Тз2.Колонки.Добавить("КодРодителя", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки()));
   Тз2.Колонки.Добавить("РасходПоГоловномуУчету",  Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла()));
   Тз2.Колонки.Добавить("РасходПоОтходящимУчетам",  Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла()));
   Тз2.Колонки.Добавить("ПолезныйОтпускВсего", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла()));
   Тз2.Колонки.Добавить("ПолезныйОтпускЮрЛица", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла()));
   Тз2.Колонки.Добавить("ПолезныйОтпускБыт", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла()));

   РезультатЗапроса= Запрос.Выполнить();
   Тз2=РезультатЗапроса.Выгрузить();

   olegon7
 
3 - 29.09.16 - 11:01
а то у меня получается тз с составными типами данных
например строка,null
число,null
   DrShad
 
4 - 29.09.16 - 11:03
когда же ты уже научишься сами наборы выкладывать, а то телепатия не работает
   aleks_default
 
5 - 29.09.16 - 11:08
я вот этого не понял
"2 набора данных - 2 тз(с одинаковыми полями) 
я их объединяю, а потом еще соединяю по полю кодОбъекта - кодРодителя. "- это как?
   olegon7
 
6 - 29.09.16 - 12:57
(5) в скд есть объединение объект я туда поместил 2 набора данных (две тз )
а потом есть еще вкладка связи наборов данных(т е соединение)я  соединил объект объединение(в котором две тз) самим с собой по полю кодОбъекта - кодРодителя..
   olegon7
 
7 - 29.09.16 - 13:25
   olegon7
 
8 - 30.09.16 - 08:57
up
   IlyaSR
 
9 - 30.09.16 - 09:32
а если почитать СП, то метод Выгрузить() для РезультатаЗапроса создает ТЗ сам и тип он берет из РезультатаЗапроса, посмотри, что в запросе получаешь
   olegon7
 
10 - 30.09.16 - 09:44
(9) я написал, что в запросе получаю поля составного типа
вида строка,null или число,null
 
 Рекламное место пустует
   olegon7
 
11 - 30.09.16 - 09:44
сам запрос выше..
   hhhh
 
12 - 30.09.16 - 09:53
(11) пользуйся волшебной функцией ЕСТЬNULL
   olegon7
 
13 - 30.09.16 - 11:14
(12) от того что в запросе поставил проверку на null,
в результате запроса ничего не поменялось . все равно выгружает данные с составным типом!
   IlyaSR
 
14 - 30.09.16 - 12:49
и как ты поставил проверку на null?
   olegon7
 
15 - 30.09.16 - 13:02
(14)
запрос.Текст="ВЫБРАТЬ
             |    ЕСТЬNULL(Расчет.РасчетнаяТочка.Наименование, """") КАК Наименование,
             |    ЕСТЬNULL(ВЫБОР
             |            КОГДА РасчетныеТочкиКодыПривязки.Код1 = """"
             |                ТОГДА РасчетныеТочкиКодыПривязки.Код2
             |            ИНАЧЕ РасчетныеТочкиКодыПривязки.Код1
             |        КОНЕЦ, """") КАК КодРодителя,
             |    ЕСТЬNULL(0, 0) КАК РасходПоГоловномуУчету,
             |    ЕСТЬNULL(0, 0) КАК РасходПоОтходяшимУчетам,
             |    ЕСТЬNULL(0, 0) КАК ПолезныйОтпускВсего,
             |    ЕСТЬNULL(Расчет.РасходПолный, 0) КАК ПолезныйОтпускЮрЛица,
             |    ЕСТЬNULL(0, 0) КАК ПолезныйОтпускБыт
             |ИЗ
             |    РегистрСведений.Расчет КАК Расчет
             |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РасчетныеТочки.КодыПривязки КАК РасчетныеТочкиКодыПривязки
             |        ПО Расчет.РасчетнаяТочка = РасчетныеТочкиКодыПривязки.Ссылка
             |ГДЕ
             |    (Расчет.РасчетнаяТочка.КодыПривязки.Код1 В (&СписокЗначенийТП)
             |            ИЛИ Расчет.РасчетнаяТочка.КодыПривязки.Код2 В (&СписокЗначенийТП))
             |    И Расчет.годРП = &годРП
             |    И Расчет.месяцРП = &месяцРП
             |    И Расчет.РасчетнаяТочка.ПометкаУдаления = ЛОЖЬ
             |    И Расчет.РасчетнаяТочка.уровень = 1";

   youalex
 
16 - 30.09.16 - 13:12
(13) похоже, оно всегда добавляет null в тип колонки РЗ, я по крайней мере не нашёл, когда тоже столкнулся.
Решил костылём - через создание ТЗ и заполнение:
    РезультатЗапроса =  Запрос.Выполнить()//.Выгрузить();

    ТЗ = Новый ТаблицаЗначений;
    Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
          ТЗ.Колонки.Добавить(Колонка.Имя, Новый ОписаниеТипов(Колонка.ТипЗначения, , "NULL"));
    КонецЦикла;    


   olegon7
 
17 - 30.09.16 - 13:29
(16) Колонки так добавишь, вопросов нет. НО при загрузки из РЗ в ТЗ ты все равно получишь null..
   olegon7
 
18 - 30.09.16 - 13:38
(16) А в заполненной ТЗ ты тип колонки не посеняешь, доступно только для чтения....
ТипЗначения (ValueType)
Использование:

Только чтение.
Описание:

Тип: ОписаниеТипов.
Содержит объект, описывающий допустимые типы значений для колонки.
   youalex
 
19 - 30.09.16 - 13:39
(17) выборкой заполнять.
или другой вариант - выгрузить в ТЗ, создать пустую ТЗ (без null) - и залить в нее
   olegon7
 
20 - 30.09.16 - 13:46
(19) Залить в нее копированием? или выборкой?
   youalex
 
21 - 30.09.16 - 14:05
(20) как вариант: создать пустые строки в ТЗ2, и потом заливать через ВыгрузитьКолонку , ЗагрузитьКолонку()
   olegon7
 
22 - 30.09.16 - 14:20
(21) Проблему решил так
рз выгрузил в таб
а потом обошел и загрузил в тз2
Для каждого СтрокаТЗ Из Таб Цикл 
     ЗаполнитьЗначенияСвойств(Тз2.Добавить(), СтрокаТЗ) 
КонецЦикла;


Но проблема отчета не решилась вторая часть тз в отчете при объединении не отображается
   olegon7
 
23 - 30.09.16 - 14:31
   olegon7
 
24 - 30.09.16 - 14:31
Вот так выглядит отчет при объединении двух наборов двух тз
   aleks_default
 
25 - 30.09.16 - 14:37
что ты хочешь после таких знатных извращений с наборами
   aleks_default
 
26 - 30.09.16 - 14:40
Еесли тебе нужна произвольная иерархия, то зачем делать два набора в объединении, если можно сделать один с объединением в запросе, если не нужна, то зачем дополнительная связь между наборами?
   olegon7
 
27 - 30.09.16 - 14:51
(26) у меня еще будет и третий набор я с ним тоже объединение сделаю. Дело в том что первый и третий наборы это внешние источники.

Но пока мне надо откатать на этих двух.

В чем проблема может быть в объединении?
К одному типу привел обе ТЗ, названия колонок совпадают и их количество.
может у кого какие мысли?
   aleks_default
 
28 - 30.09.16 - 14:54
возьми посмотри конечный текст запроса в ПриКомпоновкеРезультата
   aleks_default
 
29 - 30.09.16 - 14:54
или в консоли СКД
   olegon7
 
30 - 30.09.16 - 14:56
(28) В какой переменной посмотреть можно? не подскажешь?в отладчике
   aleks_default
 
31 - 30.09.16 - 15:03
(27)Внешние источники - это таблицы передаваемые в СКД или объект метаданных "Внешний источник данных"?
Все равно не понятно зачем объединять именно в СКД а не до передачи в нее?
(30) у макета компоновки, набор данных, запрос
   aleks_default
 
32 - 30.09.16 - 15:08
Лучше в консоли скд посмотреть наверное, в случае с несколькими наборами (28) не прояснит ситуацию.
   olegon7
 
33 - 03.10.16 - 17:08
(32) Было дело в опечатке одного поля, все получилось.

Вопрос следующего характера

Отчет я построил ,сначала объеденив два набора, а потом соеденил сам с собой по полю кодОбъекта = КодРодителя. Получилась иерархия .
ПолезныйОтпускВсего - поле вычисляемое (ПолезныйОтпускЮрЛиц+ПолезныйОтпускБЫт)
как сделать чтобы считался ИТОГ по ТП, потом Итог по Фидеру
http://s017.radikal.ru/i401/1610/a4/4db0f425311b.jpg
 
 
   DrShad
 
34 - 03.10.16 - 17:16
итоги по собственной иерархии автоматом не считаются автоматом
только через ВычислитьВыражение.... в ресурсах
   olegon7
 
35 - 04.10.16 - 09:43
(34) так я и делал

http://s010.radikal.ru/i312/1610/a9/4a8fbae0f284.jpg

в тз1 я заполнял нулями ПолезныйОтпускПоЮрЛицам,

в тз2 уже брал реальные значения...
   olegon7
 
36 - 04.10.16 - 10:55
как я смогу использовать ресурсы, если у меня группировок нет.
Группировка построена еще до скд.
я вывожу только детальные записи...

как все таки посчитать итоги в этом случае по ТП, фидеру.

http://s011.radikal.ru/i316/1610/f1/b8b53485a9dd.jpg


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует