Не ищет "НайтиЗначение" в ТЗ.

Форум 1С: Одинэс.Ру

Найти!

Не ищет "НайтиЗначение" в ТЗ.

London
18.05.2009 - 13:45
ТЗСпр = СоздатьОбъект("ТаблицаЗначений");
ТЗСпр.НоваяКолонка("Сотрудник","Строка",50);
...
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Список = глРазложить(ТЗ._1);
ФИО = Формат(Список.ПолучитьЗначение(2),"С50");
Если ТЗСпр.НайтиЗначение(ФИО,,"Сотрудник") > 0 Тогда
Сообщить ("Найден");
КонецЕсли;
КонецЦикла;
------------------
Не находит в ТЗСпр сотрудника, хотя он точно есть. Подскажите, что еще можно придумать. Спасибо.
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
24.11.2024 - 02:11
Смотри также:
ОС приобретено за счет целевых средств, как начислять износ, а не аммортизацию.
вопрос по обмену
Возможно ли программно вывести набор прав для каждого пользователя?

Re: Не ищет "НайтиЗначение" в ТЗ.

ANik
1 - 18.05.2009 - 13:51
Как-то напарывался (точно не помню), что второй параметр (№ Строки) нужен и обязательно предварительно занулить. Попробуй - можето, оно

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
2 - 18.05.2009 - 13:54
(0) Что за бред?

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
3 - 18.05.2009 - 13:54
Самый главный бред здесь: НайтиЗначение(ФИО,,"Сотрудник")

Re: Не ищет "НайтиЗначение" в ТЗ.

London
4 - 18.05.2009 - 14:03
victuan: мне нужно в ТЗСпр найти сотрудников из ТЗ. И там и там Строка, количество символов 50. Почему бред, подскажите.
 
ANik: добавил
Поз=0;
Если ТЗСпр.НайтиЗначение(ФИО,Поз,"Сотрудник") > 0 Тогда
 
так же не находит.

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
5 - 18.05.2009 - 14:06
Бред еще здесь Список = глРазложить(ТЗ._1);

Интересные темы

odines.ru
24.11.2024 - 02:11
Смотри также:
В одной базе разный результат одного кода на разных движках 25 и 27
ЗиК 285 произвольная доплата
Модуль на ровном месте стал выдавать ошибку: "Переменная не определена (СуммТаблицаПроизводствРасходов)"

Re: Не ищет "НайтиЗначение" в ТЗ.

ANik
6 - 18.05.2009 - 14:06
Тогда смотри - как заполнял таблицы. Если одинаковыми данными - должно работать. Ищи ошибку в заполнении.

Re: Не ищет "НайтиЗначение" в ТЗ.

ANik
7 - 18.05.2009 - 14:07
(5) Другие слова знаете? Или Вы зашли в ветку с целью не помочь, а самоутвердиться?

Re: Не ищет "НайтиЗначение" в ТЗ.

КвазиСпец
8 - 18.05.2009 - 14:08
Кол="Сотрудник";
Если ТЗСпр.НайтиЗначение(ФИО,Поз,Кол)> 0 Тогда

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
9 - 18.05.2009 - 14:10
(7) Вообще-то, я пытаюсь помочь. Или я должен за автора написать код?
Типа так:
ТЗСпр = СоздатьОбъект("ТаблицаЗначений");
ТЗСпр.НоваяКолонка("Сотрудник","Строка",50);
...
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Список = глРазложить(ТЗ._1);
ФИО = Формат(Список.ПолучитьЗначение(2),"С50");
сообщить(ФИО); //!!!
Поз=0;
Если ТЗСпр.НайтиЗначение(ФИО,Поз,"Сотрудник") > 0 Тогда
Сообщить ("Найден");
КонецЕсли;
КонецЦикла;

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
10 - 18.05.2009 - 14:11
А вообще, почему в этом куске кода
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
 
должен выполниться цикл, ведь ТЗ пустая?

Re: Не ищет "НайтиЗначение" в ТЗ.

ANik
11 - 18.05.2009 - 14:15
(9) Я извиняюсь за резкость.
(0) Автор - victuan прав хотя бы в том, что по приведенному куску кода непонятна методика заполнения таблиц. Кстати, у Вас в коде сразу после
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Идет строка
ТЗ.ВыбратьСтроки();
И почему мы должны гадать: забыли Вы заполнить ТЗ или просто скопипастили нам несколько строк в произвольном порядке в порядке издевательства над нами?

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
12 - 18.05.2009 - 14:17
(10) vs (11). Ну вот, мы сказали одно и то же, но разными словами ;))

Re: Не ищет "НайтиЗначение" в ТЗ.

ANik
13 - 18.05.2009 - 14:22
(12) Тем не менее согласитесь, что когда на вопрос "почему этот код не работает" отвечают "потому что это бред" ... В общем-то ответ верный, но так можно отвечать на любой подобный вопрос. И даже не зная 1С :)

Re: Не ищет "НайтиЗначение" в ТЗ.

victuan
14 - 18.05.2009 - 14:27
(13) Это была прелюдия ;)). Разминающий пост, попытка сначала заставить задуматься автора, а потом начал разжевывать сам.

Re: Не ищет "НайтиЗначение" в ТЗ.

London
15 - 18.05.2009 - 14:28
Извиняюсь, конечно же ТЗ заполнена.
 
Текст = СоздатьОбъект("Текст");
СписокСЗ = СоздатьОбъект("СписокЗначений");
Текст.Открыть(СокрЛП(ПутьКФайлу) + "\" + "people.txt");
 
Для Ном=1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(Ном);
СписокСЗ.ДобавитьЗначение(Стр,);
КонецЦикла;
...
ТЗСпр = СоздатьОбъект("ТаблицаЗначений");
ТЗСпр.НоваяКолонка("Сотрудник","Строка",50);
...
ТЗ = СоздатьОбъект("ТаблицаЗначений");
СписокСЗ.Выгрузить(ТЗ,,);
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Список = глРазложить(ТЗ._1);
ФИО = Формат(Список.ПолучитьЗначение(2),"С50");
Если ТЗСпр.НайтиЗначение(ФИО,,"Сотрудник") > 0 Тогда
Сообщить ("Найден");
КонецЕсли;
КонецЦикла;
 
и еще регистры символов разные в таблицах, но я не думаю, что это причина.

Re: Не ищет "НайтиЗначение" в ТЗ.

London
16 - 18.05.2009 - 14:43
Всем спасибо, получилось. Действительно, регистры должны быть одинаковыми. Не знал этот момент.

Re: Не ищет "НайтиЗначение" в ТЗ.

VZ
17 - 18.05.2009 - 19:29
16-London > Регистронезависимость - это для инлексов токмо. И для методов, которые поиск осуществляют по индексным выражениям. Для всего остального - тупое байтовое сравнение. Учитывай :)
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Подскажите конфигурации по 7.7 Перенос данных »
© 2009 Форум 1С: Одинэс.Ру