...Вы можете привести (или дать ссылку) где толково (для "чайников") описано (не обязательно с привязкой к 1с) что такое: ...
Что просил
Просто нужно различать понятия общие и 1С:
класс, объект, метод, массив (возможно - коллекция) - это общие понятия программирования,
а вот метаданные, список значений, структура, соответствие - это уж понятия, введенные в 1С
В данном контексте 1С нужно рассматривать не как язык прогаммирования, а как
фреймворкДобавлено через 25 минут и 54 секунды:Где что применять из прикладных объектов (массив, коллекция, список значений, структура, соответствие) - это дело вкуса и удобства. Четких правил сформулировать пока не могу, где почитать - тоже не знаю: учился на своих пробах и ошибках.
Все зависит от задачи (имеется в мелкая задача), которую ты пытаешься решить с помощью этого объекта: необходимо чтобы у выбранного объекта были свойства и методы, которые дадут максимально прозрачный код для дальнейшего сопровождения.
Пример:
Ключом в элементе
Структура может выступать только строка, сформированная по правилам идентификаторов (т.е. буквы+цифры+"_"), но она (структура) дает возможность обращаться к установленным значениям прямо в коде, через точку:
Настройка = МояСтруктура.НастройкаПечати;
Однако такое обращение к неинициализированному ключу вызовет исключение времени выполнения (для проверки используется МояСтруктура.Свойство("НастройкаПечати", Настройка)).
Если эти ограничения приемлемы в рамках данной задачи - пользуйся структурой.
Кроме того в плюсы Структуры можно записать инициализацию в конструкторе:
МояСтруктура = Новый Структура("Настройка, Значение, Реквизит", Истина, 123, "Склад");
В противопоставление
Соответствие в качестве ключа может принимать значение любого типа, но:
1. Обращаться к значениям необходимо через метод:
Настройка = МоеСоответствие.Получить(КлючСоответствия);
// Здесь КлючСоответствия - это переменная (почти?) любого типа
2. Обращение к неинициализированным значениям вернет Неопределено, а не закончится с ошибкой
но 3. Установка значений в Неопределено удалит элемент из Соответствия:
МоеСоответствие = Новый Соответствие();
МоеСоответствие.Вставить(1, 1); // МоеСоответствие.Количество()=1;
МоеСоответствие.Вставить(2, 2); // МоеСоответствие.Количество()=2;
МоеСоответствие.Вставить(1, Неопределено); // МоеСоответствие.Количество()=1; !!!
В общем вопрос хороший, но достаточно масштабный. Можно было бы написать на эту тему статью, но к сожалению сейчас нет на это времени