|
НайтиСтроки() | ☑ | ||
---|---|---|---|---|
0
Tata001
20.01.12
✎
14:16
|
Не срабатывает метод найтиСтроки(). Подскажите алгоритм,пожалуйста.
Вот упрощённый вариант,того что я делаю ============ МассивПФР=Новый Массив; МассивПФР.Добавить("3350071 79"); ФильтрОтбора_ПоПФР=Новый Структура ; ФильтрОтбора_ПоПФР.Вставить("НомерПФР",МассивПФР); тз=Новый ТаблицаЗначений; тз.Колонки.Добавить("НомерПФР"); новаястрока=тз.Добавить(); новаястрока.номерПФР="3350071 79"; СтрокиФайла=тз.НайтиСтроки(ФильтрОтбора_ПоПФР); ============== строки не находит. |
|||
1
Рэйв
20.01.12
✎
14:18
|
ты странный.
Заносишь строку, а ищешь массив |
|||
2
Рэйв
20.01.12
✎
14:19
|
ФильтрОтбора_ПоПФР.Вставить("НомерПФР","3350071 79");
Так найдет |
|||
3
Tata001
20.01.12
✎
14:27
|
(1) в массиве же строка??
|
|||
4
Рэйв
20.01.12
✎
14:28
|
(3)Ну и что.Искать то будет массив, а не то что в нем
|
|||
5
Tata001
20.01.12
✎
14:34
|
(4) в дальнейшем будет вместо строки массив, т.е. список строк
|
|||
6
Рэйв
20.01.12
✎
14:38
|
ну вот как будет вдальнейшем массив в значении так и начнет находить
|
|||
7
Tata001
20.01.12
✎
14:39
|
(6) не поняла
|
|||
8
Рэйв
20.01.12
✎
14:41
|
Если будет
новаястрока.номерПФР=МассивПФР; Тогда найдет при ФильтрОтбора_ПоПФР.Вставить("НомерПФР",МассивПФР); Если будет Если будет новаястрока.номерПФР="3350071 79"; тогда надо делать ФильтрОтбора_ПоПФР.Вставить("НомерПФР","3350071 79"); чтобы нашло |
|||
9
Buster007
20.01.12
✎
14:42
|
для поиска с использованием В (список значений неважно каких) лучше использовать Запрос.
|
|||
10
vmv
20.01.12
✎
14:42
|
массив в запрос и порядок, легкие пути искать негоже
|
|||
11
Tata001
20.01.12
✎
14:46
|
(9) нет возможности использовать запрос....
|
|||
12
Fish
20.01.12
✎
14:47
|
(11) Почему?
|
|||
13
Tata001
20.01.12
✎
14:48
|
(12) потому что в таблице,в которой веду поиск,она заполнена из екселя
|
|||
14
Defender aka LINN
20.01.12
✎
14:49
|
(12) Опасается, что после смерти попадет в адЪ за такое.
|
|||
15
Tata001
20.01.12
✎
14:49
|
(12) потому что в таблице значений,в которой веду поиск,она заполнена из екселя.
|
|||
16
Defender aka LINN
20.01.12
✎
14:49
|
(13) Весомая причина, ага...
|
|||
17
Tata001
20.01.12
✎
14:49
|
(14) а что к таблице значений есть возможность выстроить запрос?
|
|||
18
Tata001
20.01.12
✎
14:53
|
(2) так ругается
|
|||
19
Рэйв
20.01.12
✎
14:53
|
(17)
ТЗ=Новый ТаблицаЗначений; ТЗ.Коллонки.Добавить("номерПФР",Новый ОписаниеТипов("Строка",50)); //-----------тут заполняем из эксель Запрос=Новый Запрос; Запрос.Текст=" Выбрать ТЗ.номерПФР Из &ТЗ КАК ТЗ ГДЕ ТЗ.номерПФР В (&МассивЗначений)"; Запрос.УстановитьПараметр("ТЗ",ТЗ); Запрос.УстановитьПараметр("МассивЗначений",МассивПФР); тРез=Запрос.Выполнить().Выгрузить(); Для Каждого Стр из тРез Цикл Сообщить("Найдено "+Стр.номерПФР); КонецЦикла; |
|||
20
Fish
20.01.12
✎
14:56
|
(19) Не так. Смотри: http://help1c.com/faq82/view/815.html
|
|||
21
Fish
20.01.12
✎
14:58
|
+(20) Хотя не пробовал :)))
|
|||
22
Рэйв
20.01.12
✎
15:01
|
(20)Все так:-)..Сто раз так делал.
|
|||
23
Alex S D
20.01.12
✎
15:04
|
(19) обычно на такое пишет "Содержимое объекта данных может быть выбрано только во временную таблицу". Странно что у тебя не так..
|
|||
24
Рэйв
20.01.12
✎
15:05
|
(23)Да, точно:-)...Я для временных таблиц такое делал:-) Ну значит надо Поместить и потом из нее выбрать:-)
|
|||
25
Tata001
20.01.12
✎
15:40
|
А объединение 2-х таблиц значений можно ?
|
|||
26
Рэйв
20.01.12
✎
15:42
|
(25)Можно.
|
|||
27
Tata001
20.01.12
✎
15:45
|
(26) "ВЫБРАТЬ
| ТЗН1.НомерПФР КАК НомерПФР, | ТЗН1.ПФР_НСЧ КАК ПФР_НСЧ, | ТЗН1.ПФР_УСЧ КАК ПФР_УСЧ, | ТЗН1.ИДПФР_ННЧ КАК ПФР_ННЧ, | ТЗН1.ПФР_УНЧ КАК ПФР_УНЧ, | ТЗН1.ПФР_Разница_СЧ КАК ПФР_Разница_СЧ, | ТЗН1.ПФР_Разница_НЧ КАК ПФР_Разница_НЧ, | ТЗН2.ФизЛицо КАК ФизЛицо, | ТЗН2.НачисленоСтраховая КАК НачисленоСтраховая, | ТЗН2.УплаченоСтраховая КАК УплаченоСтраховая, | ТЗН2.НачисленоНакопительная КАК НачисленоНакопительная, | ТЗН2.УплаченоНакопительная КАК УплаченоНакопительная |ИЗ | &ТЗН1 КАК ТЗН1 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &ТЗН2 КАК ТЗН2 | ПО ТЗН1.НомерПФР = ТЗН2.НомерПФР"; так ? |
|||
28
Buster007
20.01.12
✎
15:46
|
сначала все ТЗ надо поместить во временные таблицы, А потом уже делать с ними всё что угодно.
|
|||
29
Fish
20.01.12
✎
15:47
|
(27) Посмотри уже (20) Там всё написано :))
|
|||
30
Рэйв
20.01.12
✎
15:47
|
Выбрать
Т1.Чтото Чтото1 Поместить ВТ1 ИЗ &Т1 КАК Т1 ; Выбрать Т2.Чтото Чтото2 Поместить ВТ2 ИЗ &Т2 КАК Т2 ; Выбрать ВТ1.Что-то1 Из ВТ1 Внутреннее Соеденение ВТ2 По ВТ1.Чтото1=ВТ2.Чтото2 |
|||
31
Tata001
20.01.12
✎
15:49
|
не ругайте,просто такое вижу в первый раз....
|
|||
32
Sabbath
20.01.12
✎
15:51
|
Помещай таблицу запросом во временную и все будет ок. Вообще почаще вспоминай про временные таблицы в запросах
|
|||
33
Tata001
20.01.12
✎
15:57
|
проверьте ..правильно написала ?
Запрос = Новый Запрос; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; МассивПФР=Новый Массив; Для Каждого Строка_ТЗ_ф из Список_ФЛ цикл НомерПФР=ПреобразоватьНомерПФРДляПоиска(Строка_ТЗ_ф.Значение.СтраховойНомерПФР); МассивПФР.Добавить(НомерПФР); КонецЦикла; //1-ая таблица Запрос.Текст = "ВЫБРАТЬ * | |ПОМЕСТИТЬ ТаблицаИзФайла |ИЗ | &ДанныеФайла КАК Таб |где таб.номерПРФ в (&МассивПФР)"; Запрос.УстановитьПараметр("ДанныеФайла",ТЗ_ФАйл); Запрос.УстановитьПараметр("МассивПФР",МассивПФР); Результат = Запрос.Выполнить(); // 2-ая таблица Запрос.Текст = "ВЫБРАТЬ * | |ПОМЕСТИТЬ ТаблицаРасчета |ИЗ | &ДанныеТаблицыРасчета КАК ТаблицаРасчета"; Запрос.УстановитьПараметр("ДанныеТаблицыРасчета",ТаблицаРасчет); Результат = Запрос.Выполнить(); //3-яя таблица. Объединение 2-х таблиц Запрос.Текст = "ВЫБРАТЬ * |ИЗ | ТаблицаИзФайла КАК ТаблицаИзФайла | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРасчета КАК ТаблицаРасчета | ПО ТаблицаИзФайла.НомерПФР = ТаблицаРасчета.НомерПФР"; ТЗ_Общая = Запрос.Выполнить().Выгрузить(); |
|||
34
Tata001
20.01.12
✎
16:04
|
//1-ая таблица
Запрос.Текст = "ВЫБРАТЬ | таб.номерПРФ |ПОМЕСТИТЬ ТаблицаИзФайла |ИЗ | &ДанныеФайла КАК Таб |где таб.номерПРФ в (&МассивПФР)"; Запрос.УстановитьПараметр("ДанныеФайла",ТЗ_ФАйл); Запрос.УстановитьПараметр("МассивПФР",МассивПФР); ============== выдаёт ошибку Поле не найдено "таб.номерПРФ" где таб.<<?>>номерПРФ в (&МассивПФР) |
|||
35
Tata001
20.01.12
✎
16:05
|
вижу ощибку
|
|||
36
Sabbath
20.01.12
✎
16:10
|
пРф - опечатка
|
|||
37
Sabbath
20.01.12
✎
16:12
|
вообще правильно остальное, но можно одним запросом, к примеру так:
ВЫБРАТЬ Таб.номерПФР ПОМЕСТИТЬ ТаблицаИзФайла ИЗ &ДанныеФайла КАК Таб ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаРасчета.НомерПФР ПОМЕСТИТЬ ТаблицаРасчета ИЗ &ДанныеТаблицыРасчета КАК ТаблицаРасчета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаИзФайла.номерПФР, ТаблицаРасчета.НомерПФР КАК НомерПФР1 ИЗ ТаблицаИзФайла КАК ТаблицаИзФайла ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРасчета КАК ТаблицаРасчета ПО ТаблицаИзФайла.номерПФР = ТаблицаРасчета.НомерПФР |
|||
38
Sabbath
20.01.12
✎
16:13
|
ну и тут можно вот так:
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; |
|||
39
Tata001
20.01.12
✎
16:39
|
Запрос.Текст = "ВЫБРАТЬ
| ФизЛицо.НомерПФР |ПОМЕСТИТЬ ТаблицаРасчета |ИЗ | &ДанныеТаблицыРасчета КАК ТаблицаРасчета"; == А можно ли достать реквизит значения из ТЗ ??? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |