Поиск строки в таблице значений 1с 7.7

1. ARTFIRE 11.05.22 19:46 Сейчас в теме
Подскажите, создал таблицу значений, заполнил данными, которые вернул запрос.
Нужно найти в таблице значения строку с необходимыми данными.
Подскажите, как найти?
Таблица значений:
Таблица = СоздатьОбъект("ТаблицаЗначений");
Таблица.НоваяКолонка("СерийныйНомер", "Строка");
Таблица.НоваяКолонка("флГарантия", "Строка");
Таблица.НоваяКолонка("флУценка", "Строка");
Таблица.НоваяКолонка("флПерекупнойТовар", "Строка");
Таблица.НоваяКолонка("флВК", "Строка");
Таблица.НоваяКолонка("флНеликвид", "Строка");
Запрос1 = СоздатьОбъект("Запрос");
ТекстЗапроса1 = "
|СкладПартии = Регистр.ПартииТоваров.Склад;
|Партия = Регистр.ПартииТоваров.Партия;
|Остаток = Регистр.ПартииТоваров.Остаток;
|Функция ОстатокКонОст = КонОст(Остаток);
|Группировка Партия упорядочить по Партия.СерийныйНомер, Партия.флГарантия, Партия.флУценка, Партия.флПерекупнойТовар, Партия.флВК, Партия.флНеликвид без групп;
|Условие(СкладПартии = Параметры.Склад);";
Запрос1.Выполнить(ТекстЗапроса1);
Пока Запрос1.Группировка(1)=1 Цикл
	Таблица.НоваяСтрока();
	Таблица.СерийныйНомер 	  = Запрос1.Партия.СерийныйНомер;
	Таблица.флГарантия	 	  = Запрос1.Партия.флГарантия;
	Таблица.флУценка	 	  = Запрос1.Партия.флУценка;
	Таблица.флПерекупнойТовар = Запрос1.Партия.флПерекупнойТовар;
	Таблица.флВК 			  = Запрос1.Партия.флВК;
	Таблица.флНеликвид		  = Запрос1.Партия.флНеликвид;
КонецЦикла;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ishelper 11.05.22 20:17 Сейчас в теме
(1)
Нужно найти в таблице значения строку с необходимыми данными.
Подскажите, как найти?
При помощи Таблица.НайтиЗначение()

P.S. Какой вопрос - такой ответ.
3. uk09 11.05.22 20:19 Сейчас в теме
Добрый день!
Таблица.НайтиЗначение(Значение,НомерСтроки, НомерКолонки)

Функция вернет в НомерСтроки номер строки с найденным значением.
Вместо НомерКолонки можно использовать строковую переменную с названием колонки
4. ARTFIRE 11.05.22 20:46 Сейчас в теме
(3)Добрый. Я пробовал писать так:
Колонка = "СерийныйНомер";
СтрокаТаблицы = Таблица.НайтиЗначение(Запрос.Товар,Колонка,)

И все время не находит, хотя данные там точно есть.
5. ishelper 11.05.22 20:54 Сейчас в теме
(4)
И все время не находит, хотя данные там точно есть.
Такой командой - никогда не найдет, читайте Синтакс-помощник.

Или хотя бы статейки по теме: https://1c77progr.ru/article/osnovy-poisk-v-tablitse-znachenii
6. ARTFIRE 11.05.22 21:08 Сейчас в теме
(5) Пробовал.
Запрос.Товар - Строка.
Строка1 = 0;
СерийныйНомер - наименование колонки.	
Если Таблица.НайтиЗначение(Запрос.Товар,Строка1,"СерийныйНомер") = 1 Тогда
	Сообщить("Найдено");                            
КонецЕсли;

Не находит.
7. ishelper 11.05.22 21:20 Сейчас в теме
(6)
Пробовал.
Понимать написанный вами код - не пробовали?
Не находит.
Что не находит? У вас СерийныйНомер - это строка, а Запрос.Товар - что? Скорее всего, агрегатный тип (ссылка на товар). Разницу понимаете?

На пальцах: у Запрос.Товар есть Код, Наименование, СерийныйНомер и т.д. 1С сама должна догадаться - что именно из этого вы ищете?
user1619761; uk09; +2 Ответить
8. XAKEP 12.05.22 06:58 Сейчас в теме
(7)
1С сама должна догадаться

а могла бы :)
скоро (лет через *) будет 1С8:ОперационнаяСистема вместо 1с8:Система Учета.
9. CheBurator 3119 12.05.22 12:58 Сейчас в теме
Следует заметить, что строковые реквизиты, вытащенные через переменные запроса - тащатся вместе с хвостовыми пробелами (для "Наименование" справочника - надо проверять). А при нетипизированной длине строки в реквизите ТЗ при определении ТЗ - сильно зависит как эта ТЗ заполнена.
.
так что если в ТЗ лежит "Вася", а из запроса приходит "Вася " - то фиг вы что найдете, не включая голову.
10. ARTFIRE 12.05.22 15:15 Сейчас в теме
Спасибо большое всем, разобрался.
11. CheBurator 3119 12.05.22 18:56 Сейчас в теме
(10) Капец. Ты бы приличия ради уведомил в чем проблема была.
12. ishelper 12.05.22 19:30 Сейчас в теме
(11)
в чем проблема была
В чем, в чем... в голове, ясное дело.
13. CheBurator 3119 12.05.22 19:41 Сейчас в теме
(12) не, когда проблем в голове - это еще норм..
а вот если проблема в прокладке...
14. ARTFIRE 13.05.22 08:20 Сейчас в теме
(12) Не спорю, в голове.
Когда использовал Таблица.НайтиЗначение(Запрос.Товар,Строка1,"СерийныйНомер").
У меня колонка "СерийныйНомер" была строка.
Запрос.Товар тоже делал строкой, но все же не находило, хотя на пробелы проверял.
Итог сделал такой, что СерийныйНомер записывал как агрегатный тип (ссылкой) и Запрос.Товар тоже был агрегатный тип.
После этого все заработало.
С типами не разобрался сразу.
Оставьте свое сообщение

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