Как посмотреть в отладчике содержимое виртуальной таблицы
Как посмотреть в отладчике содержимое виртуальной таблицы. Предположим что мы сделали запись в регистр расчета и указали в ней используемый график работы. Должны были появиться записи виртуальной таблицы с колонками ФактическийПериодДействия и т.д.. Как увидеть в отладчике содержание этой виртуальной таблицы. Понятно что можно запросом, но это долго.
Прикрепленные файлы:
По теме из базы знаний
- Как сдать экзамен 1С:Специалист по платформе?
- Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика
- Приемы быстрой работы в EDT/Git
- Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы
- Расследование ошибки "TCP Provider: An existing connection was forcibly closed by the remote host" и неожиданные результаты
Найденные решения
(5)Еще раз: данные любой виртуальной таблицы любого регистра не хранятся в БД в отдельной таблице, они формируются динамически из нескольких таблиц по запросу.
Вы никак их по-другому не увидите.
Вас же не удивляет тот факт, что остатки в регистре доступны только запросом или удивляет?
Вы никак их по-другому не увидите.
Вас же не удивляет тот факт, что остатки в регистре доступны только запросом или удивляет?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)при остановке отладчиком после записи движений, и, например, установке графика работ, в виртуальной таблице появляются заполненные колонки, в данном случае ФактическийПериодДействия, как через вычислить выражение увидеть содержимое виртуальной таблицы. В каком контексте нажимать F9?
(3)Сделал через вычислить выражение вот таким кодом:
РегистрыРасчета.ОсновныеНачисления.ПолучитьДанныеГрафика(Новый Структура("Регистратор", Ссылка), ВидПериодаРегистраРасчета.ПериодДействия),
но это тоже долго, если есть движения и их можно получить запросом, значит их теоретически можно увидеть в отладчике
РегистрыРасчета.ОсновныеНачисления.ПолучитьДанныеГрафика(Новый Структура("Регистратор", Ссылка), ВидПериодаРегистраРасчета.ПериодДействия),
но это тоже долго, если есть движения и их можно получить запросом, значит их теоретически можно увидеть в отладчике
(5)Еще раз: данные любой виртуальной таблицы любого регистра не хранятся в БД в отдельной таблице, они формируются динамически из нескольких таблиц по запросу.
Вы никак их по-другому не увидите.
Вас же не удивляет тот факт, что остатки в регистре доступны только запросом или удивляет?
Вы никак их по-другому не увидите.
Вас же не удивляет тот факт, что остатки в регистре доступны только запросом или удивляет?
Мы пользуемся таким кодом (поместили в Глобальный модуль):
И, как вариант первого, с записью содержаимого виртуальной таблицы в файл:
//для просмотра результатов выполнения виртуальных таблиц в запросе
Функция ДанныеЗапроса(Запрос, ИмяТаблицы) Экспорт
ДанныеТаблицы = Новый Запрос;
ДанныеТаблицы.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ДанныеТаблицы.Текст =
"Выбрать *
| Из "+ИмяТаблицы+"
|";
Возврат ДанныеТаблицы.Выполнить().Выгрузить();
КонецФункции
ПоказатьИ, как вариант первого, с записью содержаимого виртуальной таблицы в файл:
//для просмотра результатов выполнения виртуальных таблиц в запросе
Функция ДанныеЗапросаТ(Запрос, ИмяТаблицы) Экспорт
ДанныеТаблицы = Новый Запрос;
ДанныеТаблицы.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ДанныеТаблицы.Текст =
"Выбрать *
| Из "+ИмяТаблицы+"
|";
Таблица=ДанныеТаблицы.Выполнить().Выгрузить();
КоличествоКолонок=Таблица.Колонки.Количество();
ИмяФайла = "D:\"+СокрЛП(ИмяТаблицы)+".TXT";
ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
Для каждого СтрокаТаблицы Из Таблица Цикл
СтрокаРЕз="";
Для НомерКолонки = 1 По КоличествоКолонок Цикл
СтрРез="";
Если Строка(ТипЗнч(СтрокаТаблицы[НомерКолонки - 1]))="Число" тогда
СтрРез=Формат(СтрокаТаблицы[НомерКолонки - 1], "ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧРГ=' '; ЧГ=0");
ИначеЕсли Строка(ТипЗнч(СтрокаТаблицы[НомерКолонки - 1]))="Дата" тогда
СтрРез=Формат(СтрокаТаблицы[НомерКолонки - 1], "ДФ=dd.MM.yyyy; ДЛФ=D");
Иначе
СтрРез=Строка(СтрокаТаблицы[НомерКолонки - 1]);
КонецЕсли;
СтрокаРЕз=строкаРез+СтрРез+";";
КонецЦикла;
ТекстовыйДокИзФайла.ДобавитьСтроку(строкаРЕз);
КонецЦикла;
// Попытка
ТекстовыйДокИзФайла.Записать(ИмяФайла, КодировкаТекста.UTF8);
Возврат(Истина);
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот