Функция ОТЛАДКА
Функция ОТЛАДКА предназначена для вывода отладочной информации в специальное окно "Отладочные сообщения". Можно отключить вывод без удаления вызовов функций из исходного текста, сбросив опцию Вывод в окно отладки на закладке Документы пункта Установка/Настройки Главного меню. На компиляцию данная опция не влияет, а значение параметра оператора всегда вычисляется.
ФУНКЦИЯ ОТЛАДКА([<[<][имя_файла]] [>] *: сообщение)
Параметры
- опции
-
- < – Принудительный вывод только в файл.
После символа < в квадратных скобках может указываться строковое выражение – явно заданное имя 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 в папке базы