Пт, 19.12.2025, 13:44:11
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Консоль запросов. Представления. Поле объекта не обнаружено
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
Прикрепления: 1187588.png (14.9 Kb)


Сообщение отредактировал 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
Статус: Оффлайн
Вот тут ищет в соответствии элемент с именем временной таблицы.

Но соответствие пустое

Возможно, это соответствие нужно где-то здесь сформировать и передать?
Прикрепления: 0186995.png (66.7 Kb) · 1981956.png (72.7 Kb) · 4324639.png (72.7 Kb) · 6225384.png (58.3 Kb)


Сообщение отредактировал 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)}:ЭлементыФормы.ВременныеТаблицы.ТекущаяСтрока = ВременныеТаблицы.Найти(мТекущаяСтрокаДереваЗапроса.НИмяОсновнойТаблицы, "НИмя");

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Отсутствует ключ строки
[ОшибкаИспользованияВстроенногоЯзыка]
Прикрепления: 0717945.png (9.8 Kb)
 
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
Статус: Оффлайн
Хочу попробовать. А где это нужно заменить?
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: