click fraud detection

Поиск места корректировки в коде, 1С

Дата публикации: 11.08.2017

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

1. Нужно найти, откуда вызывается сообщение об ошибке.

Если в пользовательском режиме вышло длинное сообщение об ошибке, нужно выделить часть текста ошибки, желательно без подробностей ошибки (таких, как наименование элементов справочников, номер строки, название документа и т.п.), перейти в Конфигуратор и попробовать найти часть текста ошибки в модулях конфигурации, меню Правка – Глобальный поиск… (рис. 1):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1. Правка – Глобальный поиск

В открывшемся окне Глобальный поиск по текстам ввести часть текста ошибки и нажать Искать (рис. 2):

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Поиск текста ошибки

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

После нажатия Искать в окне Результаты поиска появится список мест, в которых найден заданный текст (рис. 3):

 

 

Рис. 3. Результаты поиска текста

Если два раза щелкнуть мышкой по выделенной найденной строке в окне Результаты поиска, то откроется модуль с выделенной найденной строкой (рис. 4):

 

Рис. 4. Найденный в модуле текст

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

Далее ставим точку останова на строке с ошибкой (двойным щелчком мышки на сером поле в строке, рис. 4, появится красный кружок). Затем запускаем отладку, если она еще не запущена: меню Отладка – Начать отладку (рис. 5):

 

Рис. 5. Запуск отладки

В отладке в режиме Предприятие выполняем действия, после которых появляется сообщение об ошибке, и в момент сообщения об ошибке срабатывает установленная ранее точка останова, у красного кружка появляется стрелка (рис. 6):

Рис. 6. Точка останова

Далее, чтобы понять, какая процедура вызвала вывод этого сообщения, переходим в меню Отладка – Стек вызовов (рис. 7):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7. Отладка – Стек вызовов

Открывается окно Стек вызовов, в котором видна вся последовательность событий, которая привела к выводу сообщения об ошибке (рис. 8):

Рис. 8. Стек вызовов

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

1. Нужно определить, когда и как происходит запись в регистр.

Для этого нужно поставить точку останова в процедуре ПередЗаписью или ПриЗаписи в Модуле набора записей нужного регистра. Если в Модуле набора записей регистра не определены эти процедуры, то можно:

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

2) поставить точку останова в процедуре, в которой предположительно выполняется запись в нужный регистр, и после срабатывания точки останова в Конфигураторе нажимать F11 для последовательного перехода по строкам кода до нужного места.

В процессе отладки можно смотреть значения переменных, выделяя переменную и нажимая Shift F9 (рис. 9) или меню Отладка – Вычислить выражение… (рис. 7), в поле Выражение можно написать любой выполняемый текст кода, например, ТабЗначений.Выгрузить(), где ТабЗначений – это переменная типа ТаблицаЗначений, которая существует в отлаживаемой процедуре.

Рис. 9. Вычисление выражения

Автор: Дина Королева.

 

Аренда разработчика 1С

Опытные специалисты, 1 400 руб./час

Подробнее

Другие записи в блоге

29.06.2018
Рассмотрим задачу, когда нужно вывести дополнительные реквизиты и сведения в общем списке элементов. Рассмотрим на примере конфигурации УТ 11, в справочник Номенклатура добавлен дополнительный...
29.06.2018
Рассмотрим задачу, когда нужно добавить дополнительные сведения. Рассмотрим на примере конфигурации УТ 11, добавим дополнительное сведение в элемент справочника Номенклатура.Открываем список...
29.06.2018
Рассмотрим задачу, когда нужно добавить дополнительные реквизиты. Рассмотрим на примере конфигурации УТ 11, добавим дополнительный реквизит в элемент справочника Номенклатура.Открываем список...

Подпишитесь на блог

Все интересные статьи нашего блога на Вашем почтовом ящике!

Подписка
 

Сервис звонка с сайта RedConnect