Пропускает строку в выборке

1. Metabos 29 13.09.20 23:11 Сейчас в теме
Коллеги, добрый день!
Происходит что то странное.
Получаю выборку из запроса, стандартным способом, делаю обход по ней:
РезультатЗапроса = Запрос.Выполнить();	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

В результате запроса есть 2 строки, я их вижу и когда количество строк получаю. И в выгрузке.
Но, когда я иду отладчиком у меня почему то проходит только один раз и сразу на вторую строку.
Причем пару раз было так, что сначала попадает на первую, а потом на вторую в одном же цикле обхода..
По теме из базы знаний
Найденные решения
16. FatPanzer 14.09.20 10:01 Сейчас в теме
(15)Конечно. Отладчик выполняет ровно то же самое действие, что и весь код. В результате данное действие выполняется два раза.
Уберите "Следующий()" из табло. Оставьте просто "ВыборкаДетальныхЗаписей.Сотрудник"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 13.09.20 23:56 Сейчас в теме
(1) переоткрыть конфигуратор, перезапустить предприятие, проверить результат ) может кеш, а может не обновленная бд
3. Metabos 29 14.09.20 00:13 Сейчас в теме
(2) Этот код он в регламентном задании, уже давно все обновили переобновили. Этому коду уже год наверное. Просто очень редко в выборке 2 записи, так и работало наверное раньше.
4. BackinSoda 14.09.20 01:03 Сейчас в теме
(3) тогда только текст запроса может как-то прояснить ситуацию
8. Metabos 29 14.09.20 09:24 Сейчас в теме
(4) Запрос банальнейший в 3 строки:
ВЫБРАТЬ
ДокументУвольнение.Сотрудник
ИЗ
Документ.УвольнениеСотрудника КАК ДокументУвольнение
ГДЕ
НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = &Дата";

Код почему то не вставляется.
Если я это все выгружаю в ТЗ, то все ок, отрабатывает 2 раза.
9. FatPanzer 14.09.20 09:28 Сейчас в теме
(8)
НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = &Дата


Я бы для гарантии использовал
НАЧАЛОПЕРИОДА(ДокументУвольнение.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)

Это так, заметка на полях.
12. Sashares 34 14.09.20 09:33 Сейчас в теме
(9)Вы еще предложите вместо
ДокументУвольнение.Сотрудник

использовать
ДокументУвольнение.Сотрудник.Ссылка.Ссылка

Ну так, для гарантии.
10. BackinSoda 14.09.20 09:29 Сейчас в теме
(8) можно всю процедуру целиком ? с параметрами, с циклом.
Sashares; +1 Ответить
5. webester 26 14.09.20 04:58 Сейчас в теме
В табло отладчика посмотрите, там скорее всего есть строка ВыборкаДетальныеЗаписи.Следующий() которая разумеется выполняется передвигая выборку
6. Metabos 29 14.09.20 09:10 Сейчас в теме
(5) Да, я сначала получаю выборку, потом ее двигаю, но если в запросе 2 строки, то по идее 2 раза должен цикл пробежать? Я даже просто выводила сообщение, выводится 1 раз!
Причем если выгружаю в ТЗ, то все ок, отрабатывает 2 раза.
7. FatPanzer 14.09.20 09:18 Сейчас в теме
(6) В самом цикле ничего такого нет, что сподвигло бы перескочить?
11. Metabos 29 14.09.20 09:33 Сейчас в теме
(7) Я вообще оставила 1 строку по выводу сообщения.
13. TimurD 6 14.09.20 09:37 Сейчас в теме
Может в табло отладки присутствует выражение "ВыборкаДетальныеЗаписи.Следующий()"? Так или иначе где-то в процессе указатель (курсор, кто как называет) двигается по набору (выборке) не тогда, когда должен.
FatPanzer; +1 Ответить
14. FatPanzer 14.09.20 09:41 Сейчас в теме
(13) Точно. Это сам отладчик же и передвигает, если нажать на кнопку "Рассчитать". Но это только при условии использования отладчика.
15. Metabos 29 14.09.20 09:53 Сейчас в теме
(13) В табло да, есть. А это может влиять?
16. FatPanzer 14.09.20 10:01 Сейчас в теме
(15)Конечно. Отладчик выполняет ровно то же самое действие, что и весь код. В результате данное действие выполняется два раза.
Уберите "Следующий()" из табло. Оставьте просто "ВыборкаДетальныхЗаписей.Сотрудник"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот