Closed agithubber2 closed 3 months ago
нужен текст запроса и картинка
Из соображений приватности оставил из всего пакета запросов только два первых запроса - ошибка та же самая, и не надо анализировать большой пакет запросов. На картинке практически весь текст запроса и ошибка снизу слева.
Также запрос в виде текста ниже.
Запрос как текст:
`ВЫБРАТЬ РАЗЛИЧНЫЕ
Начисления.ГрафикРаботыНорма КАК ГрафикРаботыНорма,
Начисления.ПериодДействия КАК Месяц,
Начисления.ПериодРегистрацииВремени КАК ПериодРегистрацииВремени,
Начисления.ПериодДействияНачало КАК ПериодДействияНачало,
Начисления.ПериодДействияКонец КАК ПериодДействияКонец
ПОМЕСТИТЬ ВТГрафикиМесяцы
ИЗ
РегистрРасчета.Начисления КАК Начисления
ГДЕ
Начисления.Регистратор = &ВременныйРегистратор
И (Начисления.ВидРасчета.ТребуетсяРасчетНормыВремени
ИЛИ Начисления.ВидРасчета.КатегорияНачисленияИлиНеоплаченногоВремени В (&МассивКатегорийДляОпределенияНормы))
И НЕ Начисления.ФиксРасчетВремени
И Начисления.ВидРасчета.ОчередностьРасчета = &ОчередностьРасчета
;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ГрафикиМесяцы.ГрафикРаботыНорма КАК ГрафикРаботы, ГрафикиМесяцы.Месяц КАК Месяц, СУММА(ГрафикиРаботы.ОсновноеЗначениеНорма) КАК НормаДней, СУММА(ГрафикиРаботы.ДополнительноеЗначениеНорма) КАК НормаЧасов, СУММА(ВЫБОР КОГДА ГрафикиРаботы.Дата МЕЖДУ ГрафикиМесяцы.ПериодДействияНачало И ГрафикиМесяцы.ПериодДействияКонец ТОГДА ГрафикиРаботы.ОсновноеЗначение ИНАЧЕ 0 КОНЕЦ) КАК НормаДнейВПериоде, СУММА(ВЫБОР КОГДА ГрафикиРаботы.Дата МЕЖДУ ГрафикиМесяцы.ПериодДействияНачало И ГрафикиМесяцы.ПериодДействияКонец ТОГДА ГрафикиРаботы.ДополнительноеЗначениеНорма ИНАЧЕ 0 КОНЕЦ) КАК НормаЧасовВПериоде, ГрафикиМесяцы.ПериодДействияНачало КАК ПериодДействияНачало, ГрафикиМесяцы.ПериодДействияКонец КАК ПериодДействияКонец ПОМЕСТИТЬ ВТНормаВремени ИЗ ВТГрафикиМесяцы КАК ГрафикиМесяцы ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботы ПО (ГрафикиРаботы.ГрафикРаботы = ГрафикиМесяцы.ГрафикРаботыНорма) И (ГрафикиРаботы.Месяц = ГрафикиМесяцы.Месяц) И (НЕ ГрафикиРаботы.ВремяВЧасах) И (ГрафикиРаботы.ВидУчетаВремени = &РабочееВремя) И (ГрафикиРаботы.ПериодРегистрации = ГрафикиМесяцы.ПериодРегистрацииВремени)
СГРУППИРОВАТЬ ПО ГрафикиМесяцы.ГрафикРаботыНорма, ГрафикиМесяцы.Месяц, ГрафикиМесяцы.ПериодДействияНачало, ГрафикиМесяцы.ПериодДействияКонец`
Картинка в полном размере не открывается. Проверь ее открытие под анонимным пользователем.
Подозреваю, что ты не отключил выполнение запроса в отменяемой транзакции, описанной в обработчике "Перед выполнением". Действие транзакции распространяется и на создаваемые временные таблицы. Поэтому накопления временных таблиц в менеджере временных таблиц в таком режиме нет.
Добавлю в первую строку кода этого обработчика комментарий, поясняющий эту особенность:
НачатьТранзакцию(); // ВНИМАНИЕ! Транзакция НЕ фиксируется. Поэтому все созданные в ней временные таблицы будут сразу уничтожены.
Причем по сути тот же комментарий уже выводится при открытии этого снимка:
В обработчике "Перед выполнением запроса" размещен отключенный код по восстановлению незафиксированных изменений на момент снимка. При использовании в нем нефиксируемой транзакции созданные в ней временные таблицы будут недоступны.
Большое спасибо за ответ. Насчёт неоткрытия картинки не очень понял, проверил под анонимным, кликаю картинку - открывает ее в оригинальном размере. Ладно, главное: подскажи тогда, Сергей, пожалуйста, как же , какую "хитрость" , или приём, или что можно применить, чтобы посмотреть временные эти таблицы?!? Если я пытаюсь пошагово выполнять пакет, то вижу результат только первого запроса, а со второго - сразу ошибка вместо выполнения! И получается, что я могу видеть результат вып. только первого и последенго запросов пакета!!
Причем, вспоминаю, пару месяцев назад у меня не было такой проблемы! На ЭТОМ ЖЕ САМОМ запросе точно в этом же модуле, и запрос не менялся! И как-то я мог пошагово трассировать и выполнять (этот же!) пакет. Я бросился вернул разные версии вплоть до августовских - но все они теперь работают одинаково: для отладки просмотра мне доступны только результаты исполнения только первого и последнего запросов пакета! Слов нет! Постоянно траблы вместо жизни! Как же отладить вопрос, как смотреть временные таблицы?!?
Как же отладить вопрос, как смотреть временные таблицы?!?
Отключать или фиксировать транзакцию
Я сейчас не у комп, но что значит "отключить транзакцию"? Насколько я помню, именно разкомментирование кода во вкладке, который включает транзакцию , позволяет получить реальное поведение (снимок) происходившего в модуле при исполнении кода. Если оставить код закомментированным , то при исполнении снимка получается пустышка, не соответствующая абсолютно реальному исполнению запроса в коде. Но и фиксировать транзакцию , добавив код в этой вкладке, тоже нельзя , так как нельзя "портить" реальную базу , внося изменения. Тем более, обычно требуется сохранить несколько снимков запроса а разными входными параметрами и т.п. для сравнения и т.п. Или я не так что-то понимаю , и можно отключить транзакцию , но и сохранить возможность трассировать исполнение пакета запросов с просмотром временных таблиц?
Очевидно, способ существует. Так как, реально, раньше , хотя я и сталкивался эпизодически с проблемой, описанной в этом топике, но помогали манипуляции с включением /отключением ведущей/ведомой структуры , или ещё что-то похожее, но реально я мог трассировать исполнение пакета с просмотром таблиц! Это первый раз я столкнулся , что никакие "манипуляции" не помогают , и я могу смотреть только результат первого или самого последнего запросов пакета.
Программное окружение Платформа: 8.3.19.1522 Режим БД: клиент-серверный Конфигурация. Название: Зарплата и управление персоналом, редакция 3.0 (3.0.18.77) Конфигурация. Основной режим запуска: Управляемое приложение Конфигурация. Вариант встроенного языка: Русский Конфигурация. Режим управления блокировкой данных: Управляемый Конфигурация. Режим совместимости: Версия8_3_15 Конфигурация. Режим использования синхронных вызовов: Использовать Конфигурация. Версия БСП: 202 Инструменты разработчика. Версия: Портативный 7.19.2p Инструменты разработчика. Инструмент: Консоль запросов Инструменты разработчика. Перехват клавиатурного ввода: Да Инструменты разработчика. Объекты на сервере: Да Инструменты разработчика. Серверный модуль БСП: Да Расширения. Адаптация1 () Клиент. Приложение: Обычное приложение 64б Клиент. Проверка модальных вызовов: Нет Клиент. Язык интерфейса конфигурации: ru Клиент. Язык интерфейса системы: ru_RU Клиент. Отладка разрешена: Да Клиент. Постоянный кэш метаданных: Да Клиент. ОС: Майкрософт Windows 10 Корпоративная LTSC 64-разрядная Русский Клиент. ОС от имени администратора: Нет Клиент. ОС выполнение BAT: Да Клиент. ОС Текущая кодовая страница: 866 Клиент-Сервер. Пинг: 0мс Сервер. ОС: Windows x86-64 Microsoft Windows 10 version 10.0 (Build 17763)
Воспроизведение проблемы
Ожидаемое поведение Возможность просматривать формируемые в пакете запросов временные таблицы (сейчас только вижу, сколько в них строк сформировано)