Просмотр в отладчике движений уже записанных в регистр из модуля документа

26.07.11

Разработка - Механизмы платформы 1С

Просмотр в отладчике движений уже записанных в регистр из модуля документа

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

1. Ну вообще то один раз придется поправить. Небходимо внести в глобальный модуль функцию:

Функция Ду(пКод, п1 = 0, п2 = 0, п3 = 0, п4 = 0)  Экспорт
 
 Перем Р;
 
 Выполнить(пКод);
 Возврат Р;

КонецФункции // Ду()

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

2. Обновляем конфигурацию, начинаем проведение документа в режиме отладки и пишем в Табло отладчика такую строку

 ду("набор=регистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); набор.отбор.регистратор.установить(П2); набор.прочитать();п1=набор",Отказ,этотОбъект.ссылка)

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

Записывать набор можно в любуй переменную доступную из модуля, просто чаще всего в типовых кусках присутствует именно переменная "Отказ", а проверка её осуществляется в конце модуля(не вызовет исключение раньше времени) поэтому чаще всего я использую именно её.

можно написать следующую строку в Табло отладчика

Отказ.количество()

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

P.S.  Кстати с помощь этой же функции можно прерывать длительные операции: записывая в переменную ссылочного типа недопустимое значениею,например:

 ду("П1=П2",ТаблицаЗначений,0)

переменная ТаблицаЗначений станет = 0 и при следующем обращении к полю или методу таблицы программа выдаст исключение и остановит выполнения модуля. 

На этом всё, если кому нибудь пригодится буду рад!

 

 

См. также

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    5619    dsdred    40    

91

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

23.06.2024    9938    bayselonarrend    21    

161

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    7159    dsdred    18    

81

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    23085    YA_418728146    28    

73

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    25309    SeiOkami    48    

136
Оставьте свое сообщение