|
Как получить данные из подч. поля стадартного реквизита Регистратор регистра накопления? | ☑ | ||
---|---|---|---|---|
0
Strategius
06.12.19
✎
12:18
|
Здравствуйте.
Добавляю возможность вывода поля "Комментарий" в отчете "Ведомость по денежным средствам". Делаю это путем добавления группировки перед установкой начальных параметров: Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт ......... УниверсальныйОтчет.ДобавитьПолеГруппировка("Комментарий", "Регистратор", "Комментарий", НСтр("ru='Комментарий';uk='Коментар'"),,"ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Комментарий КАК СТРОКА(300))"); ......... УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина); ......... КонецПроцедуры // УстановитьНачальныеНастройки() При открытии отчета выдает ошибку: Поле не найдено "ИсточникДанных.Регистратор.Комментарий" (ВЫРАЗИТЬ(<<?>>ИсточникДанных.Регистратор.Комментарий КАК СТРОКА(300))).* КАК Комментарий В регистре накопления "ДенежныеСредства" реквизит "Регистратор" является стандартным. Можно ли из него в этом случае достать поле "Комментарий". Если "Регистратор" является измерением регистра, то все работает. В ходе изучения проблемы пришел к тому, что дабавление группировки приводит к формированию следующего запроса в универсальном отчете: "ВЫБРАТЬ РАЗРЕШЕННЫЕ ИсточникДанных.ВидДенежныхСредств КАК ВидДенежныхСредств, ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ВидДенежныхСредств) КАК ВидДенежныхСредствПредставление, ИсточникДанных.БанковскийСчетКасса КАК БанковскийСчетКасса, ПРЕДСТАВЛЕНИЕ(ИсточникДанных.БанковскийСчетКасса) КАК БанковскийСчетКассаПредставление, ИсточникДанных.Организация КАК Организация, ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Организация) КАК ОрганизацияПредставление, ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Комментарий КАК СТРОКА(300)) КАК Комментарий, ПРЕДСТАВЛЕНИЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Комментарий КАК СТРОКА(300))) КАК КомментарийПредставление, ....." Собственно, две последних строки и выдают ошибку, так как не могут получить данные из реквизита Регистратор. Если вместо реквизита будет использоваться измеренее, то данные нормально достаются. Добавлю, что если использовать запрос: "ВЫБРАТЬ ВЫРАЗИТЬ(ДенежныеСредства.Регистратор.Комментарий КАК СТРОКА(300)) КАК Комментарий ИЗ РегистрНакопления.ДенежныеСредства КАК ДенежныеСредства" то данные тоже нормально достаются. Что не так с этим "ИсточникомДанным"? |
|||
1
vicof
06.12.19
✎
12:24
|
Источник без данных по регистратору.Таблица остатков какая-нибудь.
|
|||
2
Strategius
06.12.19
✎
12:50
|
(1) Понятно, что источник без данных по регистратору, но почему? При получении данных перед формированием запроса:
МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра); //Имя регистра ДенежныеСредства в метаданных регистра все данные есть: МетаданныеРегистра.СтандартныеРеквизиты.Регистратор.Комментарий = "" Куда пропадает доступ к Регистратор.Комментарий? |
|||
3
vicof
06.12.19
✎
12:54
|
(2) Ты в хоть показал из какой таблицы ты тянешь данные
|
|||
4
Strategius
06.12.19
✎
12:57
|
Написано выше - из регистра накопления "ДенежныеСредства"
|
|||
5
Strategius
06.12.19
✎
12:58
|
или какая таблица имеется ввиду?
|
|||
6
Strategius
06.12.19
✎
13:24
|
(1) Спасибо за наводку. Досмотрел. Хотя в "МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра)" и указывался регистр ДенежныеСредства, однако построитель запроса в универсальном отчете добавлял к имени регистра ".ОстаткиИОброты" и получалось фактически тянутся данные из регистра "ДенежныеСредства.ОстаткиИОброты". Хотя проблема и не решена. Копаю дальше
|
|||
7
shuhard
06.12.19
✎
13:29
|
(6) посмотри отладчиком у универсального отчета сформированный запрос,не факт, что обороты по регистратору и точно комментарий не измерение.
и для УТ 10.3 проще сделать свой отчет на СКД, чем париться с универсальным |
|||
8
vicof
06.12.19
✎
14:13
|
(6) Детализацию до регистратора укажи
|
|||
9
Strategius
06.12.19
✎
14:34
|
(7) Так и делаю.
(7), (8). Беда в том, что построитель запроса, прописанный в универсальном отчете, сам формирует название подчиненного регистра в зависимости от назначения отчета. Таким образом, если отчет по оборотам, то данные он будет брать не указанного регистра "ДенежныеСредства", а из регистра "ДенежныеСредства.ОстаткиИОбороты". Вот кусок кода: Если Обороты Тогда ОписаниеИсточниковЗапроса = " |ИЗ РегистрНакопления." + ИмяРегистра + ".Обороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность}, {" + ОписаниеИсточниковЗапроса + "}) КАК ИсточникДанных Иначе ОписаниеИсточниковЗапроса = " |ИЗ РегистрНакопления." + ИмяРегистра + ".ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность},, {" + ОписаниеИсточниковЗапроса + "}) КАК ИсточникДанных"; КонецЕсли; В свою очередь в последнем, хоть реквизит "Регистратор" и присутствует, но для коснтруктора запросов недоступен. Сейчас разбираюсь почему. |
|||
10
Strategius
10.12.19
✎
13:31
|
В общем, для вывода комментариев из документа движения в отчете "Ведомость по денежным средствам" пришлось добавить измерение "ДокументДвижения" в регистр накопления "ДенежныеСредства", и прописывать его движения по всем требуемым модулям и документам. По другому не получилось :(
|
|||
11
d4rkmesa
10.12.19
✎
13:36
|
(10) Ужос. Не проще было, действительно, переделать отчет на СКД? Кстати, тут в (8) правильно написали, не получилось?
|
|||
12
shuhard
10.12.19
✎
13:59
|
(10)[пришлось добавить измерение "ДокументДвижения" в регистр накопления "ДенежныеСредства", ]
что, уже НГ ? |
|||
13
Strategius
20.12.19
✎
11:02
|
(11) На СКД делаю само-собой, но там другие грабли. Отчет выглядит так:
https://i111.fastpic.ru/big/2019/1220/b1/c6217d90391688fdeae1878ba70e41b1.jpg Не могу добиться, чтобы в диаграмме был отбор только для подгрупп "Заказчики" и "Прочие доходы". В лучшем случае получается так, как на картинке. В худшем - выводит всю иерархию. (8) (11) Мне пока не ведомы такие приемы. Где именно указать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |