![]() |
|
Поиск в многомерном массиве | ☑ | ||
---|---|---|---|---|
0
ildary
10.11.16
✎
15:02
|
Уважаемые специалисты, подскажите пожалуйста новичку - я правильно понимаю, что в двумерном массиве оператор Найти() - не работает? Если да, по получается проще всего выгрузить массив в ТЗ и там уже искать?
|
|||
1
Lexey_
10.11.16
✎
15:45
|
(0) Неправильно понимаешь, Найти() работает, только ищет по первому уровню.
А зачем эти извращения с двумерными массивами? |
|||
2
Жан Пердежон
10.11.16
✎
15:49
|
в 1 с нет многомерных массивов, в СП об этом прямо написано
|
|||
3
ildary
10.11.16
✎
15:51
|
(1) На сервере выполнил запрос, назад на клиент возвращаю результат через массив, в котором потом надо искать значения по ключевому полю.
(2) А что тогда получится в результате этой строки? ОбщегоНазначения.ТаблицаЗначенийВМассив( лЗапрос.Выполнить().Выгрузить() ); |
|||
4
Basilio
10.11.16
✎
15:53
|
(3) получится массив структур.
|
|||
5
Basilio
10.11.16
✎
15:54
|
Преобразует таблицу значений в массив.
// Может использоваться для передачи на клиента данных, полученных // на сервере в виде таблицы значений в том случае, если таблица // значений содержит только такие значения, которые могут // быть переданы на клиента. // // Полученный массив содержит структуры, каждая из которых повторяет // структуру колонок таблицы значений. // // Не рекомендуется использовать для преобразования таблиц значений // с большим количеством строк. // // Параметры: // ТаблицаЗначений - ТаблицаЗначений. // // Возвращаемое значение: // Массив // Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт Массив = Новый Массив(); СтруктураСтрокой = ""; НужнаЗапятая = Ложь; Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл Если НужнаЗапятая Тогда СтруктураСтрокой = СтруктураСтрокой + ","; КонецЕсли; СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя; НужнаЗапятая = Истина; КонецЦикла; Для Каждого Строка Из ТаблицаЗначений Цикл НоваяСтрока = Новый Структура(СтруктураСтрокой); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); Массив.Добавить(НоваяСтрока); КонецЦикла; Возврат Массив; КонецФункции |
|||
6
butterbean
10.11.16
✎
15:55
|
(4) в СП написано про массив массивов
|
|||
7
Basilio
10.11.16
✎
15:56
|
(6) в СП есть описание для "ОбщегоНазначения.ТаблицаЗначенийВМассив"??
|
|||
8
ildary
10.11.16
✎
15:58
|
(5) извините, а не могли бы Вы подсказать, а как потом правильно в массиве структур искать?
|
|||
9
Basilio
10.11.16
✎
15:59
|
а что искать то? значение конкретного поля или что? Циклом обходи массив и смотри в каждую структуру.
|
|||
10
Ёпрст
гуру
10.11.16
✎
16:00
|
(8) только перебором, в лучшем случае, или, если тз небольшая, то выгрузить её в строку и искать в ней, но это - для редкостных извращенцев
|
|||
11
ildary
10.11.16
✎
16:02
|
(9) Допустим у меня была ТЗ Номенклатура и Остаток. Я ее выгрузил в массив структур, как потом в этом массиве искать по номенклатуре?
(10) Я потому извращаюсь с поиском, что не хочу перебором искать. Начинаю склоняться к тому, что на сервере выгрузил ТЗ в массив, а на клиенте массив опять в ТЗ, где снова можно выполнять Найти(). |
|||
12
Жан Пердежон
10.11.16
✎
16:17
|
(11) на случай 2х колонок есть соответствие
|
|||
13
Basilio
10.11.16
✎
16:20
|
(11) ищи в цикле и не парься. ТЗ не доступна на ТонкомКлиенте.
|
|||
14
ildary
10.11.16
✎
16:27
|
(13) а через поле формы?
|
|||
15
Basilio
10.11.16
✎
16:28
|
(14) а смысл? Чем перебор не нравится?
|
|||
16
FIXXXL
10.11.16
✎
16:31
|
(11) а сразу на сервере найти и вернуть на клиента?
поискНаКлиенте можно же переписать? |
|||
17
ildary
10.11.16
✎
16:33
|
(15) прошу не смеяться, но перебор у меня ассоциируется с копанием лопатой, в то время как Найти() - применение комбайна (при этом я понимаю расход памяти).
(16) думал уже об этом, но для этого пока ума не хватает, делаю по старинке. |
|||
18
FIXXXL
10.11.16
✎
16:33
|
(16) + ну или отправляй на сервер сразу всю ТЧ и там ищи-присваивай
|
|||
19
FIXXXL
10.11.16
✎
16:34
|
(17) опиши задачку
|
|||
20
ildary
10.11.16
✎
16:41
|
(19) попросили сделать ацкую простыню по продажам (для анализа сторонней фирмой в ОЛАП-ах), в которой чего только нет, я как новичок побаиваюсь запросов-простынь, поэтому некоторые данные (типа остатков и резервов) получаю на сервере отдельно и потом отдельно выгружаю в Access. По уму надо все сделать одним запросом, вернуть его на клиент, не ломая голову с ТЗ, но я еще не дорос.
|
|||
21
Filin
10.11.16
✎
16:57
|
(20) Выгружай в Access на сервере.
|
|||
22
ildary
10.11.16
✎
17:07
|
(21) эта простая мысль не пришла мне в голову, надо будет попробовать.
|
|||
23
FIXXXL
10.11.16
✎
17:14
|
(22) ну если не получится Access на сервере, приделай ТЧ - копию данных, ее гоняй с клиента, заполняй на сервере
обратно она приедет заполненная |
|||
24
ildary
10.11.16
✎
17:16
|
(23) тоже вариант, спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |