helpf.pro
Регистрация

v8: Не находит данные ТЗ.Найти()

mik_mihka
10.11.2014 15:59Прочитано: 6444

Здравствуйте, подскажите, что делаю не так?

получил две таблицы значений и пытаюсь в цикле найти значения одной таблице в другой, пытался через оба метода - Найти() и НайтиСтроки() оба метода выдают неопределенно. таблицу открываю-значение есть. Ниже оба кусочка кода и скрины структуры таблиц.

Код 1C v 8.х
   для каждого товар из Расходные цикл   
Код 1C v 8.х
   Отбор = новый Структура;   
Код 1C v 8.х
   Отбор.Вставить("Номенклатура",товар.Номенклатура.Наименование);   
Код 1C v 8.х
   Если ТекРеализация.Колонки.Найти(Отбор) тогда     
Код 1C v 8.х
   конецесли;   
Код 1C v 8.х
 КонецЦикла;    

Второй метод

Код 1C v 8.х
   Расходные = Запрос.Выполнить().Выгрузить();   
Код 1C v 8.х
   для каждого товар из Расходные цикл   
Код 1C v 8.х
   Если ТекРеализация.Найти(товар.Номенклатура.Наименование)= неопределено тогда   
Код 1C v 8.х
   конецесли;   
Код 1C v 8.х
 КонецЦикла;    

Таблица расходные:

Таблица ТекРеализация:

товар.Номенклатура.Наименование[/pre]

товар.Номенкл

Yandex
Возможно, вас также заинтересует
Реклама на портале
DJ_Serega
10.11.2014 17:37Ответ № 1

1. Оба метода не могут возвращать "Неопределено".

2. Найти(ЗначениеПоиска, "ИмяКолонки") - возвращает неопределено если не нашло

3. НайтиСтроки(Новый Структура("ИмяКолонки", Значение)) - всегда возвращает Массив. А вот сколько в массиве будет значений это уже другой вопрос.

4. Типы значений какие?

mik_mihka
10.11.2014 17:45Ответ № 2

строка

mik_mihka
10.11.2014 17:46Ответ № 3

в том то и дело, что не находит ничего, хотя в таблицах значения присутствуют.

DJ_Serega
10.11.2014 18:12Ответ № 4

(3) поиск выполняется по ТОЧНОМУ соответсвию. Пробелы играют роль. На счет регистра букв не знаю, но скорее всего тоже учитываются.

Не может оно не находить если значения есть ) 

mik_mihka
10.11.2014 18:32Ответ № 5

вот и я не пойму - почему не ищет. А строку с наименованием я с карточки товара беру, а она одна.

mik_mihka
10.11.2014 19:41Ответ № 6

интересно, что не так?

E_Migachev
10.11.2014 21:24Ответ № 7

попробуй Если ТекРеализация.Найти(СокрЛП(товар.Номенклатура.Наименование))= неопределено тогда

Wertuoz
11.11.2014 04:47Ответ № 8

Для эксперемента можно в цикле посмотеть и сравнить ... может и выясниться почему не находит... если как говорите стороки то это всегда весело )

Wertuoz
11.11.2014 04:54Ответ № 9

А зачем там колонка написана.. кок будто ты колонку ищешь.... должно быть просто вроде ТЗ.Найти()

DJ_Serega
11.11.2014 07:35Ответ № 10

Он сравнивает НЕПРАВИЛЬНО!

Имхо, нужно прочитать азы программирования или на курсы сходить.

1. ТекР.Колонки.Найти() - это поиск КОЛОНОК а не строк.

2. Что бы найти в строках я писал в (1), но не знал что все так плохо.

В дополнение к (1):

ТекР.Найти(ЗначениеПоиска, "ИмяКолонки") - возвращает неопределено если не нашло

ТекР.НайтиСтроки(Новый Структура("ИмяКолонки", Значение)) - всегда возвращает Массив. А вот сколько в массиве будет значений это уже другой вопрос.

3. В табличных частях (как сказано в (2)), в колонках Номенклатура тип строка. А значит обратиться к реквизиту номенклатуре НЕЛЬЗЯ.

Тоесть если тип значения ЭлементНоменклатуры будет СправочникСсылка, тогда можно написать ЭлементНоменклатуры.Наименование иначе ничего не получится.

DJ_Serega
11.11.2014 07:36Ответ № 11

(9) так отож. Даже не вроде, а так и должно быть )

mik_mihka
12.11.2014 07:14Ответ № 12

Колонки я пытался найти в ТЗ, сам текст выше без колонок. Нашел значение убрав "наименование", получается я строку с сылкой сравнивал

mik_mihka
12.11.2014 07:16Ответ № 13

Спасибо за помощь.

DJ_Serega
12.11.2014 12:03Ответ № 14

Ну тогда на правах никого закрываю тему )

mik_mihka
20.11.2014 07:16Ответ № 15
Вопрос закрыт!
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.