Руководство разработчика

Функция ОТЛАДКА

Функция ОТЛАДКА предназначена для вывода отладочной информации в специальное окно "Отладочные сообщения". Можно отключить вывод без удаления вызовов функций из исходного текста, сбросив опцию Вывод в окно отладки на закладке Документы пункта Установка/Настройки Главного меню. На компиляцию данная опция не влияет, а значение параметра оператора всегда вычисляется.

ФУНКЦИЯ ОТЛАДКА([<[<][имя_файла]] [>] *: сообщение)

Параметры

опции
  • < – Принудительный вывод только в файл. После символа < в квадратных скобках может указываться строковое выражение – явно заданное имя log-файла: [<имя файла>].

    Если указаны два знака меньше <<, то в сетевой версии выполняется также запись в одноименный файл в папке базы данных. В локальной версии наличие второго знака меньше ни на что не влияет. Если указан полный путь к log-файлу, то используется только имя файла. Если имя не задано, то запись выполняется в файл debug.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 в папке базы 

См. также: