|
Консоль запросов. Представления. Поле объекта не обнаружено
|
|
| WrongLane | Дата: Пн, 06.10.2025, 12:44:28 | Сообщение # 1 |
|
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 4
Статус: Оффлайн
| Код ВЫБРАТЬ РАЗРЕШЕННЫЕ &ДатаАктуальности КАК Период, Сотрудники.Ссылка КАК Сотрудник ПОМЕСТИТЬ ВТСотрудники_ДатаАктуальности ИЗ Справочник.Сотрудники КАК Сотрудники ГДЕ Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник И ВЫБОР КОГДА &Сотрудник = НЕОПРЕДЕЛЕНО ИЛИ &Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Сотрудники.Ссылка = &Сотрудник КОНЕЦ ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДАТАВРЕМЯ(1, 1, 1) КАК Период, ДАТАВРЕМЯ(1, 1, 1) КАК ПериодЗаписи, ДАТАВРЕМЯ(1, 1, 1) КАК ПериодВозвратногоСобытия, ЛОЖЬ КАК ЭтоВозвратноеСобытие, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, ЗНАЧЕНИЕ(ПланВидовРасчета.Начисления.ПустаяСсылка) КАК Начисление, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо, ЗНАЧЕНИЕ(Документ.НазначениеПлановогоНачисления.ПустаяСсылка) КАК ДокументОснование, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация, ИСТИНА КАК Используется, 0 КАК Размер, ИСТИНА КАК ПересчетНеТребуется, ИСТИНА КАК ВторичнаяЗапись ПОМЕСТИТЬ Представления_СрезПоследних_ПлановыеНачисления_ДатаАктуальности ИЗ ВТСотрудники_ДатаАктуальности КАК ОтборДляТаблицыРегистра ГДЕ "ТолькоРазрешенные" = ИСТИНА И "ПараметрыПостроения_ФормироватьСПериодичностьДень" = ИСТИНА И "ПараметрыПостроения_ВключатьЗаписиНаНачалоПериода" = ИСТИНА
Запрос выполняется. Но когда начинаю тыкать на подзапросы в окне "Структура запроса ведомая" - на запросе с представлением выскакивает ошибка.

Причем имя поля совпадает с именем таблицы в запросе.
Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.34.77) 1С:Предприятие 8.3 (8.3.27.1606) Расширение 7.96.1e
Сообщение отредактировал WrongLane - Пн, 06.10.2025, 12:46:12 |
| |
| |
| tormozit | Дата: Пн, 06.10.2025, 13:39:28 | Сообщение # 2 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| нужен текст ошибки
|
| |
| |
| WrongLane | Дата: Пн, 06.10.2025, 14:04:17 | Сообщение # 3 |
|
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 4
Статус: Оффлайн
| Цитата tormozit (  ) нужен текст ошибки Код Поле объекта не обнаружено (ВТСотрудники_ДатаАктуальности) {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанныхБазовый.Модуль(2917)}:ИзмеренияФильтра = ЗарплатаКадрыОбщиеНаборыДанных.МассивПолейЗапроса(СоответствиеПараметров[ИмяВТФильтра]); {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанныхРасширенный.Модуль(1304)}:Запрос = ЗарплатаКадрыОбщиеНаборыДанныхБазовый.ПолучитьЗапросПоПредставлению(ТекстЗапроса, СоответствиеПараметров); {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанныхВнутренний.Модуль(12)}:Возврат ЗарплатаКадрыОбщиеНаборыДанныхРасширенный.ПолучитьЗапросПоПредставлению(ТекстЗапроса, СоответствиеПараметров); {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанныхПовтИсп.Модуль(12)}:Возврат КонтейнерТекстаЗапросаИПараметров( {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанных.Модуль(2124)}:Возврат ЗарплатаКадрыОбщиеНаборыДанныхПовтИсп.ПолучитьЗапросПоПредставлению(ТекстЗапроса, СоответствиеПараметров); {ОбщийМодуль.ЗарплатаКадрыОбщиеНаборыДанных.Модуль(917)}:Запрос = ПолучитьЗапросПоПредставлению(ТекстЗапроса, СоответствиеПараметров); {(5)}:ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(мОбъектЗапроса.Текст); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирОбщий.Модуль(1351)}:Выполнить(_ТекстДляВыполнения); {ИнструментыРазработчикаTormozit ОбщийМодуль.ирСервер.Модуль(438)}:Результат = ирОбщий.ВыполнитьАлгоритм(_ТекстДляВыполнения, _АлгоритмОбъект, _Режим, _П0, _П1, _П2, _П3, _П4, _П5, _П6, _П7, _П8, _П9); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(3849)}:ирСервер.ВыполнитьАлгоритм(ТекстДляВыполнения,,, СтруктураПараметров, СнимокЗапроса); {(1)}:КонтекстВыполнения.ВыполнитьЛокальноКодПередВыполнениемЗапроса(ТекстДляВыполнения, ЛиСинтаксическийКонтроль) {ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(11463)}:ИнформацияОбОшибке = Вычислить("КонтекстВыполнения." + МетодВыполнения + "(ТекстДляВыполнения, ЛиСинтаксическийКонтроль)"); {ИнструментыРазработчикаTormozit Обработка.ирКлсПолеТекстаПрограммы.МодульОбъекта(4482)}:мПлатформа.ВыполнитьПрограммныйКодВКонтексте(КонтекстВыполнения, МетодВыполнения, ТекстДляВыполнения, ЛиСинтаксическийКонтроль); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(7675)}:Результат = ПолеТекстаПрограммы.ВыполнитьПрограммныйКод(,, ТекстДляВыполнения); {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(2200)}:Если Не ВыполнитьОбработчикПередВыполнениемЗапроса() Тогда {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(4939)}:ВыполнитьЗапрос(,,,,,, Истина);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Сообщение отредактировал WrongLane - Пн, 06.10.2025, 14:04:32 |
| |
| |
| tormozit | Дата: Пн, 06.10.2025, 19:43:07 | Сообщение # 4 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| Похоже на ошибку в коде конфигурации. Во всяком случае мне тяжело ее понять.
|
| |
| |
| WrongLane | Дата: Вт, 07.10.2025, 07:06:51 | Сообщение # 5 |
|
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 4
Статус: Оффлайн
| Вот тут ищет в соответствии элемент с именем временной таблицы.
 Но соответствие пустое
 Возможно, это соответствие нужно где-то здесь сформировать и передать?
Сообщение отредактировал WrongLane - Вт, 07.10.2025, 07:08:10 |
| |
| |
| amiralnar | Дата: Вт, 07.10.2025, 08:35:13 | Сообщение # 6 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 52
Статус: Оффлайн
| В случае, если в общем тексте запроса нет запроса создания ВТ фильтра "ВТСотрудники_ДатаАктуальности" то не будет работать метод "ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц". Этот метод ожидает, что в текст обязательно будет создание ВТ перед обращением к представлению.
|
| |
| |
| yasnovidyashii | Дата: Вт, 07.10.2025, 08:39:58 | Сообщение # 7 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Возможно скажу глупость, но мне кажется, алгоритм преобразования представлений предполагает наличие в тексте запроса обоих подзапросов. Преобразовать и выполнить второй запрос без первого невозможно. А именно такая попытка и происходит при кликах по структуре подзапроса.
|
| |
| |
| yasnovidyashii | Дата: Вт, 07.10.2025, 08:42:45 | Сообщение # 8 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Я еще одну ошибку поймал, кликая в данном поле. Кликал по цифре:

Код Ошибка при установке значения атрибута контекста (ТекущаяСтрока) {ИнструментыРазработчикаTormozit Обработка.ирКонсольЗапросов.Форма.Форма.Форма(4886)}:ЭлементыФормы.ВременныеТаблицы.ТекущаяСтрока = ВременныеТаблицы.Найти(мТекущаяСтрокаДереваЗапроса.НИмяОсновнойТаблицы, "НИмя");
[ОшибкаВоВремяВыполненияВстроенногоЯзыка] по причине: Отсутствует ключ строки [ОшибкаИспользованияВстроенногоЯзыка]
|
| |
| |
| amiralnar | Дата: Вт, 07.10.2025, 08:45:01 | Сообщение # 9 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 52
Статус: Оффлайн
| В таком случае вместо
ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(мОбъектЗапроса.Текст)
сработает:
мОбъектЗапроса.Текст = ЗарплатаКадрыОбщиеНаборыДанных.ПолучитьЗапросПоПредставлению(мОбъектЗапроса.Текст, Новый Соответствие).Текст;
|
| |
| |
| yasnovidyashii | Дата: Вт, 07.10.2025, 11:11:32 | Сообщение # 10 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Цитата yasnovidyashii (  ) Возможно скажу глупость, но мне кажется, алгоритм преобразования представлений предполагает наличие в тексте запроса обоих подзапросов. Преобразовать и выполнить второй запрос без первого невозможно. Пробуем выполнить в консоли кода следующий код и получаем ровно ту же ошибку. Так что мое предложение верно.
Код ТекстЗапроса = "ВЫБРАТЬ | ДАТАВРЕМЯ(1, 1, 1) КАК Период, | ДАТАВРЕМЯ(1, 1, 1) КАК ПериодЗаписи, | ДАТАВРЕМЯ(1, 1, 1) КАК ПериодВозвратногоСобытия, | ЛОЖЬ КАК ЭтоВозвратноеСобытие, | ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, | ЗНАЧЕНИЕ(ПланВидовРасчета.Начисления.ПустаяСсылка) КАК Начисление, | ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо, | ЗНАЧЕНИЕ(Документ.НазначениеПлановогоНачисления.ПустаяСсылка) КАК ДокументОснование, | ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация, | ИСТИНА КАК Используется, | 0 КАК Размер, | ИСТИНА КАК ПересчетНеТребуется, | ИСТИНА КАК ВторичнаяЗапись |ПОМЕСТИТЬ Представления_СрезПоследних_ПлановыеНачисления_ДатаАктуальности |ИЗ | ВТСотрудники_ДатаАктуальности КАК ОтборДляТаблицыРегистра |ГДЕ | ""ТолькоРазрешенные"" = ИСТИНА | И ""ПараметрыПостроения_ФормироватьСПериодичностьДень"" = ИСТИНА | И ""ПараметрыПостроения_ВключатьЗаписиНаНачалоПериода"" = ИСТИНА |";
ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(ТекстЗапроса);
|
| |
| |
| tormozit | Дата: Вт, 07.10.2025, 20:03:47 | Сообщение # 11 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| Видимо тут только поможет оборачивать в попытку и выводить ошибку в виде сообщения. Или есть еще идеи?
|
| |
| |
| yasnovidyashii | Дата: Вт, 07.10.2025, 20:15:35 | Сообщение # 12 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Цитата tormozit (  ) Видимо тут только поможет оборачивать в попытку и выводить ошибку в виде сообщения. Или есть еще идеи? Возможно стоит в целом ограничить данный функционал для запросов с преобразованием представлений. Так как преобразованный запрос может сильно отличаться от изначального, в том числе по количеству итоговых подзапросов, насколько я помню. Так что отображаемая структура запроса реальному запросу соответствует очень условно.
Кроме того, возможно в сообщении стоит пользователю предлагать использовать панель результата пакета для просмотра результатов выполнения подзапросов. Мне кажется, многие кликают по структуре запроса именно с этой целью.
|
| |
| |
| WrongLane | Дата: Ср, 08.10.2025, 07:49:42 | Сообщение # 13 |
|
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 4
Статус: Оффлайн
| Могу сказать, что я использую для того, чтобы просмотреть результат выполнения. Наверное мог бы использовать и блок с вкладки "временные таблицы", но мешает пара особенностей: 1. Это нужно каждый раз переключаться на другую вкладку. 2. Таблицы отсортированы по алфавиту. 3. Отображаются все временные таблицы всех запросов. А мне было бы удобнее видеть таблицы только текущего запроса.
Сообщение отредактировал WrongLane - Ср, 08.10.2025, 07:53:54 |
| |
| |
| amiralnar | Дата: Ср, 08.10.2025, 08:24:23 | Сообщение # 14 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 52
Статус: Оффлайн
| Цитата tormozit (  ) Или есть еще идеи? Это не просто идея а конкретное решение, например https://devtool1c.ucoz.ru/forum/2-2901-13279-16-1759815901
|
| |
| |
| WrongLane | Дата: Ср, 08.10.2025, 08:28:32 | Сообщение # 15 |
|
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 4
Статус: Оффлайн
| Хочу попробовать. А где это нужно заменить?
|
| |
| |