![]() |
![]() |
![]() |
|
Поиск по массиву структур | ☑ | ||
---|---|---|---|---|
0
AnisaL
10.06.13
✎
10:50
|
Добрый день! Скажите пожалуйста, как правильно искать значение по массиву структур? Простым Найти ничего не находит. Вот структура:
СтруктураЗаписейРазговоров.Вставить("Channel", КлючСтруктуры); СтруктураЗаписейРазговоров.Вставить("Value", ЗаписьРазговора); МассивЗаписейРазговоров.Добавить(СтруктураЗаписейРазговоров); Как в ней найти значение Value по ключу Channel ? |
|||
1
Ненавижу 1С
гуру
10.06.13
✎
10:51
|
только циклом, а почему вам не использовать соответствие?
|
|||
2
AnisaL
10.06.13
✎
10:52
|
(1) а как использовать соотвествие?
|
|||
3
Wobland
10.06.13
✎
10:54
|
&НаСервере
Функция ПолучитьПодразделение_(КодСклада) соо=Новый Соответствие; соо.Вставить("Б0137", "00-000020"); соо.Вставить("Б0132", "00-000019"); соо.Вставить("Б0050", "00-000017"); Возврат Справочники.ПодразделенияОрганизаций.НайтиПоКоду(соо[КодСклада]); КонецФункции |
|||
4
AnisaL
10.06.13
✎
10:58
|
(3) что-то я не пойму, т.е. я должна знать значение Value?
|
|||
5
Ненавижу 1С
гуру
10.06.13
✎
11:00
|
(4) ты должна знать ключ (который называла Channel)
|
|||
6
Wobland
10.06.13
✎
11:01
|
Функция ПолучитьПодразделение_(Channel)
соо=Новый Соответствие; соо.Вставить("Б0137", "00-000020"); соо.Вставить("Б0132", "00-000019"); соо.Вставить("Б0050", "00-000017"); Возврат соо[Channel]; КонецФункции |
|||
7
Defender aka LINN
10.06.13
✎
11:01
|
(0) Использование таблиц значений в вашей религии запрещено?
|
|||
8
Wobland
10.06.13
✎
11:01
|
+(6) Функция ПолучитьValue(Channel)
|
|||
9
Defender aka LINN
10.06.13
✎
11:02
|
+(7) Зато поощряется использование идентификаторов на латинице
|
|||
10
Defender aka LINN
10.06.13
✎
11:02
|
ПолучитьValue... Это надо запомнить
|
|||
11
AnisaL
10.06.13
✎
11:02
|
(8) подожди, а откуда я возьму все эти значения, которые ты указал в своем соотвествии ?
|
|||
12
Ненавижу 1С
гуру
10.06.13
✎
11:05
|
(11) подожди, в чем задача вообще? ))
|
|||
13
Serginio1
10.06.13
✎
11:13
|
||||
14
Serginio1
10.06.13
✎
11:14
|
||||
15
AnisaL
10.06.13
✎
12:37
|
(13) а откуда эта функция берется
Если Вычислить(Условие) Тогда |
|||
16
AnisaL
10.06.13
✎
12:43
|
(15)+ Вообще можешь
Например Процедура СкопироватьПоУсловию(Тз,Условие) резулт=Тз.СкопироватьКолонки(); Для каждого Стр из Тз Цикл Если Вычислить(Условие) Тогда РезСтр=Резулт.Добавить(); ЗаполнитьЗначенияСвойств(РезСтр,стр); КонецЕсли; КонецЦЦикла возврат резулт КонецФункции |
|||
17
Serginio1
10.06.13
✎
13:30
|
(16) К сожалению в 1С нет ни лямбд ни делегатов
но есть функция вычислить, которая выполняет текст Функция НайтиПоУсловию(Тз,Условие,Список="",Модуль="") Массив новый массив; Для каждого Стр из Тз Цикл Если Вычислить(Условие) Тогда массив.Добавить(стр) КонецЕсли КонецЦикла; возврат Тз.Скопировать(массив) КонецФункции Рез=НайтиПоУсловию(тз,"стр.ФизЛицо=""Иванов"" или стр.ФизЛицо=""Сидоров"" или стр.ФизЛицо=""Петров"""); или Список=ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок("Иванов,Сидоров,Петров"); Рез=НайтиПоУсловию(тз,"Список.Найти(стр.ФизЛицо)<>Неопределено"); Или Рез=НайтиПоУсловию(тз,"Найти(Врег(стр.Значение),Врег(""акф""))>0"); Рез=НайтиПоУсловию(тз,"Модуль.ФункцияСравнения(Стр,Список)",ЭтотОбъект); То есть в модуле обработки должна быть функция Функция ФункцияСравнения(стр,МассивСтруктур) Экспорт |
|||
18
Serginio1
10.06.13
✎
13:32
|
17 В данном примере Вычислить обрабатывает строку с условием Условие учитывая переменные Стр,тз,Список,Модуль
|
|||
19
zladenuw
10.06.13
✎
13:34
|
(0)Структура (Structure)
Свойство (Property) Возвращаемое значение: Тип: Булево. Истина - ключ найден; Ложь - в противном случае. не оно ? |
|||
20
Serginio1
10.06.13
✎
13:34
|
Прошу прощения не в тему. Что то перегрелся.
|
|||
21
AnisaL
10.06.13
✎
14:10
|
(3) а если я буду использовать соответствие, то смогу найти значение Value?
|
|||
22
Рыжий Лис
10.06.13
✎
14:50
|
(21) ЗаписьРазговора = Соответствие.Получить(КлючСтруктуры);
|
|||
23
AnisaL
10.06.13
✎
14:53
|
(22) а массив тогда вообще не нужен что ли?
|
|||
24
Рыжий Лис
10.06.13
✎
14:59
|
(23) Соответствие - это замена массиву структур. И правильнее, и проще, и быстрее работает.
|
|||
25
AnisaL
10.06.13
✎
15:00
|
(24) Спасибо большое! Я уже сама это начала понимать
|
|||
26
AnisaL
10.06.13
✎
15:15
|
Спасибо всем), разобралась с этими соответствиями и структурами
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |