|
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 | (4) первое тз
http://s09.radikal.ru/i182/1609/23/a51e86194cef.jpg второе тз http://s46.radikal.ru/i111/1609/46/823635105476.jpg то что внутри тз2
http://s19.radikal.ru/i192/1609/18/5052bb2f732a.jpg | ||
olegon7 8 - 30.09.16 - 08:57 | up | ||
IlyaSR 9 - 30.09.16 - 09:32 | а если почитать СП, то метод Выгрузить() для РезультатаЗапроса создает ТЗ сам и тип он берет из РезультатаЗапроса, посмотри, что в запросе получаешь | ||
olegon7 10 - 30.09.16 - 09:44 | |||
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 | |||
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 |
|
Список тем форума
|