Изменил представление номенклатуры - отказал отчет
Добрый день. УНФ 1.5. Платформа (8.3.9.1850.
Изменил представление справочника Номенклатуры с краткого наименование на полное.Вот так.
И вроде все нормально, но с отчетом Сдельные Наряды проблема.При попытке формирования выходит ошибка:
Операция это номенклатура.То есть ошибка при попытке получить представление номенклатуры.Если отключить поле ОПЕРАЦИЯ в отчете, то он работает, но соответственно нет номенклатуры. Если вернуть представление справочника по умолчанию, то также все работает.
Вот запрос , который описан в основной схеме:
А вот запрос , который формирует СКД:
Причем запрос самой СКД точно такой же как и с отключенным представлением номенклатуры. Но тем не менее - не работает.
В чем может быть дело? Отладиком попадаю в модуль менеджера Номенклатуры, но только в процедуру ОбработкаПолученияПолейПредставленияОбработкаПолученияПолейП редставления.
Спасибо.
Изменил представление справочника Номенклатуры с краткого наименование на полное.Вот так.
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Добавить("НаименованиеПолное");
Поля.Добавить("Наименование");
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Данные.НаименованиеПолное = Null или Данные.НаименованиеПолное = "" Тогда
Представление = Данные.Наименование;
Иначе
Представление = Данные.НаименованиеПолное;
КонецЕсли;
КонецПроцедуры
ПоказатьИ вроде все нормально, но с отчетом Сдельные Наряды проблема.При попытке формирования выходит ошибка:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{Отчет.СдельныеНарядыВРубляхНовый.МодульОбъекта(18)}: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(14, 2)}: В запросе, содержащем предложение СГРУППИРОВАТЬ ПО, в списке выборки не могут участвовать поля неограниченной длины "ОперацияПредставление"
<<?>>ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Операция) КАК ОперацияПредставление,
ПоказатьОперация это номенклатура.То есть ошибка при попытке получить представление номенклатуры.Если отключить поле ОПЕРАЦИЯ в отчете, то он работает, но соответственно нет номенклатуры. Если вернуть представление справочника по умолчанию, то также все работает.
Вот запрос , который описан в основной схеме:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВЫБОР
КОГДА СдельныеНарядыВРубляхОбороты.Регистратор = НЕОПРЕДЕЛЕНО
ТОГДА NULL
ИНАЧЕ СдельныеНарядыВРубляхОбороты.Регистратор
КОНЕЦ КАК Регистратор,
СдельныеНарядыВРубляхОбороты.ПериодСекунда,
СдельныеНарядыВРубляхОбороты.ПериодМинута,
СдельныеНарядыВРубляхОбороты.ПериодЧас,
СдельныеНарядыВРубляхОбороты.ПериодДень,
СдельныеНарядыВРубляхОбороты.ПериодНеделя,
СдельныеНарядыВРубляхОбороты.ПериодДекада,
СдельныеНарядыВРубляхОбороты.ПериодМесяц,
СдельныеНарядыВРубляхОбороты.ПериодКвартал,
СдельныеНарядыВРубляхОбороты.ПериодПолугодие,
СдельныеНарядыВРубляхОбороты.ПериодГод,
СдельныеНарядыВРубляхОбороты.Исполнитель,
СдельныеНарядыВРубляхОбороты.Операция,
СдельныеНарядыВРубляхОбороты.Номенклатура,
СдельныеНарядыВРубляхОбороты.Характеристика,
СдельныеНарядыВРубляхОбороты.ЗаказПокупателя,
СУММА(0) КАК Отклонение,
СУММА(0) КАК ПроцентВыполненияПлана,
СУММА(СдельныеНарядыВРубляхОбороты.НормоЧасыОборот) КАК НормоЧасы,
СУММА(СдельныеНарядыВРубляхОбороты.КоличествоПланОборот) КАК КоличествоПлан,
СУММА(СдельныеНарядыВРубляхОбороты.КоличествоФактОборот) КАК КоличествоФакт,
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СдельныеНарядыВРубляхОбороты.СтоимостьФактОборот КАК СтоимостьФакт,
СдельныеНарядыВРубляхОбороты.Расценка,
СдельныеНарядыВРубляхОбороты.Регистратор.Ссылка
ИЗ
РегистрНакопления.СдельныеНарядыВРублях.Обороты(, , Авто, ) КАК СдельныеНарядыВРубляхОбороты
СГРУППИРОВАТЬ ПО
СдельныеНарядыВРубляхОбороты.Регистратор,
СдельныеНарядыВРубляхОбороты.ПериодСекунда,
СдельныеНарядыВРубляхОбороты.ПериодМинута,
СдельныеНарядыВРубляхОбороты.ПериодЧас,
СдельныеНарядыВРубляхОбороты.ПериодДень,
СдельныеНарядыВРубляхОбороты.ПериодНеделя,
СдельныеНарядыВРубляхОбороты.ПериодДекада,
СдельныеНарядыВРубляхОбороты.ПериодМесяц,
СдельныеНарядыВРубляхОбороты.ПериодКвартал,
СдельныеНарядыВРубляхОбороты.ПериодПолугодие,
СдельныеНарядыВРубляхОбороты.ПериодГод,
СдельныеНарядыВРубляхОбороты.Исполнитель,
СдельныеНарядыВРубляхОбороты.Характеристика,
СдельныеНарядыВРубляхОбороты.ЗаказПокупателя,
СдельныеНарядыВРубляхОбороты.СтоимостьФактОборот,
СдельныеНарядыВРубляхОбороты.Расценка,
СдельныеНарядыВРубляхОбороты.Регистратор.Ссылка,
СдельныеНарядыВРубляхОбороты.Операция,
СдельныеНарядыВРубляхОбороты.Номенклатура,
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения
ПоказатьА вот запрос , который формирует СКД:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СдельныеНарядыВРубляхОбороты.Исполнитель КАК Исполнитель,
СдельныеНарядыВРубляхОбороты.Операция КАК Операция,
СУММА(СдельныеНарядыВРубляхОбороты.НормоЧасыОборот) КАК НормоЧасы,
СУММА(СдельныеНарядыВРубляхОбороты.КоличествоПланОборот) КАК КоличествоПлан,
СУММА(СдельныеНарядыВРубляхОбороты.КоличествоФактОборот) КАК КоличествоФакт,
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СдельныеНарядыВРубляхОбороты.СтоимостьФактОборот КАК СтоимостьФакт,
СдельныеНарядыВРубляхОбороты.Расценка КАК Расценка,
СдельныеНарядыВРубляхОбороты.Регистратор.Ссылка КАК РегистраторСсылка,
ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияПредставление,
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения.Наименование КАК НоменклатураЕдиницаИзмеренияНаименование,
ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Исполнитель) КАК ИсполнительПредставление,
ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Операция) КАК ОперацияПредставление,
СдельныеНарядыВРубляхОбороты.Операция.Наименование КАК ОперацияНаименование,
СдельныеНарядыВРубляхОбороты.Регистратор.Представление КАК РегистраторСсылкаПредставление,
СдельныеНарядыВРубляхОбороты.Регистратор.Ссылка.Дата КАК РегистраторСсылкаДата
ИЗ
РегистрНакопления.СдельныеНарядыВРублях.Обороты(&П, &П2, Авто, Исполнитель = &П3) КАК СдельныеНарядыВРубляхОбороты
СГРУППИРОВАТЬ ПО
СдельныеНарядыВРубляхОбороты.Регистратор,
СдельныеНарядыВРубляхОбороты.Исполнитель,
СдельныеНарядыВРубляхОбороты.СтоимостьФактОборот,
СдельныеНарядыВРубляхОбороты.Расценка,
СдельныеНарядыВРубляхОбороты.Регистратор.Ссылка,
СдельныеНарядыВРубляхОбороты.Операция,
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения,
ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения),
СдельныеНарядыВРубляхОбороты.Номенклатура.ЕдиницаИзмерения.Наименование
ПоказатьПричем запрос самой СКД точно такой же как и с отключенным представлением номенклатуры. Но тем не менее - не работает.
В чем может быть дело? Отладиком попадаю в модуль менеджера Номенклатуры, но только в процедуру ОбработкаПолученияПолейПредставленияОбработкаПолученияПолейП
Спасибо.
По теме из базы знаний
- Как сдать экзамен 1С:Специалист по платформе?
- Переопределение представления ссылочного значения
- Сквозной пример задачи оперативного учета (ОУ) при подготовке к экзамену "1С:Специалист" по платформе
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Программная установка отборов в типовых отчетах
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если в модуле отчета написать код ниже, то все работает.
Но оно и понятно мы отключили представление ссылки. Причем эту выборку формирует сама СКД в целях оптимизации. Хотелось бы конечно понять почему выражение ПРЕДСТАВЛЕНИЕССЫЛКИ не может получить измененное представление справочника Номенклатура.
МакетКомпоновки.НаборыДанных.НаборДанных1.Запрос = СтрЗаменить(МакетКомпоновки.НаборыДанных.НаборДанных1.Запрос,"ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Операция) КАК ОперацияПредставление,","СдельныеНарядыВРубляхОбороты.Операция КАК ОперацияПредставление,");
Но оно и понятно мы отключили представление ссылки. Причем эту выборку формирует сама СКД в целях оптимизации. Хотелось бы конечно понять почему выражение ПРЕДСТАВЛЕНИЕССЫЛКИ не может получить измененное представление справочника Номенклатура.
ПРЕДСТАВЛЕНИЕССЫЛКИ(СдельныеНарядыВРубляхОбороты.Операция) КАК ОперацияПредставление возвращает строку неограниченной длины, по таким строкам группировать нельзя.
Попробуйте в получении представления обрезать полное наименование:
Если Данные.НаименованиеПолное = Null или Данные.НаименованиеПолное = "" Тогда
Представление = Данные.Наименование;
Иначе
Представление = Лев(Данные.НаименованиеПолное, 1000);
КонецЕсли;
Попробуйте в получении представления обрезать полное наименование:
Если Данные.НаименованиеПолное = Null или Данные.НаименованиеПолное = "" Тогда
Представление = Данные.Наименование;
Иначе
Представление = Лев(Данные.НаименованиеПолное, 1000);
КонецЕсли;
Убрать запрос с группировкой в первый запрос пакета, вторым запросом сделать Выбрать * из ВремТаблПервогоЗапроса, либо не пользоваться группировкой запроса, а пользоваться группировкой настройками СКД. Видно же, что ругается на единицу, а не на операцию
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот