Имя: Пароль:
1C
1С v8
v8: Структура vs СписокЗначений
0 GomerSimpson
 
27.03.12
15:50
Подскажите зачем нужна Структура, если есть СписокЗначений.

Читаю СП, вижу что у СЗ больше возможностей - типа выгрузить, загрузить, сортировать.

Не пойму в каких случаях лучше использовать структуру и почему. Объясните плиз.
1 Ненавижу 1С
 
гуру
27.03.12
15:53
ходил на собеседование?
2 Ненавижу 1С
 
гуру
27.03.12
15:54
К значениям структуры удобно обращаться непосредственно по ключу:

Структура.МойКлюч = 125;
3 НикДляЗапросов
 
27.03.12
15:54
струкрута это не массив.
4 andrewks
 
27.03.12
15:55
зачем СЗ, если есть ТЗ? у ТЗ больше возможностей
5 Ненавижу 1С
 
гуру
27.03.12
15:55
(3) и даже не соответствие ))
6 ковер
 
27.03.12
15:55
(0) для написания удобочитаемого кода
7 Дикообразко
 
27.03.12
15:56
у структуры можно сразу список ключей задать при создании

Новый Структура("первый,второй,третий,четвертый")

в 77 это было доступно для СЗ, в 8ке нет...
так что СЗ видимо остался для совместимости от него пользы вообще никакой нет в 8ке,
рудимент
8 Smallrat
 
27.03.12
15:56
(0) Бери выше, у таблицы значений еще больше возможностей, непонятно зачем нужен список значений, если есть таблица.
9 mikecool
 
27.03.12
15:56
классный холивар
10 Smallrat
 
27.03.12
15:56
(4) вот жеж блин
11 Дикообразко
 
27.03.12
15:56
СписокЗначений действительно в 8ке не нужен
12 Feanor
 
27.03.12
15:56
открыть типовые конфы и поискать глобальным поиском "Структура" не предлагать?
13 Ненавижу 1С
 
гуру
27.03.12
15:57
СЗ это для диалогов, там списки у элементов формы
14 mikecool
 
27.03.12
15:57
(12) с чего решил, что типовые это аксиома?
15 Feanor
 
27.03.12
15:58
(11) у поля формы свойство "Список выбора" погляди какого типа
16 Jolly Roger
 
27.03.12
15:58
а удокумента еще больше возможностей, он еще в регистр писать может...
17 le_
 
27.03.12
15:58
(0) Зачем вообще все эти списки, соответствия, таблицы значений, если есть массивы? )
18 andrewks
 
27.03.12
15:58
вопрос поставим так:

а для чего вообще объекты? ведь всё и так прекрасно реализуется методами процедурного и модульного программирования?
19 Дикообразко
 
27.03.12
15:58
(15) можно было бы заменить на массив
20 Feanor
 
27.03.12
15:58
(14) а где я сказал, что это аксиома? ) всего лишь короткий путь
21 Feanor
 
27.03.12
15:59
(19) нет, подумай, почему)
22 Smallrat
 
27.03.12
15:59
(19) у массива нет представления значения и свойства пометка
23 Jolly Roger
 
27.03.12
16:00
(18) нафига вообще программировать? можно купить готовое...
24 H A D G E H O G s
 
27.03.12
16:02
Жесть какая то.

Массив и связный список - это вообще разные вещи.
25 H A D G E H O G s
 
27.03.12
16:02
Дикообразко жжет, не ожидал.
26 Deon
 
27.03.12
16:03
А Структура vs Соответствие был уже холивар?
27 Ненавижу 1С
 
гуру
27.03.12
16:03
(24) концептуально это все коллекции
28 andrewks
 
27.03.12
16:03
(23) заметь, ты вышел из плоскости программирования, а я нет. поэтому твой вопрос философский, а мой - практический
29 Feanor
 
27.03.12
16:03
(24) что ещё за "связанный список", батенька? это не из 1С9, случаем? ))
30 H A D G E H O G s
 
27.03.12
16:03
Хотя хер его 1С знает - че такое СписокЗначений - оболочка над массивом, либо связный список.
Если второе - почему нет методов Следующий() Предыдущий() и обращение по индексу.
31 andrewks
 
27.03.12
16:04
(29) это из универского курса. 1с до него ещё как до Антарктиды пешком
32 Jolly Roger
 
27.03.12
16:04
(28) резонно... но программирование не обязательно является самоцелью...
33 Дикообразко
 
27.03.12
16:05
(22) и дальше?
закони в массив структуру..
останется только итератор

(30) какой нахер связанный список если у него итератор есть?
34 H A D G E H O G s
 
27.03.12
16:05
(33) Итератор - через private метод Next() к примеру.
35 H A D G E H O G s
 
27.03.12
16:06
По индексу - точно так же.
36 andrewks
 
27.03.12
16:06
(27) массив подразумевает непрерывное расположение в памяти, коллекция лишь обязана содержать ссылки на другие элементы
37 Дикообразко
 
27.03.12
16:06
у СпискаЗначений в 8ке осталось значительно меньше функций нежели в 77,
так где в 77 использовался СЗ, теперь используется структура,
СЗ остался только для визуальных методов
38 Steel_Wheel
 
27.03.12
16:07
(22) Тогда не нужны массивы..... :)
39 Дикообразко
 
27.03.12
16:07
(34) сомневаюсь,
это было бы нелогично с точки зрения 1Сов
40 Ненавижу 1С
 
гуру
27.03.12
16:08
(36) это не концептуально
41 H A D G E H O G s
 
27.03.12
16:08
(39) <<это было бы нелогично с точки зрения 1Сов>>
Бугага.
42 H A D G E H O G s
 
27.03.12
16:10
Ладно, х с ним, со списком.

ТаблицаЗначений - тоже массив?
43 Дикообразко
 
27.03.12
16:10
(38) кстати, да
в 77 массивы были анахронизмом их почти не использовали,
в 8-ке же они стали чаще использоваться из за того, что часто встроенные методы возвращают их как результат, например НайтиСтроки

(41) смешно тебе...
я в первую неделю изучения 8ке, составлял экселевский файлик, где по горизонтали были названии колекций, а по вертикали были методы...
через три дня я понял, что 1С-ики наркоманы
44 andrewks
 
27.03.12
16:12
(40) что именно?
45 Feanor
 
27.03.12
16:13
(36) есть инфа, что массивы в 1С непрерывно располагаются в памяти?
46 H A D G E H O G s
 
27.03.12
16:13
Кстати, нет ничего проще проверить:

Создать 2 списка, размером под миллион записей и небольшой строкой-значением и удалить
1) 10 запись
2) Количество()-10 записей

Если время выполнения будет одинаковая - это Список, разная - Массив.
47 Ненавижу 1С
 
гуру
27.03.12
16:13
(44) "непрерывное расположение в памяти"
48 Feanor
 
27.03.12
16:14
(46) 99 к 1 что удалит очень быстро, но не проверял
49 Steel_Wheel
 
27.03.12
16:15
(43) В семерке, кажись, массивы -- это ТЗ с одной строкой...
50 Ненавижу 1С
 
гуру
27.03.12
16:16
(43) массивы 7.7 и массивы 8.х это совершенно разные массивы
51 andrewks
 
27.03.12
16:16
(45) мне наплевать, как они располагаются в памяти у 1С. почитай понятие индексного массива
53 ЧеловекДуши
 
27.03.12
16:17
Для передачи параметров удобней Структура.
У СпискаЗначений в 8-ке урезан функционал, проще использовать вообще Таблицу Значений.
54 Feanor
 
27.03.12
16:19
(51) хорошо, о Великий, ушел читать мануалы
55 Ненавижу 1С
 
гуру
27.03.12
16:23
(36) неа, коллекция в смысле Enumerable - должен быть инструмент универсального перечисления
56 Дикообразко
 
27.03.12
16:29
(50) для прикладника какая фейхоа разница?
57 H A D G E H O G s
 
27.03.12
16:31
(56) Вот. Вот именно так мыслили 1С ники, когда строили хранение показателей регламентированных отчетов на индексируемой Структуре, которые вываливались с out of memory при больших данных.
58 Ненавижу 1С
 
гуру
27.03.12
16:31
(56) большая, массивы 7.7 были фиксированы на этапе кодинга
59 Дикообразко
 
27.03.12
16:34
(58) я сегодня туплю, либо мне память отказывает...
там нельзя было просто написать создать объект массив? нужно было сразу указать размерность?

(57) а ты как думал :)
тем более индексированные ТЗ появились только в 8.1
60 Дикообразко
 
27.03.12
16:43
народ, вы куда разбежались?
61 Ненавижу 1С
 
гуру
27.03.12
16:45
(59) именно
надо писать

Перем Массив[10];
62 Конфигуратор1с
 
27.03.12
16:46
(61)+1
и это было печально
63 Дикообразко
 
27.03.12
16:47
(62) именно, поэтому юзали СЗ вместо массива
(61) забываю потихоньку
Независимо от того, куда вы едете — это в гору и против ветра!