Вход | Регистрация


1С:Предприятие ::

Метки: 

Как получить не массив, а список значений

Я
   Мисти
 
08.04.18 - 21:36
Рез = Запрос.Выполнить().Выгрузить();
СписокЗаказов = Рез.ВыгрузитьКолонку("ЗаказПокупателя") - так массив получается
понятно, что можно в Цикле записать, но, наверное, какая-то формула есть?
 
 
   novichok79
 
1 - 08.04.18 - 21:37
ОфигенныйСписок = Новый СписокЗначений;
ОфигенныйСписок.ЗагрузитьЗначения(Рез.ВыгрузитьКолонку("ЗаказПокупателя"));
   Мисти
 
2 - 08.04.18 - 21:45
Спасибо! Надо выучить, наконец!
А обратно? Из списка в массив?
   zwei
 
3 - 08.04.18 - 22:09
Это экзамен на знание нами синтакс-помощника?
   Мисти
 
4 - 08.04.18 - 22:10
А я не знаю, как ему задать вопрос!
   zwei
 
5 - 08.04.18 - 22:15
Это многое обьясняет.

На вкладке "Индекс" ввести "СписокЗначений". Перейти на описание объекта и прочитать про его методы.
   Вася Теркин
 
6 - 09.04.18 - 05:21
Список значений это и ест массив. только индексированный.
   Sserj
 
7 - 09.04.18 - 05:35
(6) Ты уверен что в 1С список значений реализован именно на базе массива а не связанны список к примеру?
   VladZ
 
8 - 09.04.18 - 05:56
(6) Список значений - это список значений. А массив - это массив.
   Провинциальный 1сник
 
9 - 09.04.18 - 06:15
(7) Объект "массив" в 1с и массив например в си - две разные вещи. В 1с нет адресной арифметики, и говорить о том, как там внутри, не имеет смысла. В 1с и массив, и список значений - это коллекции с итератором. Просто в массиве хранятся непосредственно значения, а в списке дополнительно реализовано хранение представления элемента вместе со значением в специальной структуре.
   Sserj
 
10 - 09.04.18 - 07:45
(9) Ну допустим в Java тоже нет адресной арифметики и тем не менее массив это именно выделенная область и тоже есть итератор. А рассуждать что там внутри 1С-ных списков очень даже имеет смысл и больше того полезно.
Достаточно вспомнить плюсы и минусы реализации списков на базе массивов и связанных списков. Понять что там на самом деле довольно просто - создать список на пару миллионов элементов и замерить скорость вставки в произвольную позицию и скорость получения по индексу.
 
 Рекламное место пустует
   Провинциальный 1сник
 
11 - 09.04.18 - 07:57
(10) Вряд ли есть смысл в различной реализации. И массивы, и СЗ в 1с используются практически одинаково. Поэтому логично сделать один базовый класс у них.
   novichok79
 
12 - 09.04.18 - 08:42
(2) если ЗагрузитьЗначения загружает, то логично, что ВыгрузитьЗначения выгружает...
   los_hooliganos
 
13 - 09.04.18 - 08:53
(11) А кто является суперклассом у массива в джаве?

ЗЫ Вообще объявить массив классом это интересная затея.
   Сияющий в темноте
 
14 - 09.04.18 - 08:58
Массив классом,да так во многих языках делают.
Просто,список значений,структура и соответствие тоже ассоциированные массивы,и их можно рассматривать на базе класса,реализующего массив,таблица значений,кстати,тоже туда близка,не зря в управляемых формах ее в массив стуктур переводят,что от реализации не сильно далеко
   los_hooliganos
 
15 - 09.04.18 - 09:54
(14) Ради интереса посмотрел суперсуперкласс Листа в джаве.
Никакой массив там не используется.
   tesseract
 
16 - 09.04.18 - 10:29
(6) Список - ассоциативный массив.

(11) Логично делать один  базовый интерфейс.  Наследование - самая хреновая идея в ООП, кто рефакторил,  тот понимает.

(14)>>не зря в управляемых формах ее в массив стуктур переводят,что от реализации не сильно далеко

Ее так переводят, чтобы память экономить на отображении в "ДанныеФормыКоллекция".

(15) List - это связанный список, а не ассоциативный массив.
   Вафель
 
17 - 09.04.18 - 10:44
в 1с список на основе массива. типа ArrayList в java
   Sserj
 
18 - 09.04.18 - 11:11
(15) Ты не там смотрел :)
Смотри исходники ArrayList, там массив внутри и если при добавлении размера массива не хватает создается новый в 2 раза больший и в него копируется предыдущий. Именно для этого есть конструктор ArrayList​(int initialCapacity), который явно задает начальный размер массива.
   Вафель
 
19 - 09.04.18 - 11:17
Чисто Лист в джаве - это абстрактный класс и не имеет никакой реализации, только имена методов задает
   Sserj
 
20 - 09.04.18 - 11:19
(19) Ну если быть уж совсем точным, то это интерфейс а не класс :)
   Вафель
 
21 - 09.04.18 - 11:22
Для абстрактного класса есть AbstractList.
Ох уж эта жава
   los_hooliganos
 
22 - 09.04.18 - 11:39
(20) Интерфейс это один из видов класса.
   tesseract
 
23 - 09.04.18 - 11:57
(22) С каких это пор? Интерфейс уже поля где-то получил?
   Провинциальный 1сник
 
24 - 09.04.18 - 12:51
(13) Еще раз, не путайте понятие "массив" в универсальных ЯП и тип объекта "Массив" в 1с.
   los_hooliganos
 
25 - 09.04.18 - 13:00
(23) Грешен :)
Интерфейс это действительно не класс.
Тем не менее, можно заявить в нем новые переменные и константы.
   Сияющий в темноте
 
26 - 09.04.18 - 20:17
интерфейс,это класс только с виртуальными функциями,а по сути,это таблица функций,причем постоянная на время исполнения
   tesseract
 
27 - 10.04.18 - 09:37
(26) Интерфейс это просто объявление функций.  Он не поддерживает инкапсуляцию и не имеет своей области памяти - соотвественно никакой он не класс, даже абстрактный. Учите матчасть уже.
   Вася Теркин
 
28 - 10.04.18 - 09:45
(9) Не правильно. В 1С нет понятия индексированного массива ибо одинэсники тупые. Есть неиндексированный массив (Собственно МАССИВ)  и есть несколько видов индексированных массивов с фиксированным составом индекса (Структура, соответствие, список значений). У них индексацию менять нельзя, поэтому получилось создать специфичные методы для каждого класса (поиск, обращение по ключу индексации и прочее).
Но чтобы перетащить коллекцию из одного индексированного агрегата в другой нужно выгружать в неиндексированный Массив.
Все Выгрузить-Загрузить работают через Массив.
Т.е. чтобы из соответствия получить структуру придется сначала получить Массив.
   Вася Теркин
 
29 - 10.04.18 - 09:48
Массив как таковой рудиментарен, ибо по задумке все прикладные задачи должны решаться путем выбора между Соответствием, Структурой, Списком значений исходя из их методов.
А Массивом только конвертировать значения да параметры передавать в запросы.
   zwei
 
30 - 10.04.18 - 09:58
(28) > ибо одинэсники тупые
Нет, они жадные, Я настаиваю.

Какой фиксированный состав индекса у списка значений?
   Провинциальный 1сник
 
31 - 10.04.18 - 13:06
(28) Фигню вы какую-то пишете. В массиве 1с есть обращение по индексу, а индекса по-вашему нет? Опять путаница между индексом массива и индексом с точки зрения теории БД.
   Провинциальный 1сник
 
32 - 10.04.18 - 13:11
+(29) Список значений - это по сути массив структур, содержащих значение, представление, пометку, картинку и уникальный идентификатор.
   tesseract
 
33 - 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
чтобы проверить что список - это массив, достаточно сдать много выборок по ингдексу из большого списка и сравнить с массивом
   tesseract
 
37 - 10.04.18 - 16:42
(35) Он там не нужен.

(36) И выяснить насколько хорошо работает с разными типами данных виртуальная машина 1С? Я не думаю, что разница на глаз будет заметна.

Тем более что никто не мешает 1С встроить вспомогательный массив с адресами узлов списка в любой объект "КлючЗначение".  Разницу можно будет заметить только на массовой вставке / удалении.
   Провинциальный 1сник
 
38 - 10.04.18 - 16:52
(33) Предположение следует из бритвы Оккама. Если что-то выглядит как кошка, и ведет себя как кошка - скорее всего это кошка и есть. А не инопланетянин, принявший форму кошки.
   Провинциальный 1сник
 
39 - 10.04.18 - 16:55
(35) В 1с на структурах можно сделать и список, и дерево, и всё что угодно.
   tesseract
 
40 - 10.04.18 - 16:57
(38) Двусвязный список  в любой книге имеет таки индекс, но это точно не массив.

https://learnc.info/adt/double_linked_list.html

(39) И каким образом это относиться к массиву?
   Провинциальный 1сник
 
41 - 10.04.18 - 21:59
(40) Таким же образом, каким массив относится к связанному списку. Реальный способ хранения массива в памяти - внутренняя кухня 1с, которую они могут менять в каждом релизе. И это неинтересно.



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует