Заказать звонок

Поиск места корректировки в коде, 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. Вычисление выражения

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


Возврат к списку

Наши услуги и вакансии

Разработчики
на full-time
Программист 1С на 8 часов в день
от 1 600 руб/час
Позадачная
разработка 1С
Доработки и развитие любых решений на платформе 1С
Стоимость по оценке
Карьера в Neti

Вакансии разработчиков и консультантов 1С
З.П. от 100 000 рублей