Здравствуйте. подскажите что может быть не так?
пишу запрос, выходит ошибка что поле не обнаружено, смотрю отладчиком, пишет что тип неопределено, хотя все остальные поля работают и у них тип ВыборкаИзрезультатаЗапроса
Ошибка: {БизнесПроцесс.СнижениеРисков.Форма.ФормаБизнесПроцесса.Форма(180)}: Поле объекта не обнаружено (Услуги)
ВыборкаУслуги = Выборка.Услуги.Выбрать();
пишу запрос, выходит ошибка что поле не обнаружено, смотрю отладчиком, пишет что тип неопределено, хотя все остальные поля работают и у них тип ВыборкаИзрезультатаЗапроса
Ошибка: {БизнесПроцесс.СнижениеРисков.Форма.ФормаБизнесПроцесса.Форма(180)}: Поле объекта не обнаружено (Услуги)
ВыборкаУслуги = Выборка.Услуги.Выбрать();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СнижениеРисков.Номер,
| СнижениеРисков.Дата,
| СнижениеРисков.Автор,
| СнижениеРисков.Причины.(
| Риск,
| Причина,
| Мероприятие,
| Ответственный,
| Срок
| ),
| Услуги.Процесс,
| Услуги.ПереходПроцесса
|ИЗ
| БизнесПроцесс.СнижениеРисков КАК СнижениеРисков
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Услуги КАК Услуги
| ПО СнижениеРисков.Причины.Риск.Ссылка = Услуги.Ссылка
|ГДЕ
| СнижениеРисков.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
ОбластьШапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка.Причины.Выбрать();
Пока ВыборкаПричины.Следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаПричины);
ТабДок.Вывести(ОбластьТаблица, ВыборкаПричины.Уровень());
ВыборкаУслуги = РезультатЗапроса.Справочник.Услуги.Выбрать();
Пока ВыборкаУслуги.следующий() Цикл
ОбластьТаблица.Парметры.Заполнить(ВыборкаУслуги);
КонецЦикла;
КонецЦикла;
ВыборкаУслуги = Выборка.Услуги.Выбрать();
Пока ВыборкаУслуги.Следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаУслуги);
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
ПоказатьПо теме из базы знаний
- УПП 1.3.65.3: устранение ошибки "Поле объекта не обнаружено" при использовании сохранённых настроек отчётов, сделанных на базе универсального
- Исправление ошибки Поле объекта не обнаружено (CountryCode) при обновлении Бухгалтерия предприятия с 2.0 на редакцию 3.0
- Исправление ошибки в БП 3.0 "Поле объекта не обнаружено (НомерИсправленияКорректировочного)"
- Изменение оплаты труда: Поле объекта не обнаружено (ДействуетДо). ЗУП 3.1
- Исправление ошибки "Поле объекта не обнаружено (Регистратор)" при проведении документа "Начисление зарплаты и взносов". ЗУП 3.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Причины это у Вас табличная часть, поэтому из нее можно сделать выборку.
Услуги это справочник, который присоединили к основной таблице внутренним соединением, поэтому поля справочника услуги у вас будут доступны при обходе основной таблицы выборки.
т.е. код
Пока ВыборкаУслуги.Следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаУслуги);
КонецЦикла;
лишний
ОбластьТаблица.Параметры.Заполнить(Выборка) - этого достаточно
Услуги это справочник, который присоединили к основной таблице внутренним соединением, поэтому поля справочника услуги у вас будут доступны при обходе основной таблицы выборки.
т.е. код
Пока ВыборкаУслуги.Следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаУслуги);
КонецЦикла;
лишний
ОбластьТаблица.Параметры.Заполнить(Выборка) - этого достаточно
(2)
Сделал как вы сказали, сначала все получилось, а потом не получилось)))
Что не так?
Сделал как вы сказали, сначала все получилось, а потом не получилось)))
Что не так?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СнижениеРисков.Номер,
| СнижениеРисков.Дата,
| СнижениеРисков.Автор,
| СнижениеРисков.Причины.(
| Риск,
| Причина,
| Мероприятие,
| Ответственный,
| Срок
| ),
| Услуги.Процесс,
| Услуги.ПереходПроцесса
|ИЗ
| БизнесПроцесс.СнижениеРисков КАК СнижениеРисков
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Услуги КАК Услуги
| ПО СнижениеРисков.Причины.Риск.Ссылка = Услуги.Ссылка
|ГДЕ
| СнижениеРисков.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТабДок.Вывести(ОбластьЗаголовок);
Пока выборка.Следующий() Цикл
ОбластьШапка.параметры.заполнить(Выборка);
КонецЦикла;
ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка.Причины.Выбрать();
Пока ВыборкаПричины.следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаПричины);
ОбластьТаблица.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТаблица);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Ложь;
Возврат ТабДок;
Показать
(4)
Так попробуйте...
Пока выборка.Следующий() Цикл
ОбластьШапка.параметры.заполнить(Выборка);
КонецЦикла;
ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка.Причины.Выбрать();
Пока ВыборкаПричины.следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаПричины);
ОбластьТаблица.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТаблица);
КонецЦикла;
ОбластьШапка.параметры.заполнить(Выборка);
КонецЦикла;
ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка.Причины.Выбрать();
Пока ВыборкаПричины.следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаПричины);
ОбластьТаблица.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТаблица);
КонецЦикла;
Пока выборка.Следующий() Цикл
ОбластьШапка.параметры.заполнить(Выборка);
ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка.Причины.Выбрать();
Пока ВыборкаПричины.следующий() Цикл
ОбластьТаблица.Параметры.Заполнить(ВыборкаПричины);
ОбластьТаблица.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьТаблица);
КонецЦикла;
КонецЦикла;
ПоказатьТак попробуйте...
Результат запроса (Выборка) таблица с полями: Номер, Дата, Автор, Причины( таблица),Процесс, ПереходПроцесса. Поле "Услуги" отсутствует. Запрос полностью нужно переделать . В качестве основной таблицы брать Причины , Использовать группировке "Причины.Ссылка", "Причина" и обращаться к результату запроса соответственно: К первой группировке , ко второй и остальным элементам
(0)
1) Идите изучайте язык запросов. То, что вы написали - белиберда.
Конструкции вида "СнижениеРисков.Причины.Риск.Ссылка =" (куча обращений через точку) приводят к тормозам.
Вытаскивать таблицу в качестве поля - "СнижениеРисков.Причины.(" - тоже сомнительное решение.
2) Текст "Поле объекта не обнаружено" надо читать как "Поле У объекта не обнаружено". Если добавить "Поле объекта не обнаружено (Услуги): ВыборкаУслуги = Выборка.Услуги.Выбрать(); " то становится понятно, что система не может найти поле "Услуги" у объекта "Выборка". Вы же написали "Выборка.Услуги". А в выборке нет поля "услуги"; перечень полей задан вами в секции "ВЫБРАТЬ ...".
1) Идите изучайте язык запросов. То, что вы написали - белиберда.
Конструкции вида "СнижениеРисков.Причины.Риск.Ссылка =" (куча обращений через точку) приводят к тормозам.
Вытаскивать таблицу в качестве поля - "СнижениеРисков.Причины.(" - тоже сомнительное решение.
2) Текст "Поле объекта не обнаружено" надо читать как "Поле У объекта не обнаружено". Если добавить "Поле объекта не обнаружено (Услуги): ВыборкаУслуги = Выборка.Услуги.Выбрать(); " то становится понятно, что система не может найти поле "Услуги" у объекта "Выборка". Вы же написали "Выборка.Услуги". А в выборке нет поля "услуги"; перечень полей задан вами в секции "ВЫБРАТЬ ...".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот