|   |   | 
| 
 | Почему так? 8-0 Соответствие работает неожиданно | ☑ | ||
|---|---|---|---|---|
| 0
    
        Sj 24.07.22✎ 22:52 | 
        Доброе время суток!
 Утрируя общую задачу, имею простой код: Процедура ПриОткрытии() Ссылки = Новый Соответствие; Ссылки.Вставить("ПоступлениеТоваровУслуг"); Ссылки.Вставить("ФизическиеЛица"); Ссылки.Вставить("Кассы"); Ссылки.Вставить("Регионы"); Ссылки.Вставить("РеализацияТоваровУслуг"); Ссылки.Вставить("ГруппыДоступаККонтрагентам"); Ссылки.Вставить("Примечания"); Ссылки.Вставить("ТипыЦенНоменклатуры"); Ссылки.Вставить("ВидыВзаиморасчетов"); Ссылки.Вставить("Банки"); Ссылки.Вставить("ТипыЦенНоменклатурыКонтрагентов"); Ссылки.Вставить("Склады"); Ссылки.Вставить("Организации"); Ссылки.Вставить("Пользователи"); Ссылки.Вставить("БанковскиеСчета"); Ссылки.Вставить("ДоговорыКонтрагентов"); Для каждого Стр Из Ссылки Цикл Сообщить(стр.Ключ); КонецЦикла; Сообщить("-----------------------------"); Ссылки.Вставить("_СистемыНалогообложения"); Для каждого стр Из Ссылки Цикл Сообщить(стр.Ключ); КонецЦикла; КонецПроцедуры Почему 1с возвращает: ДоговорыКонтрагентов Пользователи Организации Склады ТипыЦенНоменклатурыКонтрагентов Банки ВидыВзаиморасчетов ТипыЦенНоменклатуры Примечания ГруппыДоступаККонтрагентам РеализацияТоваровУслуг Регионы Кассы БанковскиеСчета ФизическиеЛица ПоступлениеТоваровУслуг ----------------------------- _СистемыНалогообложения ДоговорыКонтрагентов Организации Пользователи Склады ТипыЦенНоменклатурыКонтрагентов ВидыВзаиморасчетов Банки ТипыЦенНоменклатуры Примечания ГруппыДоступаККонтрагентам Регионы РеализацияТоваровУслуг Кассы ПоступлениеТоваровУслуг БанковскиеСчета ФизическиеЛица С какого такого БанковскиеСчета, ФизическиеЛица во втором сообщить оказались после ПоступлениеТоваровУслуг ? А в первом БанковскиеСчета оказались над ФизическиеЛица ? | |||
| 1
    
        Волшебник 24.07.22✎ 22:52 | 
        "Соответствие" не обязано соблюдать порядок.     | |||
| 2
    
        Sj 24.07.22✎ 22:56 | 
        возможно ли как-то реализовать .Добавить, чтобы четко понимать, что последовательность добавляемых данных будет соблюдена?     | |||
| 3
    
        Sj 24.07.22✎ 22:59 | 
        (1) никто никому не обязан, но если в хелпе это не описано, то подразумевается, что данные упорядочены по мере добавления. а не прыг-скок, как карта ляжет     | |||
| 4
    
        Волшебник 24.07.22✎ 23:02 | 
        Используйте объект типа "Массив" или "СписокЗначений" или "ТаблицаЗначений"
 Там порядок элементов/строк зафиксирован. | |||
| 5
    
        Sj 24.07.22✎ 23:09 | 
        (4) спасибо, но удобнее всего было Соответствие, я даже смирился с тем, что в Структуре идет сортировка по ключу, но там понятно - ключ. Для Соответствия хоть и в хелпе написано "Элементы коллекции:КлючИЗначение", но поведение ключа визуально непонятно.     | |||
| 6
    
        Жан Пердежон 24.07.22✎ 23:12 | 
        (3) учу читать доку: если в доке об этом явно не сказано, то подразумевается, что порядок никто не гарантирует     | |||
| 7
    
        Волшебник 24.07.22✎ 23:13 | 
        (5) Это программные структуры. У них нет визуального поведения.     | |||
| 8
    
        Жан Пердежон 24.07.22✎ 23:14 | 
        (3) ты еще предъяви, что 'select ИмяПоля from ИмяТаблицы' в разном порядке строки возвращает после добавления строк в таблицу     | |||
| 9
    
        Жан Пердежон 24.07.22✎ 23:19 | 
        (2) храни порядок отдельно в отдельном соответствии / массиве / структуре     | |||
| 10
    
        Sj 24.07.22✎ 23:22 | 
        (9) в хелпе должно быть указание, что порядок не гарантируется или ведет себя х. знает как.     | |||
| 11
    
        Sj 24.07.22✎ 23:23 | 
        меня, конечно, смутило отсутствие .Добавить. Но .Вставить для соответствия отрабатывало корректно, вот только фишечку поймал на "_".     | |||
| 12
    
        Asmody 24.07.22✎ 23:24 | 
        (10) кому должно?     | |||
| 13
    
        Sj 24.07.22✎ 23:25 | 
        (10) тем, кто использует 1С в качестве инструмента программирования.     | |||
| 14
    
        Asmody 24.07.22✎ 23:27 | 
        (13) схерали?     | |||
| 15
    
        Asmody 24.07.22✎ 23:28 | 
        Оно "должно" только то, что описано в спецификации языка и фреймворка.
 А удовлетворять фантазии каждого второго - дорогое удовольствие. | |||
| 16
    
        Жан Пердежон 24.07.22✎ 23:29 | 
        (14) а может тем кто использует 1С в качестве инструмента программирования, Нуралиев ещё должен лично приходить и сопли вытирать?     | |||
| 17
    
        Sj 24.07.22✎ 23:30 | 
        не утрируйте. здесь механизм достаточно просто: добавил строчку, с х. ли строчка должна прыгать. (16) ты не ссы, за своими соплями я сам присмотрю, свои подтирать не забывай.     | |||
| 18
    
        Жан Пердежон 24.07.22✎ 23:34 | 
        (17) вместо того, чтобы повторять что тебе кто-то что-то должен, почитал бы лучше что-нибудь про структуры данных, а точнее про ассоциативные массивы, зачем они нужны и про их реализации и т.д.     | |||
| 19
    
        Sj 24.07.22✎ 23:37 | 
        (18) если вы твердите про ассоциативные массивы поясните поведение 1С. Почему добавление ключа "_СистемыНалогообложения" изменило порядок всего массива?     | |||
| 20
    
        PR 24.07.22✎ 23:37 | 
        (17) Некоторые вот должны документацию прочитать, прежде чем вообще конфигуратор открывать
 А они прогают не приходя в сознание И еще хватает наглости что-то брякать про то, кто им и что должен | |||
| 21
    
        PR 24.07.22✎ 23:40 | 
        (19) Тебе уже сказали, что здесь нет прогнозируемого порядка, порядок не гарантируется
 Учись читать, что тебе пишут, прежде чем предъявлять претензии другим | |||
| 22
    
        RomanYS 24.07.22✎ 23:40 | 
        (19) так не было порядка, значит и не изменило. И не массива конечно     | |||
| 23
    
        Sj 24.07.22✎ 23:44 | 
        (18) вы о чем? надеюсь не мне, а просто чат попутали?     | |||
| 24
    
        Ненавижу 1С гуру 24.07.22✎ 23:44 | 
        Справедливости ради - описание в СП так себе     | |||
| 25
    
        PR 24.07.22✎ 23:46 | 
        (24) Напиши лучше
 До завтра напишешь? | |||
| 26
    
        Sj 24.07.22✎ 23:50 | 
        (25) хм, зачем вы так пишете? это же явная подъобка.     | |||
| 27
    
        Sj 24.07.22✎ 23:55 | 
        при разработке сложных систем все детали должны быть указаны. Хочешь ты этого или нет, но ты должен это указать. Обязан или нет - другой вопрос. В данном случае, поведение системы нелогично, поэтому я и решил уточнить информацию на форуме.     | |||
| 28
    
        Волшебник 25.07.22✎ 00:04 | 
        (27) Ага, Ваш звонок очень важен для нас.     | |||
| 29
    
        Волшебник 25.07.22✎ 00:06 | 
        Мистер Sj
 Прошу Вас ещё раз подумать, прежде чем предъявлять претензии к 1С здесь. Мы вообще не при делах! | |||
| 30
    
        Sj 25.07.22✎ 00:13 | 
        (29) не трактуйте меня предвзято. Я всего лишь пытаюсь прояснить для себя один вопрос, и  не более того. В (4), в принципе, ответ уже раскрыт. Хоть и немного жаль, что заявленный инструмент работает не так, как хотелось бы.     | |||
| 31
    
        Garykom гуру 25.07.22✎ 00:27 | 
        Наверно в платформе 1С маловато разных похожих (по сути одинаковых) типов данных.
 Надо к Структура, Соответствие, Массив, СписокЗначений, ТаблицаЗначений еще столько же добавить! Хотя прекрасно можно было обойтись одним универсальным типом. | |||
| 32
    
        ДедМорроз 25.07.22✎ 00:52 | 
        Соответствие - это дерево по hash-y ключей.
 При добавлении дерево перестраивается и оптимизируется. | |||
| 33
    
        TeMochkiN 25.07.22✎ 02:01 | 
        Справедливости ради, в СП для некоторых коллекций пишется, что к элементу коллекции можно обратиться через индекс, значит в такой коллекции порядок будет зафиксирован однозначно. Для структуры и соответствия такого не написано, значит и порядок будет непредсказуемым, ведь к их элементам невозможно обратиться через индекс.     | |||
| 34
    
        БигБаг 25.07.22✎ 05:25 | 
        (0) скорее всего оно реализовано на базе std::unordered_map, который не сортирован по ключу, а сортирован по хэшу значения.     | |||
| 35
    
        Конструктор1С 25.07.22✎ 05:41 | ||||
| 36
    
        Конструктор1С 25.07.22✎ 05:43 | 
        Внезапно, на ссылку вышел из синтаксис-помощника. В самом низу есть кнопка "методическая информация", которую иногда жмякать очень полезно     | |||
| 37
    
        Ненавижу 1С гуру 25.07.22✎ 08:19 | 
        (25) (26) Ответ в стиле "сам дурак"     | |||
| 38
    
        Гений 1С гуру 25.07.22✎ 10:42 | 
        (5) используй ТаблицуЗначений.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |