Функции режима отладки
Функции, ориентированные на использование в режиме отладки. Их можно вызывать из отладчика через диалог Вычислить выражение, а также из произвольного кода через модуль УИ_.
- Модуль: УИ_
Доступность функций зависит от контекста выполнения. см. таблицу ниже
| Функция | Описание | Контекст |
|---|---|---|
_От(ОбъектОтладки, ...) | Отладка объекта (сохранение в БД) | Любой |
_ОтФ(ОбъектОтладки, ...) | Отладка объекта (сохранение в файлы) | Любой |
_Пр(ПараметрА, ПараметрБ) | Присвоить значение переменной | Любой |
_Ду(Код, П, ...) | Выполнить код в отладчике | Кроме веб-клиента |
_XMLОбъект(ПутьЧтения, УпроститьЭлементы) | Чтение XML в простые структуры | Кроме веб-клиента |
_ВТ(ЗапросИЛИМенеджерВременныхТаблиц) | Структура временных таблиц | Сервер / Толстый клиент |
_ТЗСр(ТаблицаБазовая, ТаблицаСравнения, ...) | Сравнение двух таблиц значений | Сервер / Толстый клиент |
_Алг(НаименованиеАлгоритма, ТекстАлгоритма, ...) | Создание и выполнение алгоритма | Сервер / Толстый клиент |
_Алг2(ТекстАлгоритма) | Формирование строки вызова _Алг | Сервер / Толстый клиент |
_От(ОбъектОтладки, ПараметрОтладки2, ПараметрОтладки3, ПараметрОтладки4, ПараметрОтладки5)
Запускает соответствующий инструмент отладки для переданного объекта. На толстом клиенте открывает форму консоли сразу. На сервере, тонком или веб-клиенте сохраняет данные в справочник Данные для отладки для последующего просмотра.
Параметры:
ОбъектОтладки—Запрос, СхемаКомпоновкиДанных, HTTPЗапрос, ЛюбаяСсылка, ТаблицаФормы. Объект для отладки.ПараметрОтладки2…ПараметрОтладки5—Неопределено, HTTPСоединение, НастройкиКомпоновкиДанных, Структура, Строка, МенеджерВременныхТаблиц. Дополнительные параметры (порядок произвольный).
Возвращаемое значение: Строка — ссылка на сохранённые данные отладки.
УИ_._От(Запрос);
УИ_._От(Запрос, "Мой запрос");
УИ_._От(СхемаКомпоновкиДанных, НастройкиСКД, ВнешниеНаборыДанных, МенеджерВременныхТаблиц);
УИ_._От(Элементы.Список, "Список товаров");
УИ_._От(СсылкаНаОбъектБД);
УИ_._От(HTTPЗапрос, СоединениеHTTP, "Получение списка задач");
_ОтФ(ОбъектОтладки, ПараметрОтладки2, ПараметрОтладки3, ПараметрОтладки4, ПараметрОтладки5)
Аналог _От, но сохраняет данные отладки не в справочник, а в файлы во временном каталоге на сервере.
Параметры: идентичны _От.
Возвращаемое значение: Строка — ссылка на сохранённые данные отладки.
УИ_._ОтФ(Запрос, "Выгрузка остатков");
УИ_._ОтФ(СхемаКомпоновкиДанных, НастройкиСКД);
Подробное описание и примеры использования методов _ОтФ и _От в статье об отладке.
_Пр(ПараметрА, ПараметрБ)
Присваивает переменной ПараметрА значение ПараметрБ и возвращает его. Удобно для быстрой проверки значений в отладчике.
Параметры:
ПараметрА—Произвольный. Переменная, которой присваивается значение.ПараметрБ—Произвольный. Присваиваемое значение.
Возвращаемое значение: Произвольный — значение ПараметрБ.
УИ_._Пр(Результат, 42); // возвращает 42, Результат = 42
УИ_._Пр(ТекДата, ТекущаяДата());
_Ду(Код, П, П2, П3, П4, П5)
Выполняет произвольный код в отладчике. Аналог функции ДУ из ИР. Внутри выполняемого кода доступны переменные П…П5. Для возврата значения определите переменную Р.
Параметры:
Код—Строка. Произвольный код на встроенном языке 1С.П…П5—Произвольный. Параметры, доступные внутри кода.
Возвращаемое значение: Произвольный — значение переменной Р, определённой в коде.
УИ_._ДУ("Сообщить(П)", "Хорошо");
Сумма = 1000;
УИ_._ДУ("Сообщить(П); Р = П + П2;", Сумма, 500);
// Р = 1500
_XMLОбъект(ПутьЧтения, УпроститьЭлементы = Истина)
Читает XML-документ и преобразует его в простые структуры данных (Структура, Соответствие, Массив).
Параметры:
ПутьЧтения—Строка, ЧтениеXML, Поток. Источник XML.УпроститьЭлементы—Булево. ПриИстинаубирает лишние элементы структуры.
Возвращаемое значение: Структура, Соответствие, Неопределено — результат разбора XML.
// Чтение из файла
Результат = УИ_._XMLОбъект("C:\Данные\документ.xml");
// Чтение из потока
Результат = УИ_._XMLОбъект(Поток);
// Без упрощения структур
Результат = УИ_._XMLОбъект("C:\Данные\документ.xml", Ложь);
_ВТ(ЗапросИЛИМенеджерВременныхТаблиц)
Выполняет запрос и возвращает структуру всех временных таблиц. Если передан МенеджерВременныхТаблиц, возвращает его таблицы без выполнения запроса.
Параметры:
ЗапросИЛИМенеджерВременныхТаблиц—Запрос, МенеджерВременныхТаблиц.
Возвращаемое значение: Структура — ключ: имя таблицы, значение: таблица значений.
// Получить временные таблицы запроса
ВТ = УИ_._ВТ(Запрос);
// Получить таблицы из менеджера
ВТ = УИ_._ВТ(Запрос.МенеджерВременныхТаблиц);
// Обход результата
Для каждого Эл Из ВТ Цикл
Сообщить("Таблица: " + Эл.Ключ + ", строк: " + Эл.Значение.Количество());
КонецЦикла;
_ТЗСр(ТаблицаБазовая, ТаблицаСравнения, СписокКолонок = Неопределено)
Сравнивает две таблицы значений по указанным колонкам и возвращает расхождения.
Параметры:
ТаблицаБазовая—ТаблицаЗначений. Первая таблица для сравнения.ТаблицаСравнения—ТаблицаЗначений. Вторая таблица для сравнения.СписокКолонок—Строка. Колонки для сравнения через запятую. Если не указан — сравнение по всем колонкам базовой таблицы.
Возвращаемое значение: Структура:
ИдентичныеТаблицы—Булево. Признак идентичности.ТаблицаРасхождений—ТаблицаЗначений. Расхождения.
// Сравнение по всем колонкам
Результат = УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения);
Если Результат.ИдентичныеТаблицы Тогда
Сообщить("Таблицы совпадают");
КонецЕсли;
// Сравнение по выбранным колонкам
Результат = УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения, "Номенклатура,Количество");
_Алг(НаименованиеАлгоритма, ТекстАлгоритма, Параметр1, …, Параметр9, МассивИменПараметров)
Создаёт или находит алгоритм по наименованию и выполняет его с переданными параметрами.
Параметры:
НаименованиеАлгоритма—Строка. Наименование элемента справочника Алгоритмы.ТекстАлгоритма—Строка. Текст алгоритма.Параметр1…Параметр9—Произвольный. Параметры алгоритма.МассивИменПараметров—Строка. Имена параметров через запятую.
Возвращаемое значение: Строка — результат выполнения.
УИ_._Алг("МойАлгоритм", "Сообщить(Параметр1)", "Привет");
_Алг2(ТекстАлгоритма)
Формирует строку вызова функции _Алг на основе переданного текста процедуры. Упрощает подготовку вызова алгоритма из отладчика.
Параметры:
ТекстАлгоритма—Строка. Текст процедуры с параметрами, напримерМодуль.Процедура(П1, П2).
Возвращаемое значение: Строка — строка для вызова _Алг.
СтрокаВызова = УИ_._Алг2("Модуль.ОбработатьДанные(Парам1, Парам2)");
// Результат: УИ_._Алг("Модуль.ОбработатьДанные", "Модуль.ОбработатьДанные(Парам1, Парам2)", Парам1,Парам2,,,,,,, "Парам1,Парам2")
Примеры
Отладка запроса с произвольным кодом
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ 1 Как Поле";
УИ_._От(Запрос, "Тестовый запрос");
Сравнение таблиц с обходом расхождений
Результат = УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения, "Код,Наименование");
Если Не Результат.ИдентичныеТаблицы Тогда
Для каждого Строка Из Результат.ТаблицаРасхождений Цикл
Сообщить(Строка.ВидОперации + ": " + Строка.Код);
КонецЦикла;
КонецЕсли;
Выполнение и возврат значения через _Ду
УИ_._ДУ("Р = П * 10 + П2", 3, 7);
// Р = 37