Показано с 1 по 8 из 8
-
05.02.2015, 06:52 #1
- Регистрация
- 27.12.2014
- Сообщений
- 28
- Сказал(а) спасибо
- 5
- Поблагодарили 0 раз(а) в 0 сообщениях
Для чего нужен оператор Структура
Массив понятно, таблица значений... и т.д., но часто в программах встречаю Структура, и не могу понять для чего он, у него есть методы(Вставить, удалить и т.д.) и свойства, следовательно это объект... можно как-нибудь по простому объяснить на примерах, а не из теории
-
05.02.2015, 10:34 #2
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
следовательно это объект
Если у вас есть какой-либо массив, то для доступа "на прямую" к элементу массива вы должны указывать его индекс, который в свою очередь ни как не завязан на содержимое этого массива и индекс это всегда число.
Если у вас есть какая-либо структура, то для доступа "на прямую" к элементу структуры вы должны указывать её ключ, который в свою очередь как правило коррелирует с содержимым элементом этой структуры и и может иметь в свою очередь довольно сложный состав совсем не численного вида .
Например с структуре "Автомобили сотрудников", ключом может выступать "Сотрудник". Соответственно и методы формирования этой структуры будут "Вставить", "Удалить", "Найти" и т.д.
-
05.02.2015, 11:06 #3
- Регистрация
- 27.12.2014
- Сообщений
- 28
- Сказал(а) спасибо
- 5
- Поблагодарили 0 раз(а) в 0 сообщениях
т.е массив(двухмерный) A(3,2)
A(1,1)=Сотрудник.Иванов A(1,2)=Авто.Запор.
A(2,1)=Сотрудник.Петров A(2,2)=Авто.Жига
A(3,1)=Сотрудник.Сидоров A(3,2)=Авто.Ока
Поиск в масиве
Индекс = Массив.Найти("Сотрудник.Пет ров");
Сообщить(А[индекс] [2]
А как будет выглядеть структура и поиск?
Чем она более привлекательна, и ключ тоже не совсем понятно..
-
05.02.2015, 11:59 #4
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
Ты сам начинаешь отвечать на свой вопрос :p
Поиск в масиве
Индекс = Массив.Найти("Сотрудник.Пет ров");
Сообщить(А[индекс][2]);
Отбор = Новый Структура("Дата, Клиент, Автомобиль");
Отбор.Вставить("Клиент", ТекКлиент);
Отбор.Вставить("Дата", РабочаяДата);
Отбор.Вставить("Автомобиль" , ТекКлиент.Автомобиль);
Тогда, ты всегда можешь получить "что хочешь"
Если Отбор.Свойство("Дата", ДатаОтбора) Тогда
Сообщить ("Дата отбора установлена как" + ДатаОтбора);
Иначе
Сообщить ("Дата отбора не установлена");
КонецЕсли;
---------- Post added at 10:59 ---------- Previous post was at 10:57 ----------
и ключ тоже не совсем понятно..
Представляет собой коллекцию пар КлючИЗначение. При этом ключ может быть только строковым и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка.
К значениям структуры можно обращаться как к свойствам объекта. При этом ключ используется как имя свойства.
Структура используется обычно для хранения небольшого количества значений, каждое из которых имеет некоторое имя.
Для структуры доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
-
06.02.2015, 05:24 #5
- Регистрация
- 27.12.2014
- Сообщений
- 28
- Сказал(а) спасибо
- 5
- Поблагодарили 0 раз(а) в 0 сообщениях
Спасибо... но структура встречается например и в паскале, но там она используется для создания, что-то вроде таблиц, но СУБД, например фркс, уже имеют таблицы, и поэтому структур там нет, хотя есть массивы..., в 1С тоже есть таблицы (та же таблица значений), почему в Вашем примере не воспользоваться таблицей значений, а удобнее применить Структуру?
-
06.02.2015, 07:47 #6
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
но структура встречается например и в паскале
но там она используется для создания, что-то вроде таблиц
почему в Вашем примере не воспользоваться таблицей значений, а удобнее применить Структуру?
-
06.02.2015, 11:47 #7
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
Собственно говоря, разговор (на мой взгляд) начинает уходить в "религиозную область" - можно ли программировать на 1С без использования Структуры.
Ответ: В собственных конфигурация - вполне. В типовых - нельзя, многие механизмы (например те же отборы) реализованы на использовании механизма структур.
-
Пользователь сказал cпасибо:
tmpnikl (07.02.2015)
-
20.02.2015, 21:15 #8
- Регистрация
- 28.09.2014
- Сообщений
- 12
- Сказал(а) спасибо
- 3
- Поблагодарили 0 раз(а) в 0 сообщениях
в собственных то не очень без структуры, тот же ОткрытьФорму() одним из параметров требует структуру. Структура это один из типов данных, причем достаточно удобный.
---------- Post added at 20:13 ---------- Previous post was at 20:11 ----------
Структура - по сути дела -ассоциативный массив, который используется почти во всех языках программирования.
---------- Post added at 20:15 ---------- Previous post was at 20:13 ----------
https://ru.wikipedia.org/wiki/%D0%90...81%D0%B8%D0%B2
Социальные закладки