Поиск в табличной части документа методом Найти()

1. susumi83 26.11.19 17:59 Сейчас в теме
Добрый день. Необходимо найти данные в табличной части документа с помощью метода Найти() по стандартному реквизиту "Номер строки".

В синтаксис-помощнике об этом методе написано следующее:

Синтаксис:
Найти(<Значение>, <Колонки>.

Возвращаемое значение:
Тип: Строка табличной части; Неопределено.
Строка, которая содержит искомое значение. Если значение не найдено, то возвращается значение Неопределено.

Описание:
Осуществляет поиск значения в указанных колонках табличной части.

При выполнении следующего кода, когда переменная Сч принимает значение 0, то метод возвращает ссылку на первую строку табличной части документа, хотя во всех остальных случаях отрабатывает согласно документации:


	Для Сч = -1 По 3 Цикл
	
		Строка = ТабличнаяЧастьДокумента.Найти(Сч, "НомерСтроки");
		
		Если Строка = Неопределено Тогда
			Сообщить("При Сч = " + Сч + ", строка не найдена");
		Иначе
			Сообщить("При Сч = " + Сч + ", найдена строка " + Строка.НомерСтроки);
		КонецЕсли;
		
	КонецЦикла;

Показать


Подскажите, пожалуйста, по каким именно правилам идет поиск в данной ситуации? Почему метод не возвращает "Неопределено", как заявлено в синтаксис помощнике?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
14. spacecraft 26.11.19 20:03 Сейчас в теме
(1) сумел повторить ошибку. Это явно ошибка в платформе. Можно отправить тикет.
При 0 ищет не только по колонке НомерСтроки, а и по всем колонкам.
Попробуйте заполнить первую строку полностью, вернет уже не первую строку, а вторую.

Точнее даже так: если не нашла в указанной колонке (любое число), продолжает искать в других.
dhurricane; susumi83; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 26.11.19 18:05 Сейчас в теме
(1)
Почему метод не возвращает "Неопределено", как заявлено в синтаксис помощнике?

Если что-то работает не так как написано, стоит написать на v8@1c.ru.

Но зачем вам вообще поиск по номеру строки понадобился? О_о
Fox-trot; +1 Ответить
5. susumi83 26.11.19 18:11 Сейчас в теме
(2) Если честно, никогда раньше не писал туда. И попробовав этот поиск на разных релизах платформы убедился, что он тянется ещё как минимум с 8.2, поэтому посчитал, что это я чего-то не знаю.
6. Sashares 35 26.11.19 18:32 Сейчас в теме
(5)Если вам понадобился поиск по номеру строки, есть мнение, что вы что-то делаете не так))
Потому что он действительно никому не нужен.
Возможно поэтому данному багу (если это баг) куча лет.

Да и в вашем случае - нет смысла искать по номеру строки, если номер строки не заполнен.
Можно для обхода проблемы, добавить такое условие.
7. susumi83 26.11.19 18:39 Сейчас в теме
(6) Я понял, что данный поиск не оптимален. Но хотел убедится, что расцениваю его как ошибку не один. Посмотрим, что ответят на v8@1c.ru
8. Sashares 35 26.11.19 18:45 Сейчас в теме
(7)Для информации:
При обращении на линию консультаций фирмы "1С" Вам потребуется следующая информация:

1) Регистрационный номер программы (для партнеров - код партнера, а также регистрационный номер NFR-версии, содержащей конфигурацию, по которой задается вопрос, либо регистрационный номер программы пользователя, для которого партнер получает информацию)
2) Название организации
3) Версия программного продукта, название конфигурации
4) ИНН

https://1c.ru/rus/support/hline.htm
9. susumi83 26.11.19 18:55 Сейчас в теме
(8) Да без проблем, но почитав https://infostart.ru/public/299145/ понял, что отвечают они крайне долго и не охотно.
Буду завтра на testplatform@1c.ru писать, подготовлю мат. часть только вряд ли им будет достаточно ссылки на сайт.
12. spacecraft 26.11.19 19:50 Сейчас в теме
(1) хорошо бы видеть полный текст кода.
У меня отрабатывает нормально. При 0 возвращает Неопределено. 8.3.15
14. spacecraft 26.11.19 20:03 Сейчас в теме
(1) сумел повторить ошибку. Это явно ошибка в платформе. Можно отправить тикет.
При 0 ищет не только по колонке НомерСтроки, а и по всем колонкам.
Попробуйте заполнить первую строку полностью, вернет уже не первую строку, а вторую.

Точнее даже так: если не нашла в указанной колонке (любое число), продолжает искать в других.
dhurricane; susumi83; +2 Ответить
15. susumi83 26.11.19 21:15 Сейчас в теме
(14) Подтверждаю, сам только что попробовал. Вы правы.
Прикрепленные файлы:
3. mar82 26.11.19 18:06 Сейчас в теме
а к чему этот изврат?
Почему просто не сделать Объект.ТабличнаяЧасть[НомерСтроки - 1]
4. susumi83 26.11.19 18:09 Сейчас в теме
(3)
ТабличнаяЧасть

Нужно именно по номеру строки и именно поиском, не суть зачем. Меня не устраивает сам факт, что метод не отрабатывает согласно документации.
bgazobeton; +1 Ответить
10. Fox-trot 162 26.11.19 18:56 Сейчас в теме
для особо упрямых: Получить + Попытка
если Попытка не устраивает, то мона с Количество() сравнить предварительно
11. susumi83 26.11.19 19:34 Сейчас в теме
(10) Спасибо, что предлагаете различные подходы. Однако, хочу заметить, что я не описывал проблему именно со стороны организации поиска. Задача стоит так: понять, отрабатывает ли метод Найти() с ошибкой или нет? Если нет, то почему?
13. Fox-trot 162 26.11.19 19:52 Сейчас в теме
(11) оберни код в глобальную функцию и все дела
Оставьте свое сообщение

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