Функция ОТЛАДКА
Функция ОТЛАДКА предназначена для вывода отладочной информации в специальное окно "Отладочные сообщения". Можно отключить вывод без удаления вызовов функций из исходного текста, сбросив опцию Вывод в окно отладки на закладке Документы пункта Установка/Настройки Главного меню. На компиляцию данная опция не влияет, а значение параметра оператора всегда вычисляется.
ФУНКЦИЯ ОТЛАДКА([<[<][имя_файла]] [>] *: сообщение)
Параметры
- опции
-
- < – Принудительный вывод только в файл.
После символа < в квадратных скобках может указываться строковое выражение – явно заданное имя log-файла:
[<имя файла>].
Если указаны два знака меньше <<, то в сетевой версии выполняется также запись в одноименный файл в папке базы данных. В локальной версии наличие второго знака меньше ни на что не влияет. Если указан полный путь к log-файлу, то используется только имя файла. Если имя не задано, то запись выполняется в файл debug.log в папке базы данных. Запись в такой файл выполняется с добавлением времени и имени пользователя. - > – Принудительный вывод только в окно.
- % – Добавляет точное время перед выводимой информацией.
- < – Принудительный вывод только в файл.
После символа < в квадратных скобках может указываться строковое выражение – явно заданное имя log-файла:
[<имя файла>].
- сообщение
- Сообщение, выводимое в окне "Отладочные сообщения". Имеется возможность задать тип сообщения, и тем самым влиять на атрибуты выводимого текста. Это достигается заданием специального первого символа в сообщении:
- @ – сообщение выводится зеленым цветом;
- ? – предупреждение, выводится темно-красным цветом;
- ! – ошибка, выводится ярко-красным цветом.
Если указано значение типа число, дата или время, то происходит автоматическое пребразование в строку.
Если указано значение объектного типа, то выводится имя типа и список полей с соответствующими значениями. Для объекта "список" вместо полей выводятся строки списка и их общее количество. Если перед переменной списка указан символ "^", то строки списка "склеиваются". Этот режим вывода списка может использоваться, когда список применяется для хранения длинного текста с собственными переносами строк.
Специальный вид функции ОТЛАДКА используется для вывода элементов индексных переменных:
ФУНКЦИЯ ОТЛАДКА([<[<][имя_файла]] [>] &<префикс индексной переменной>)
Выводится общее количество элементов индексной переменной, а также для каждого элемента выводится пара: значение индекса и значение элемента. Этот вид функции ОТЛАДКА поддерживается только для режима компилятора.
Пример использования
ОТЛАДКА("Просто текст") // регулярный текст, выводится черным
ОТЛАДКА("@Баланс сошелся!") // сообщение, выводится зеленым
ОТЛАДКА("?На ваш страх и риск...")
// предупреждение, выводится темно-красным
ОТЛАДКА("!Ууупссс!") // ошибка, выводится ярко-красным
// отладочный вывод объекта "операция"
СОЗДАТЬ(оп, ТИП_ОПЕРАЦИЯ)
ОТЛАДКА(оп)
// ТИП_ОПЕРАЦИЯ
// дата = дд.мм.гггг - текущая дата
// документ =
// место = 1
// название =
// специальный отладочный вывод для объекта "список"
СОЗДАТЬ(сп, ТИП_СПИСОК)
сп.ДОБАВИТЬ("ля-ля")
сп.ДОБАВИТЬ("ку-ку")
ОТЛАДКА(сп)
// ТИП_СПИСОК
// ВСЕГО: 2
// ля-ля
// ку-ку
// отладочный вывод индексной переменной
сумма!1 = 123.45
сумма!2 = 678.90
ОТЛАДКА(&сумма)
// КОЛ_ЭЛЕМ: 2
// 1 -> 123.45
// 2 -> 678.9
Пример управления выводом
Функция ФАЙЛ_ОТЛАДКИ позволяет назначить глобальный log-файл для вывода отладочной информации. Для включения вывода отладочной информации в глобальный файл нужно установить опцию Вывод в файл отладки в группе опций Опции выполнения на закладке Документы пункта Установка/Настройки Главного меню. В примере вывод в файл foo.log и в окно отладки реально выполняется только при включении соответствующих опций в настройках.
ФАЙЛ_ОТЛАДКИ("foo.log") // назначаем глобальный файл отладки
ОТЛАДКА(<>"Привет1") // вывод в foo.log и в окно
ОТЛАДКА(%<"Привет2") // вывод только в foo.log с временем записи
ОТЛАДКА(>"Привет3") // вывод только в окно
ОТЛАДКА(<["bar.log"]"Привет4") // вывод только в bar.log
ОТЛАДКА(<["bar.log"]>"Привет5") // вывод в bar.log и в окно
ОТЛАДКА(<<["bar.log"]"Привет6") // вывод в bar.log в рабочей папке и в bar.log в папке базы
ОТЛАДКА(<<"Привет7") // вывод в foo.log в рабочей папке и в foo.log в папке базы
ФАЙЛ_ОТЛАДКИ("") // сбрасываем глобальный файл отладки
ОТЛАДКА(<<"Привет8") // вывод только в debug.log в папке базы