|
Поиск в массиве | ☑ | ||
---|---|---|---|---|
0
ejikbeznojek
19.11.14
✎
13:35
|
Добрый день.
Помогите кто-нибудь разобраться. 1С 8.1 У меня есть некий массив ТекТ В отладке я наблюдаю следующее Выражение Значение Тип ТекТ Массив Массив ТекТПолучить(1).наименование "8033604079853" Строка ТекТ.Найти("8033604079853") Неопределенно Найти(Тект,"8033604079853") 0 Число Непонятно почему не ищет в массиве, ведь отладка показывает что искомая строка есть |
|||
1
YFedor
19.11.14
✎
13:37
|
(0) Отладка показывает, что искомой строки нет. Учи матчасть
|
|||
2
ejikbeznojek
19.11.14
✎
13:38
|
Как это?
Во 2й строчке же есть. ТекТПолучить(1).наименование "8033604079853" Строка |
|||
3
YFedor
19.11.14
✎
13:38
|
(2) Учи матчасть
|
|||
4
ejikbeznojek
19.11.14
✎
13:40
|
Подскажи хоть в каком разделе мат части учить))
|
|||
5
ДемонМаксвелла
19.11.14
✎
13:40
|
"8033604079853" это наименование элемента, а не сам элемент
|
|||
6
angro
19.11.14
✎
13:42
|
ТекТПолучить(1).наименование
откуда наименование? |
|||
7
Крошка Ру
19.11.14
✎
13:44
|
(0) Элемент и значение элемента - это разные вещи
|
|||
8
Рэйв
19.11.14
✎
13:44
|
(6)Да там ссылка на справочник лежит.
|
|||
9
ejikbeznojek
19.11.14
✎
13:44
|
Ну это название колонки, запроса из которого получился массив.
результат=запрос.Выполнить().Выгрузить(); ТекТ=результат.НайтиСтроки(отбор); Не пойму тогда как искать |
|||
10
Рэйв
19.11.14
✎
13:44
|
(0)Ищи в .Найти ссылку, а не строку наименования
|
|||
11
ejikbeznojek
19.11.14
✎
13:47
|
а мне нужна не конкретная ссылка, а ссылка у которой реквизит имеет определённоё значение
|
|||
12
Рэйв
19.11.14
✎
13:49
|
(11)С массивом только перебором.
|
|||
13
olegves
19.11.14
✎
13:49
|
массив (9) ???
а тут все думают, что результат запроса сохраняется в таблицу значений |
|||
14
Рэйв
19.11.14
✎
13:50
|
(13)Кстати да:-)
|
|||
15
hhhh
19.11.14
✎
13:50
|
(11) ну допустим, там 70 реквизитов у ссылки и 5 табличных частей тоже с реквизитами. Неужели думаете все 100 реквизитов программа будет просматривать в поисках вашей строчки?
|
|||
16
Рэйв
19.11.14
✎
13:52
|
(13)Если у теб это результат запроса. то чего бы тебе прям в запросе не найти что надо пока все поля доступны для написания условия?
|
|||
17
Рэйв
19.11.14
✎
13:55
|
(16)к (9)
|
|||
18
ejikbeznojek
19.11.14
✎
13:56
|
ну я ищу штрих-кода у товара, и штрих-код мне нужен только 1.
Штрих-кода у нас есть основные, дополнительные и временные. Я по возможности вывожу только основной, но его может и не быть. |
|||
19
ejikbeznojek
19.11.14
✎
13:58
|
Результат запроса это одно, а у меня отбор по результату запроса, а это массив))
|
|||
20
hhhh
19.11.14
✎
14:00
|
запрос в студию
|
|||
21
ejikbeznojek
19.11.14
✎
14:02
|
запрос=новый запрос;
запрос.Текст="ВЫБРАТЬ | ШтрихКоды.Наименование, | ШтрихКоды.Владелец, | ШтрихКоды.ВидШК |ИЗ | Справочник.ШтрихКоды КАК ШтрихКоды |ГДЕ | ШтрихКоды.Владелец В ИЕРАРХИИ(&Владелец) | И ШтрихКоды.ПометкаУдаления = ложь | И ШтрихКоды.ТипШК = &ТипШК"; запрос.УстановитьПараметр("Владелец",Номенклатура); запрос.УстановитьПараметр("ТипШК",Перечисления.ТипыШтрихКодов.Штука); результат=запрос.Выполнить().Выгрузить(); |
|||
22
pessok
19.11.14
✎
14:04
|
(13) если уж придираться, то таблица значений - не что иное, как многомерный массив, сиречь матрица :)
|
|||
23
Крошка Ру
19.11.14
✎
14:05
|
(22) Матрица - однородна, таблица - нет
|
|||
24
pessok
19.11.14
✎
14:05
|
(23) это если ЯП подразумевает строгую типизацию
|
|||
25
ejikbeznojek
19.11.14
✎
14:06
|
А как по человечески код постить?
А то он у меня часто кривым вставляется сюда |
|||
26
olegves
19.11.14
✎
14:06
|
(22) только синтаксис функции НАЙТИ у них разный...
|
|||
27
spero
19.11.14
✎
14:06
|
(21) А где ТекТ?
|
|||
28
ejikbeznojek
19.11.14
✎
14:07
|
[code]
ТЗ=новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Номенклатура"); ТЗ.Колонки.Добавить("ШтрихКод"); ТЗ.Колонки.Добавить("Цена"); запрос=новый запрос; запрос.Текст="ВЫБРАТЬ | ШтрихКоды.Наименование, | ШтрихКоды.Владелец, | ШтрихКоды.ВидШК |ИЗ | Справочник.ШтрихКоды КАК ШтрихКоды |ГДЕ | ШтрихКоды.Владелец В ИЕРАРХИИ(&Владелец) | И ШтрихКоды.ПометкаУдаления = ложь | И ШтрихКоды.ТипШК = &ТипШК"; запрос.УстановитьПараметр("Владелец",Номенклатура); запрос.УстановитьПараметр("ТипШК",Перечисления.ТипыШтрихКодов.Штука); результат=запрос.Выполнить().Выгрузить(); ТНом=результат.Скопировать(); ТНом.Свернуть("Владелец"); сч=0; для Каждого СтрТ из ТНом цикл сч=сч+1; Состояние("Получение штрих-кодов и цен "+сч+" из "+ТНом.Количество()); ОбработкаПрерыванияПользователя(); НСтрока=ТЗ.Добавить(); НСтрока.Номенклатура=СтрТ.Владелец; НСтрока.Цена=ПолучитьЦенуНоменклатуры(СтрТ.Владелец,,ТипЦен,Справочники.Валюты.НайтиПоКоду("810"),1); отбор=новый Структура; отбор.Вставить("Владелец",СтрТ.Владелец); ТекТ=результат.НайтиСтроки(отбор); если ТекТ.Количество()=1 тогда НСтрока.ШтрихКод=ТекТ.Получить(0).Наименование; иначе для жж=1 по 3 цикл если жж=1 тогда для каждого СтрМ из ТекТ цикл если СтрМ.ВидШК=Перечисления.ВидыШК.Основной Тогда НСтрока.ШтрихКод=СтрМ.Наименование; Прервать; КонецЕсли; КонецЦикла; ИначеЕсли жж=2 тогда для каждого СтрМ из ТекТ цикл если СтрМ.ВидШК=Перечисления.ВидыШК.Дополнительный Тогда НСтрока.ШтрихКод=СтрМ.Наименование; Прервать; КонецЕсли; КонецЦикла; ИначеЕсли жж=3 тогда для каждого СтрМ из ТекТ цикл если СтрМ.ВидШК=Перечисления.ВидыШК.Временный Тогда НСтрока.ШтрихКод=СтрМ.Наименование; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; [/code] |
|||
29
ejikbeznojek
19.11.14
✎
14:08
|
ну это я уже переделал на цикл, вместо найти
|
|||
30
olegves
19.11.14
✎
14:08
|
(0)Найти (Find)
Синтаксис: Найти(<Значение>, <Колонки>) Параметры: <Значение> (обязательный) Тип: Произвольный. Искомое значение. <Колонки> (необязательный) Тип: Строка. Список имен колонок, разделенных запятыми, по которым производится поиск. Если параметр не указан, поиск осуществляется по всей таблице значений. Значение по умолчанию: Пустая строка Возвращаемое значение: Тип: СтрокаТаблицыЗначений, Неопределено. Строка, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено. Описание: Осуществляет поиск значения в указанных колонках таблицы значений. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Метод эффективно использовать для поиска уникальных значений. |
|||
31
pessok
19.11.14
✎
14:08
|
это код 1С |
|||
32
pessok
19.11.14
✎
14:09
|
(31) к (25)
|
|||
33
pessok
19.11.14
✎
14:09
|
короче не code а 1С
|
|||
34
ДемонМаксвелла
19.11.14
✎
14:10
|
добавь колонку Наименование в ТЗ и ищи по ней
|
|||
35
spero
19.11.14
✎
14:10
|
(28) ТекТ - массив строк таблицы, а не массив строк.
|
|||
36
ejikbeznojek
19.11.14
✎
14:12
|
Какой-то у меня быдло код получился, впрочем как и обычно 8(((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |