Малоизвестная хитрость определения модуля и номера строки при возникновении исключения (без запуска отладки и конфигуратора). Несколько очень удобных, но малоиспользуемых возможностей работы в конфигураторе




















В статье описана возможность получить место возникновения исключения при работе пользователей без участия конфигуратора. Подробно описаны еще некоторые очень полезные приемы при работе в отладке.

1) Получение конкретного места и номера строки возникновения исключения.

1.1) Через установку настроек отладки

Зачастую у пользователей возникают разные ошибки при работе с системой 1С:Предприятие. При этом они связываются с поддержкой, разработчиками и всё, что могут доложить об ошибке — это текст, который выводится у них на экране.

Например, при открытии документа «Реализация Товаров и услуг» возникает следующая ошибка:

Зачастую отловить быстро местонахождение такой ошибки не так просто. В типовых конфигурациях уже при открытии формы часто происходит вызов ряда процедур общего модуля и быстро понять место возникновения исключения не просто.

Многие разработчики также знают, что когда они из конфигуратора запускают отладочный режим в случае возникновения исключения система помимо кнопки Ок, выводит также и кнопку Подробно.

При нажатии на кнопку «Подробно…» можно получить информацию о точном месте возникновения ошибки.

Но, оказывается, существует недокументированная возможность получать полную информацию об ошибке и без конфигуратора или подключения из него отладочного режима.

Что для этого надо сделать?

Все очень просто. Необходимо сначала зайти через пункты Главное меню (пиктограмма со стрелкой в верхнем левом углу экрана) – Сервис –Параметры.

И в открывшемся окне значение параметра «Отладка в текущем сеансе:» установить в значение «Разрешена (протокол TCP/IP)».

Вот и всё.

Воспроизведем теперь ошибку и Вуаля!) Доступна кнопка "Подробно…"!

 

1.2) Получение данных об ошибке через форму информации для технической поддержки.

Спасибо Bonv, он подсказал еще способ, требующий даже еще меньше телодвижений.

После возникновения ошибки необходимо нажать пиктограмму "Показать информацию о программе", а затем в открывшемся окне — "Информация для технической поддержки".

В открывшемся окне будет также видна подробная информация о возникшем исключении.

 

 

Есть еще несколько удобных механизмов платформы, которыми не всё пользуются, а зря)

2) Переопределение значений переменных, свойств объектов, параметров прямо во время отладки.

Зачастую при отладке возникают ситуации, когда необходимо поменять значения локальных переменных или каких-то свойств для возможности выполнения каких-то действий, противоречащих текущей логике.

Начиная с 8.3.7 платформа 1С стала предоставлять такую возможность.

Например, у Вас существует документ, у которого в событии «При создании на сервере» выполняется масса всяких проверок, в которых выполняется контроль на наличие специальных ролей, каких-то доп. свойств у текущего пользователя, контроль закрытого периода.

В результате форма при открытии недоступна для изменения, а Вам необходимо срочно выполнить для проверки какие-то интерактивные действия. Как быть?

Запускаем отладчик и устанавливаем точку останову в самом конце процедуры ПриСозданииНаСервере

Срабатывает точка останова, теперь просмотрим значение свойства формы ТолькоПросмотр.

Для этого перейдем к окну вычисления выражения (Отладка – Вычислить выражение) или Shift + F9.

 

В открывшемся окне в поле выражения пропишем свойство формы ТолькоПросмотр и нажимаем Enter или Рассчитать.

Мы видим, что действительно свойство формы «ТолькоПросмотр» установлено в значение Истина. Мы можем это исправить.

Для этого нажимаем пиктограмму установки нового значения.

В открывшемся окне вводим Ложь и нажимаем кнопку «Установить».

Появляется сообщение об успешном изменении значения.

Вот и всё! Форма доступна для изменения.

Понятно, что далеко не всегда при недоступности формы будет работать этот алгоритм, где-то может быть установлено не свойство ТолькоПросмотр, а свойство Доступность (в Ложь). Возможно (хотя и маловероятно), что свойство будет установлено в событии ПриОткрытии.

Возможно переопределять и значение Параметров.

Например, в событии НачалоВыбора поля ввода подразделения присутствует следующий код:

Процедура ПодразделениеНачалоВыбора (Элемент, ДанныеВыбора, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

ОбработатьНачалоВыбораПодразделения();

КонецПроцедуры

В процедуре ОбработатьНачалоВыбораПодразделения реализован нестандартный выбор подразделения по ограниченному списку. В результате, существует возможность выбрать лишь ограниченный список подразделений, а нам в рамках проверки необходимо выбрать подразделение, не попадающее в этот список. Вопрос также решается очень легко. Ставим точку останова в конце процедуры и также через окно вычисления выражения устанавливаем значение параметра СтандартнаяОбработка в Истина.

Привел лишь несколько примеров. На самом деле очень часто эта возможность платформы позволяет выполнять самые разные действия в обход текущей логики и значительно упрощает тестирование или выполнение каких-то проверочных действий.

 

 

3) Просмотр временных таблиц запроса.

3.1) Возможности при использовании платформы 8.3.8 и выше.

Фирма 1С, начиная с версии 8.3.8,  предоставила нам ряд возможностей по просмотру содержимого временных таблиц при отладке. 

Рассмотрим два варианта:

1. Объявляется только запрос, менеджер временных таблиц не объявляется. Тогда для получения данных любой из временных таблиц запроса необходимо выполнить следующие действия:

Перейти к окну Выражения («Отладка» –> «Вычислить Выражение»… или Shift + F9).

В открывшемся окне в поле Выражение прописываем:

Запрос.ВыполнитьПакетСПромежуточнымиДанными()

И нажимаем «Рассчитать».

В результате в окне результата нам выведен результат выполнения метода ВыполнитьПакетСПромежуточнымиДанными()  – это массив последовательно расположенных результатов каждого запроса пакета из нашей переменной Запрос.

Для того, чтобы получить данные из результата запроса напомню необходимо использовать метод Выгрузить(). Таким образом, если, например, Вы хотите получить результат, содержащийся во второй по счету таблице из пакета, вы должны в окне вычисления выражения написать:

Запрос.ВыполнитьПакетСПромежуточнымиДанными()[1].Выгрузить()

В результате в окне результата вы получите таблицу значений с интересующими вас данными:

Можно увидеть её значения, для этого необходимо сначала перейти к строке в поле Результат, а затем либо нажать пиктограмму открытия значения либо нажав F2.

 

 

 

2. Следующая ситуация, когда таблицы у нас находятся внутри менеджера временных таблиц и нам необходимо увидеть их содержимое. Допустим менеджер временных таблиц находится в переменной МенеджерВТ (он может быть привязан и к запросу, в этом случае получаем его как Запрос.МенеджерВременныхТаблиц).

Можно увидеть список всех таблиц, хранящихся в менеджере. Для этого в окне Выражения надо прописать МенеджерВТ.Таблицы

В окне Результата отобразиться значение специального типа ВременныеТаблицыЗапроса.

Можно увидеть список временных таблиц перейдя к этой строке и нажав пиктограмму открытия значения либо F2.

А чтобы увидеть содержимое любое из временных таблиц необходимо от типа ВременнаяТаблицаЗапроса перейти к таблице значений, это можно сделать двумя способами: по индексу временной таблице и по имени:

 
МенеджерВТ.Таблицы[1].ПолучитьДанные().Выгрузить() //Обращение по индексу 1. Не забывайте что индексы ведут счет с 0, поэтому мы получим вторую по счету таблицу в пакете.
МенеджерВТ.Таблицы["ВТ_Подразделения"].ПолучитьДанные().Выгрузить() // Обращение по имени временной таблицы "ВТ_Подразделения"

 

3.2) Просмотр содержимого временных таблиц в версиях платформы ниже 8.3.8

Если же Вы работаете с версией платформы ниже 8.3.8, то не стоит сильно печалиться)

Можно реализовать альтернативный вариант в своей конфигурации.

Для этого необходимо в общем модуле создать следующую процедуру:


Функция СодержимоеВременнойТаблицы(МенеджерВременныхТаблиц, ИмяВременнойТаблицы) Экспорт

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ * ИЗ " + ИмяВременнойТаблицы;

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

Теперь также открыв окно вычисления выражения, можете прямо в поле Выражение обратиться к этой функции общего модуля.

Например, если общий модуль, в котором Вы прописали функцию СодержимоеВременнойТаблицы, называется Расчеты, переменная с менеджером временных таблиц — МенеджерВТ, а имя временной таблицы — ВТ_Сотрудники, то необходимо прописать следующее выражение:

Расчеты.СодержимоеВременнойТаблицы (МенеджерВТ, "ВТ_Сотрудники")

Либо если менеджер временных таблиц установлен для запроса с именем Запрос:

Расчеты.СодержимоеВременнойТаблицы (Запрос.МенеджерВременныхТаблиц, "ВТ_Сотрудники")

В результате Вы получите таблицу значений с содержимым временной таблицы!

 

 

Спасибо за уделенное время и внимание моей статье!

 Надеюсь, она Вам пришлась по душе и хоть чему-то да научила) Если статья оказалась полезной, не забываем плюсовать её)

49 Comments

  1. gradi

    Спасибо. Действительно полезные советы.

    Reply
  2. FesenkoA
    ВыполнитьПакетСПромежуточнымиДанными()
    Платформа

    Платформа 1С v8.x (все механизмы)

    напишите для каких платформ актуальны эти механизмы. Первый например тянется ее с 8.2, второй не помню, а последний на 8.3.9

    Reply
  3. login1020

    По поводу просмотра временных таблиц уже была статья

    https://infostart.ru/public/822287/

    Там много что дельного в комментариях по этому поводу:

    Обращение по индексу временной таблицы

    Запрос.МенеджерВременныхТаблиц.Таблицы[Индекс].ПолучитьДанные().Выгрузить()
    Обращение по имени временной таблицы

    Запрос.МенеджерВременныхТаблиц.Таблицы.Найти(<Имя временной таблицы>).ПолучитьДанные().Выгрузить() 
    Отладочная функция

    Функция ПросмотрВТ(Запрос, ИмяВременнойТаблицы) Экспорт
    
    ЗапросТМП = Новый Запрос(«ВЫБРАТЬ * ИЗ » + ИмяВременнойТаблицы);
    ЗапросТМП.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
    Возврат ЗапросТМП.Выполнить().Выгрузить();
    
    КонецФункции
    Reply
  4. Vladimir Litvinenko

    Строку кода, вызвавшую исключение, можно увидеть в журнале регистрации. Предложенный способ поможет в случае, если нет доступа к журналу регистрации (например он отключен) или если ошибка воспроизводится на компьютере, где установлен толстый клиент и можно сразу зайти в конфигуратор.

    Порекомендую еще очень хорошее видео по этой же теме. Много интересных приёмов продемонстрировано :

    https://www.youtube.com/watch?v=y098oG9XT98

    Reply
  5. SerVer1C

    Вы уверены, что 1с-хак №1 сработает при выключенной отладке на сервере ?

    Reply
  6. bonv

    (0) По п.1

    Просто идем в «О программе…» и далее «Информация для техподдержки», там и будет подробная информация об исключении

    Reply
  7. Darklight

    (6)Да, никаких проблем быть не должно. Данный пункт управляет только отладкой на клиенте!

    Reply
  8. Darklight

    Эх…. ждать нам встроенную в платформу фичу для быстрого обращения в тех поддержку — видимо вечно 🙁 А всего-то надо было сделать у корня конфигурации доп. свойство «ФормаОбращенияПоТехподдержку» и встроить в окно с системной ошибкой кнопку — «Техподдежка», открывающую данную форму (которая будет назначена в конфигурации для этих целей) и передающая туда объект ИнформацияОбОшибке.

    Конечно, в идеале, ещё и значение, на котором возникла ошибка (например при попытке вызвать метод у переменной примитивного типа), и значения объекта контекста, в котором произошла ошибка (например ЭтотОбъект — значение типа «ФормаКлиентскогоПриложения», а ещё ДополнительныеСвойстваОтладки — которые программист может заранее задать для некоторого контекста выполнения — поместив туда всё что угодно); а ещё круто было бы — если бы туда ещё и автоскриншот окна приложения передавался.

    Ну это в идеале.

    Всё — а далее уже конфигурация пусть сама определяет такую форму и её функционал (ну, опять-таки, в идеале, хорошо бы чтобы и в платформу была встроена хоть-примитивная форма обращения в техподдержку — позволяющая направить сериализованне вышеупомянутые данные (+ номер сеанса и имя пользователя, строку соединения ИБ и дату события) на указанный e-mail адрес, и сохраняющая их в Ж/Р для анализа; а ещё можно преднастроить для ней web-сервис, который она может взывать и передавать данные туда; но это так для галочки — тут, конечно, надо в конфигурации свою форму делать под себя; ну в типовых тоже должна быть своя форма — чтобы и во Фреше ей удобно можно было пользоваться, и самостоятельным компаниям с нетребовательной техподдержкой тоже её использовать для своего информирования).

    Вот это было бы круто! А главное — плёвое дело то, такой функционал замутить-то, разработчикам платформы (и далее разработчикам конфигураций). Но в компании 1С не всё для людей…. тем более для программистов делается! 🙁

    Reply
  9. Ibrogim

    (0) Красавчик !

    Reply
  10. Synoecium

    Новым для меня оказалась только настройка разрешения отладки для вывода подробностей об ошибке, раньше отладку в конфигураторе запускал, теперь буду знать. Спасибо за подсказку.

    Reply
  11. PoZiTiFFF

    (1)Рад, что статья оказалась полезной и помогла кому-то заполнить пробелы в знаниях.

    Reply
  12. PoZiTiFFF

    (11) Собственно главный акцент в статье и был сделан на эту часть. Это видно и по заголовку) Изначально даже планировалось и статью написать только на эту тему, но уже в процессе решил добавить описание еще двух довольно часто используемых мною весьма ценных плюшек, о которых многие всё-таки не знают.

    Reply
  13. PoZiTiFFF

    (3)Согласен. Но мне кажется в конфигураторе рабочей базы вообще всегда надо быть осторожным и не совершать непонятных или неосмысленных действий.

    Тем более меняя какие-то значения в системе, мы фактически нарушаем реализованный, прописанный в системе алгоритм, заложенную логику. Так что действительно — пользоваться можно, но осторожно) С умом.

    Reply
  14. PoZiTiFFF

    (2) Возможность работы с Таблицами менеджера временных таблиц и метод ВыполнитьПакетСПромежуточнымиДанными() появились в версии платформы 8.3.8

    Возможность динамически переопределять значения переменных — с версии 8.3.7

    Добавил эту информацию в статью. Более того, прописал как с помощью функции общего модуля можно получать содержимое временных таблиц в версиях платформы младше версии 8.3.8.

    Reply
  15. tormozit

    (3) Инспектор объектов отладчика не копирует объекты (работает с оригиналами). Поэтому все изменения свойств объектов сразу применяются. Поэтому некорректно писать «в некоторых случаях» (правильнее будет написать «всегда»).

    Reply
  16. PoZiTiFFF

    (7) bonv, спасибо за предложенный вариант. Добавил информацию в статью.

    Reply
  17. VictorRGB2

    (16) я имел в виду случай, когда человек забыл вернуть обратно исходное значение, но да, вы правы, выразился не точно

    Reply
  18. Rustig

    зачастую пользователи клиента звонят, говорят об ошибке, при подключении ошибка не воспроизводится. теперь можно просить их высылать информацию для технической поддержки из окна «О программе». Испытаю данный способ! Возьму на вооружение.

    Reply
  19. Rustig

    (9) а если ошибка в собственных доработках возникнет? то есть не в типовом функционале.

    а если ошибка не в алгоритмах, а кривых данных?

    я думаю, разработчики типовых решений и платформы защитили себя от подобного спама, просто не реализовав вашу идею. 😉

    Reply
  20. Darklight

    (20)Не понимаю сути претензий! Причём здесь собственные алгоритмы и защита разработчиков 1С?

    Я говорю об универсальном решении обращения в техподдержку. А уж кто оказывает её — такому решению должно быть побарабану — что будет настроено туда и будет отправлять! Я даже предложил так, чтобы в самих конфигурациях можно было бы (и нужно было бы) свою форму для обращения в техподдержку подключать (где уже можно было реализовать любые «извращения»; кстати, как вариант — иметь возмоджность переопределить форму из конфигурации, формой из внешней обработки — но это уже тонкости конфигурирования самой формы, а не платформы). А платформенная форма — просто могла бы брать данные настроек из общего ХранилищаНастроек чтобы определить e-mail адрес по умолчанию (куда отправлять, которые пользователь мог бы изменить), параметры доступа к почтовому аккаунту для отправки (или, как альтернативный, вариант создавать письмо через почтовый клиент ОС по умолчанию), web-сервис для передачи данных в специальное автоматзированное ПО (любое это к решению не относится), и телефон техподдержки. Это всё (или часть) можно было бы указать при настройке ИБ (да ещё и с разделителями данных — для фреша): получателем будет либо своя IT-служба, либо поддержка франча (в т.ч. бухофон, или как он там сейчас называется), либо поддержка сопровождения фреш-решения в облаке. Но никак не сама компания 1С. Туда уже информация об ошибке может быть переслана вышеуказанными получателями(службами), по существующие и сейчас схеме обращения регистрации ошибок платформы

    Reply
  21. echo77

    (21) Статьи заостряют внимание других участниках сообщества на теме. Кто-то уже знает. Кому-то эта информация попадется на глаза и будет полезна.

    Reply
  22. Rustig

    (22) я без претензий 🙂

    Reply
  23. herfis

    (5)

    Строку кода, вызвавшую исключение, можно увидеть в журнале регистрации.

    Не всегда, к сожалению. Правда, не уверен что в этих случаях спасут и предложенные методы. Буду посмотреть.

    Reply
  24. Darklight

    (24)Ну, надеюсь теперь ещё и с лучшим пониманием того, чего мне так хочется 😉 а хочется мне чтобы этого хотелось подавляющему числу пользователей платформы 1С Предприятие 8, и уж тем более хотелось её архитекторам!

    Reply
  25. AlX0id

    (21)

    Надо пойти запостить лафх*йак — как посмотреть, какой код выполняется при открытии формы %) чую, нарублю звезд выше крыши

    Reply
  26. PoZiTiFFF

    (21)


    Если автор не умеет пользоваться отладчиком или не в курсе как запускать сеанс с отладкой (а 1С этому учит и полно этого в сети), то наверно автору нужно еще поучиться самому

    Вы статью вообще читали?

    Причем здесь пользоваться отладчиком, при чем здесь запуск сеанса с отладкой?

    Статья учит как получить моментально полную информацию об ошибке от пользователей без запуска конфигуратора, без обращения к журналу регистрации. И это в некоторых случаях действительно очень помогает.

    Иногда лучше промолчать, чем сказать глупость.

    Reply
  27. PoZiTiFFF

    (29)

    Обычный программист без опыта и то должен уметь находить ошибки и знать как их получать на клиенте и в отладчике конфигуратора.

    Это в принципе его работа!

    Программист — это человек, способный писать программы для решения различных задач.

    Уметь находить ошибки — это не далеко его работа в принципе.

    Если это в принципе Ваша работа, как программиста, то мне Вас искренне жаль)

    Посмотрел, а Вы тут всем решили писать гневные отзывы на их никчемные статьи?))

    Это очень забавно звучит от человека, за 4 года на сайте, не написавшего ни единой статьи, не выложившего ни единой разработки.

    Видимо знаний хватает только чтобы засорять темы.

    Ну и про девочек в песочнице Вы тоже я смотрю всем пишите?)

    Настолько небогатый словарный запас? Ну придумайте на досуге еще хоть что-нибудь поинтереснее.

    Больше вести с Вами диалог не вижу смысла, в связи с чем дальнейшие Ваши сообщения буду игнорировать. Удачи!

    Reply
  28. PerlAmutor

    Плохо, что в платформе нет расширенной ошибки с некоторым уровнем вложенности стека. Вот что мне дает информация о том, что ошибка возникла в общем модуле БСП на строке номер такая-то и функция ЗначениеРеквизитаОбъекта() ? Да эта функция вызывается из огромного числа мест, мне важно знать кто её вызвал, а не то, что она не справилась с поставленной задачей по причине косячного значения переданного параметра.

    Reply
  29. fzt
    2) Переопределение значений переменных, свойств объектов, параметров прямо во время отладки.

    Мне удобней так (сразу оговоримся что я работаю почти 100% времени с переписанными конфигами).

    Где-то в общем модуле создать функцию типа:

    Функция П(А,Б) Экспорт
    А = Б;
    Возврат А;
    КонецФункции;

    В модуле допустим «О» — Отладочный

    Тогда изменение значений можно делать быстрее, быстро набрал в строке

    О.П(Отказ,Ложь)

    и вся недолга.

    Набрать проще сразу в редакторе кода и нажать Shift +F9, если строка окажется годной то она там и останется, после отладки убрать вызовы или regexp`ом заменить. Если объект не снят с поддержки то сперва Shift+F9 потом замена по рассчитать.

    Действительно быстрее и никаких лишних телодвижений, только горячие клавиши и никакой мышки.

    Ещё насколько помню отладчик не даст присвоить значение какой-то функции, а П() запросто.

    Reply
  30. Darklight

    (31)Согласен, данного функционала тоже не хватает!

    Reply
  31. Danilov

    Спасибо. Полезные советы.

    Reply
  32. Arikite

    Большое спасибо!

    Полезная статья

    Reply
  33. Torin57

    (29) Я тоже так раньше думал. Жизнь заставляет пересмотреть свои взгляды. Да, можно подходить к обучению со всей серьезностью, копаться в документации, читать описание изменений к платформе, пойти на очные курсы по 1С в Учебном центре №1. Это малоэффективно. Чтение таких статей для «чайников» — самый эффективный путь обучения для новичка. Проблема в том что без практики теория не дает должного понимания. Статья небольшая, ее можно применить на практике. Как раз то что нужно.

    Reply
  34. user_2010

    Спасибо, что поделились сокровенными знаниями! 🙂 Полезно очень!

    Reply
  35. AndreyKnife

    Полезная статья, добавил себе. Спасибо)

    Reply
  36. w.r.

    В управляемых формах есть аналог «Вычислить выражение…»?

    Reply
  37. Darklight

    (39)Вопрос не ясен. Функция «Вычислить» доступна в тонком клиенте.

    Reply
  38. w.r.

    (40) меня интересует вопрос — есть ли в режиме предприятия штатные механизмы, аналоличные тому, что описал автор. Про свой велосипед я знаю

    Reply
  39. Darklight

    (41)Нет, в управляемом приложении в режиме 1С Предприятие такого механизма нет. В неуправляемом — есть «Табло» но его функционал сильно ограничен. Но самостоятельно вполне можно сделать такой инструмент и встроить его в конфигурацию, чтобы он был доступен в режиме 1С Предприятие (на любых формах) и мало отличался от штатного.

    Reply
  40. w.r.

    (42) жалко, что нет. Было бы полезно

    Reply
  41. Darklight

    (43)Вот поэтому, тут уже выложили самописки:

    https://infostart.ru/public/933372/

    https://infostart.ru/public/78098/

    https://infostart.ru/public/15862/

    Если поискать — может ещё найдутся другие похожие решения

    Reply
  42. Synoecium

    (31) так это, в конфигураторе есть такая функция отладки, стек вызовов называется. Не пробовали её?

    Reply
  43. cartograph

    Спасибо.

    Reply
  44. PerlAmutor

    (45) Пробовал и активно использую. Я говорю об ошибках пользователей и тех ошибках, которые пишутся в ЖР Обычные пользователи под отладчиками не сидят, а чтобы угадать чего они там такого нажали надо быть победителем шоу битвы экстрасенсов и обладателем синей пятерни.

    Reply
  45. Synoecium

    (47) тогда я видимо неправильно вас понял, извиняюсь. Имеете в виду что-то вроде слепка стека вызовов в момент возникновения ошибки, который бы сохранялся в ЖР?

    Reply
  46. PerlAmutor

    (48) В момент возникновения исключения брать хотя бы 3 уровня стека вызова (напр. форма документа, общий модуль, общий модуль БСП). Скорее всего это затруднительно реализовать сохранив скорость работы рабочих процессов, так как на уровне C++ придется завести массив, в который перед каждым вызовом процедуры/функции/метода системы писать информацию о том откуда был произведен вызов. Но, например, при включенном режиме отладки (ключ -debug), такое сделать, наверное, можно было бы. Можно к этому ключу добавить параметр уровня отладки (0 — по умолчанию, стандартный режим, 1 — расширенный, 2 — экспертный и т.д.), тогда ключ мог бы задаваться как «-debug 1», «-debug 2», «-debug 3»

    Reply
  47. mvk4d

    (0) Еще можно прописать в параметрах запуска /debug -tcp или -http, чтобы сразу устанавливался режим разрешения отладки при запуске в режиме 1С предприятия и была кнопка «Подробно». Так еще удобней, нежели рассказывать каждый раз пользователям, как вытянуть информацию для технической поддержки.

    Reply
  48. logos

    (49) Возможно пригодится:

    В конструкции попытка-исключении можно использовать конструкцию «ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());»

    В ней собирается стек ошибки.

    Reply
  49. PerlAmutor

    (52) Может и пригодится, но в попытку/исключения всю конфигурацию не завернешь.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *