![]() |
![]() |
![]() |
|
Как получить не массив, а список значений | ☑ | ||
---|---|---|---|---|
0
Мисти
08.04.18
✎
21:36
|
Рез = Запрос.Выполнить().Выгрузить();
СписокЗаказов = Рез.ВыгрузитьКолонку("ЗаказПокупателя") - так массив получается понятно, что можно в Цикле записать, но, наверное, какая-то формула есть? |
|||
1
novichok79
08.04.18
✎
21:37
|
ОфигенныйСписок = Новый СписокЗначений;
ОфигенныйСписок.ЗагрузитьЗначения(Рез.ВыгрузитьКолонку("ЗаказПокупателя")); |
|||
2
Мисти
08.04.18
✎
21:45
|
Спасибо! Надо выучить, наконец!
А обратно? Из списка в массив? |
|||
3
zwei
08.04.18
✎
22:09
|
Это экзамен на знание нами синтакс-помощника?
|
|||
4
Мисти
08.04.18
✎
22:10
|
А я не знаю, как ему задать вопрос!
|
|||
5
zwei
08.04.18
✎
22:15
|
Это многое обьясняет.
На вкладке "Индекс" ввести "СписокЗначений". Перейти на описание объекта и прочитать про его методы. |
|||
6
Вася Теркин
09.04.18
✎
05:21
|
Список значений это и ест массив. только индексированный.
|
|||
7
Sserj
09.04.18
✎
05:35
|
(6) Ты уверен что в 1С список значений реализован именно на базе массива а не связанны список к примеру?
|
|||
8
VladZ
09.04.18
✎
05:56
|
(6) Список значений - это список значений. А массив - это массив.
|
|||
9
Провинциальный 1сник
09.04.18
✎
06:15
|
(7) Объект "массив" в 1с и массив например в си - две разные вещи. В 1с нет адресной арифметики, и говорить о том, как там внутри, не имеет смысла. В 1с и массив, и список значений - это коллекции с итератором. Просто в массиве хранятся непосредственно значения, а в списке дополнительно реализовано хранение представления элемента вместе со значением в специальной структуре.
|
|||
10
Sserj
09.04.18
✎
07:45
|
(9) Ну допустим в Java тоже нет адресной арифметики и тем не менее массив это именно выделенная область и тоже есть итератор. А рассуждать что там внутри 1С-ных списков очень даже имеет смысл и больше того полезно.
Достаточно вспомнить плюсы и минусы реализации списков на базе массивов и связанных списков. Понять что там на самом деле довольно просто - создать список на пару миллионов элементов и замерить скорость вставки в произвольную позицию и скорость получения по индексу. |
|||
11
Провинциальный 1сник
09.04.18
✎
07:57
|
(10) Вряд ли есть смысл в различной реализации. И массивы, и СЗ в 1с используются практически одинаково. Поэтому логично сделать один базовый класс у них.
|
|||
12
novichok79
09.04.18
✎
08:42
|
(2) если ЗагрузитьЗначения загружает, то логично, что ВыгрузитьЗначения выгружает...
|
|||
13
los_hooliganos
09.04.18
✎
08:53
|
(11) А кто является суперклассом у массива в джаве?
ЗЫ Вообще объявить массив классом это интересная затея. |
|||
14
Сияющий в темноте
09.04.18
✎
08:58
|
Массив классом,да так во многих языках делают.
Просто,список значений,структура и соответствие тоже ассоциированные массивы,и их можно рассматривать на базе класса,реализующего массив,таблица значений,кстати,тоже туда близка,не зря в управляемых формах ее в массив стуктур переводят,что от реализации не сильно далеко |
|||
15
los_hooliganos
09.04.18
✎
09:54
|
(14) Ради интереса посмотрел суперсуперкласс Листа в джаве.
Никакой массив там не используется. |
|||
16
tesseract
09.04.18
✎
10:29
|
(6) Список - ассоциативный массив.
(11) Логично делать один базовый интерфейс. Наследование - самая хреновая идея в ООП, кто рефакторил, тот понимает. (14)>>не зря в управляемых формах ее в массив стуктур переводят,что от реализации не сильно далеко Ее так переводят, чтобы память экономить на отображении в "ДанныеФормыКоллекция". (15) List - это связанный список, а не ассоциативный массив. |
|||
17
Вафель
09.04.18
✎
10:44
|
в 1с список на основе массива. типа ArrayList в java
|
|||
18
Sserj
09.04.18
✎
11:11
|
(15) Ты не там смотрел :)
Смотри исходники ArrayList, там массив внутри и если при добавлении размера массива не хватает создается новый в 2 раза больший и в него копируется предыдущий. Именно для этого есть конструктор ArrayList(int initialCapacity), который явно задает начальный размер массива. |
|||
19
Вафель
09.04.18
✎
11:17
|
Чисто Лист в джаве - это абстрактный класс и не имеет никакой реализации, только имена методов задает
|
|||
20
Sserj
09.04.18
✎
11:19
|
(19) Ну если быть уж совсем точным, то это интерфейс а не класс :)
|
|||
21
Вафель
09.04.18
✎
11:22
|
Для абстрактного класса есть AbstractList.
Ох уж эта жава |
|||
22
los_hooliganos
09.04.18
✎
11:39
|
(20) Интерфейс это один из видов класса.
|
|||
23
tesseract
09.04.18
✎
11:57
|
(22) С каких это пор? Интерфейс уже поля где-то получил?
|
|||
24
Провинциальный 1сник
09.04.18
✎
12:51
|
(13) Еще раз, не путайте понятие "массив" в универсальных ЯП и тип объекта "Массив" в 1с.
|
|||
25
los_hooliganos
09.04.18
✎
13:00
|
(23) Грешен :)
Интерфейс это действительно не класс. Тем не менее, можно заявить в нем новые переменные и константы. |
|||
26
Сияющий в темноте
09.04.18
✎
20:17
|
интерфейс,это класс только с виртуальными функциями,а по сути,это таблица функций,причем постоянная на время исполнения
|
|||
27
tesseract
10.04.18
✎
09:37
|
(26) Интерфейс это просто объявление функций. Он не поддерживает инкапсуляцию и не имеет своей области памяти - соотвественно никакой он не класс, даже абстрактный. Учите матчасть уже.
|
|||
28
Вася Теркин
10.04.18
✎
09:45
|
(9) Не правильно. В 1С нет понятия индексированного массива ибо одинэсники тупые. Есть неиндексированный массив (Собственно МАССИВ) и есть несколько видов индексированных массивов с фиксированным составом индекса (Структура, соответствие, список значений). У них индексацию менять нельзя, поэтому получилось создать специфичные методы для каждого класса (поиск, обращение по ключу индексации и прочее).
Но чтобы перетащить коллекцию из одного индексированного агрегата в другой нужно выгружать в неиндексированный Массив. Все Выгрузить-Загрузить работают через Массив. Т.е. чтобы из соответствия получить структуру придется сначала получить Массив. |
|||
29
Вася Теркин
10.04.18
✎
09:48
|
Массив как таковой рудиментарен, ибо по задумке все прикладные задачи должны решаться путем выбора между Соответствием, Структурой, Списком значений исходя из их методов.
А Массивом только конвертировать значения да параметры передавать в запросы. |
|||
30
zwei
10.04.18
✎
09:58
|
(28) > ибо одинэсники тупые
Нет, они жадные, Я настаиваю. Какой фиксированный состав индекса у списка значений? |
|||
31
Провинциальный 1сник
10.04.18
✎
13:06
|
(28) Фигню вы какую-то пишете. В массиве 1с есть обращение по индексу, а индекса по-вашему нет? Опять путаница между индексом массива и индексом с точки зрения теории БД.
|
|||
32
Провинциальный 1сник
10.04.18
✎
13:11
|
+(29) Список значений - это по сути массив структур, содержащих значение, представление, пометку, картинку и уникальный идентификатор.
|
|||
33
tesseract
10.04.18
✎
16:11
|
(32) Откуда такое предположение? Может это однонаправленный список, который в данном случаем будет работать значительно быстрее индекса?
У вас как с дискретной математикой то? |
|||
34
Вафель
10.04.18
✎
16:19
|
(32) так и ТЗ практически тоже самое
|
|||
35
Вафель
10.04.18
✎
16:19
|
(33) в 1С нет связного списка
|
|||
36
Вафель
10.04.18
✎
16:20
|
чтобы проверить что список - это массив, достаточно сдать много выборок по ингдексу из большого списка и сравнить с массивом
|
|||
37
tesseract
10.04.18
✎
16:42
|
(35) Он там не нужен.
(36) И выяснить насколько хорошо работает с разными типами данных виртуальная машина 1С? Я не думаю, что разница на глаз будет заметна. Тем более что никто не мешает 1С встроить вспомогательный массив с адресами узлов списка в любой объект "КлючЗначение". Разницу можно будет заметить только на массовой вставке / удалении. |
|||
38
Провинциальный 1сник
10.04.18
✎
16:52
|
(33) Предположение следует из бритвы Оккама. Если что-то выглядит как кошка, и ведет себя как кошка - скорее всего это кошка и есть. А не инопланетянин, принявший форму кошки.
|
|||
39
Провинциальный 1сник
10.04.18
✎
16:55
|
(35) В 1с на структурах можно сделать и список, и дерево, и всё что угодно.
|
|||
40
tesseract
10.04.18
✎
16:57
|
(38) Двусвязный список в любой книге имеет таки индекс, но это точно не массив.
https://learnc.info/adt/double_linked_list.html (39) И каким образом это относиться к массиву? |
|||
41
Провинциальный 1сник
10.04.18
✎
21:59
|
(40) Таким же образом, каким массив относится к связанному списку. Реальный способ хранения массива в памяти - внутренняя кухня 1с, которую они могут менять в каждом релизе. И это неинтересно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |