Версия для печати темы (https://pro1c.org.ua/index.php?s=b5358ce2440c112f3cd0f78f83f88efd&showtopic=37053)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Добавление измерения в отчет ПродажиДиаграмма. Ошибка - Не найдено измерение.

Автор: etri2005 11.05.17, 10:21

Добрый день.
У меня платформа - 1С:Предприятие 8.2 (8.2.19.130), конфигурация - УПП (1.3.42.2).

Есть типовой отчет, в который я хочу добавить поле для расшифровки по нему, например отчет ПродажиДиаграмма, но точно такая же проблема с аналогичным отчетом ОстаткиДенежныхСредствДиаграмма.
У таких отчетов есть макет, в котором заполняются имена полей, которые будут использоваться в запросе путь к данным и еще некоторые их настройки.
Также эти отчеты используют реквизит "ОбщийОтчет" типа ОтчетОбъект.ОтчетДиаграмма.
На основании этой таблицы процедура УправлениеОтчетами.ЗаполнитьНачальныеНастройкиПоМакету(...) строит текст запроса для ПостроителяОтчета общего отчета.
Все вроде ок, но при попытке расшифровки именно по добавленному мной полю происходит ошибка
{Отчет.ОтчетДиаграмма.МодульОбъекта(681)}: Ошибка при вызове метода контекста (Добавить)
Отчет.ПолучитьПостроительОтчета().ИзмеренияСтроки.Добавить(Выбор.Значение, Выбор.Значение);
по причине:
Не найдено измерение. "НоменклатураЦеноваяГруппа"

Измерение может быть любым, например там есть поле Контрагент, которое имеет описание в макете как
Имя поля = Контрагент,
Представление в отчетах = Покупатель,
Описание поля запроса. Если не задано, используется имя поля = ДоговорКонтрагента.Владелец

я пробовал добавить аналогичную строку у которой менял только имя и псевдоним на Контрагент2 и Покупатель2, чтобы не было дублей, но происходит та же ошибка.
В отчете ОстаткиДенежныхСредствДиаграмма я пробовал так добавить в макет свое поле с такими значениями
Имя поля = ВалютаДенежныхСредств2
Представление в отчетах = Валюта счета (кассы)2
Описание поля запроса. Если не задано, используется имя поля = БанковскийСчетКасса.ВалютаДенежныхСредств

Как видно, от существующей строки отличаются только имя и псевдоним, но при попытке расшифровать отчет по полю ВалютаДенежныхСредств2 возникает указанная ошибка, а по стандартному полю ВалютаДенежныхСредств - ошибки, конечно, нет.

Я проверял, какой запрос хранится у построителя при этом, создал свой отчет без диаграммы на основании универсального отчета, там проверил, все работает прекрасно, измерение добавляется, расшифровка работает. все ок. В запросе в секции {ИТОГИ ПО } в обоих случаях мое поле указано, например
{ИТОГИ ПО ... Номенклатура.* КАК Номенклатура,
Номенклатура.ЦеноваяГруппа.* КАК НоменклатураЦеноваяГруппа, ...и т.д.},
аналогично для отчета по остаткамДС:
{ИТОГИ ПО БанковскийСчетКасса.ВалютаДенежныхСредств.* КАК ВалютаДенежныхСредств,
БанковскийСчетКасса.ВалютаДенежныхСредств.* КАК ВалютаДенежныхСредств2 и т.д.}.
Думал, что проблема в обращении через точку, но стандартное поле также составное, но работает. Да я и делал его копированием строки в макете, только имя поменял.

При всем этом, если просто открыть такой типовой отчет, сформировать, дважды кликнуть, чтобы расшифровать по полю, например, номенклатура, а потом в открывшемся отчете в настройках серию "Номенклатура" удалить, а вместо нее добавить "Номенклатура.ЦеноваяГруппа". Аналогично, можно расшифровать по полю ВалютаДенежныхСредств, а потом в настройке сменить серию на ВалютаДенежныхСредств2 и так работает.

Что я делаю не так? Спасибо.

Автор: etri2005 11.05.17, 13:13

Я разобрался, извините, за беспокойство. Тему можно закрывать.
Причина: я сохранил отчет из конфигурации как внешний отчет и редактировал его. А он обращаясь к стандартным процедурам обработки расшифровки, когда новое окно отчета открывает, создает объект не моего внешнего отчета, а находит по имени отчет-объект в конфигурации и запускает его. А в его макете нет моего нового поля. Сделал изменения непосредственно в макете объекта конфигурации и все взлетело.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua