Для чего нужен оператор Структура
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 8 из 8

Комбинированный просмотр

  1. #1
    Пришел за помощью

    Регистрация
    27.12.2014
    Сообщений
    28
    Сказал(а) спасибо
    5
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Для чего нужен оператор Структура

    Массив понятно, таблица значений... и т.д., но часто в программах встречаю Структура, и не могу понять для чего он, у него есть методы(Вставить, удалить и т.д.) и свойства, следовательно это объект... можно как-нибудь по простому объяснить на примерах, а не из теории

  2. #2
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

    следовательно это объект
    Разница между структурой и массивом можно пояснить так.
    Если у вас есть какой-либо массив, то для доступа "на прямую" к элементу массива вы должны указывать его индекс, который в свою очередь ни как не завязан на содержимое этого массива и индекс это всегда число.
    Если у вас есть какая-либо структура, то для доступа "на прямую" к элементу структуры вы должны указывать её ключ, который в свою очередь как правило коррелирует с содержимым элементом этой структуры и и может иметь в свою очередь довольно сложный состав совсем не численного вида .

    Например с структуре "Автомобили сотрудников", ключом может выступать "Сотрудник". Соответственно и методы формирования этой структуры будут "Вставить", "Удалить", "Найти" и т.д.

  3. #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]
    А как будет выглядеть структура и поиск?
    Чем она более привлекательна, и ключ тоже не совсем понятно..

  4. #4
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

    Ты сам начинаешь отвечать на свой вопрос :p

    Поиск в масиве
    Индекс = Массив.Найти("Сотрудник.Пет ров");
    Сообщить(А[индекс][2]);
    Т.е. Чтобы обратиться к элементу массива, нужно знать его индекс (а значит нужно дополнительно заморочиться отдельно поиском). Со структурой ты не паришься, ты сразу получаешь искомое.

    Отбор = Новый Структура("Дата, Клиент, Автомобиль");
    Отбор.Вставить("Клиент", ТекКлиент);
    Отбор.Вставить("Дата", РабочаяДата);
    Отбор.Вставить("Автомобиль" , ТекКлиент.Автомобиль);


    Тогда, ты всегда можешь получить "что хочешь"

    Если Отбор.Свойство("Дата", ДатаОтбора) Тогда
    Сообщить ("Дата отбора установлена как" + ДатаОтбора);
    Иначе
    Сообщить ("Дата отбора не установлена");
    КонецЕсли;

    ---------- Post added at 10:59 ---------- Previous post was at 10:57 ----------

    и ключ тоже не совсем понятно..
    Структура
    Представляет собой коллекцию пар КлючИЗначение. При этом ключ может быть только строковым и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка.
    К значениям структуры можно обращаться как к свойствам объекта. При этом ключ используется как имя свойства.
    Структура используется обычно для хранения небольшого количества значений, каждое из которых имеет некоторое имя.

    Для структуры доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

  5. #5
    Пришел за помощью

    Регистрация
    27.12.2014
    Сообщений
    28
    Сказал(а) спасибо
    5
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

    Спасибо... но структура встречается например и в паскале, но там она используется для создания, что-то вроде таблиц, но СУБД, например фркс, уже имеют таблицы, и поэтому структур там нет, хотя есть массивы..., в 1С тоже есть таблицы (та же таблица значений), почему в Вашем примере не воспользоваться таблицей значений, а удобнее применить Структуру?

  6. #6
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

    но структура встречается например и в паскале
    Да, понятие "структура" не есть "личным изобретением тов. Нуралиева" :p


    но там она используется для создания, что-то вроде таблиц
    Не выдумывайте. Структура (и в Си и в Паскале) это агрегация данных более высокого уровня чем массив (в именно массив более коррелирует с таблицей, чем та же структура).

    почему в Вашем примере не воспользоваться таблицей значений, а удобнее применить Структуру?
    Таблица значений несет больше издержек (но и имеет больший функционал) чем структура. Так зачем забивать гвозди микроскопом, когда для этого можно использовать гораздо более дешевый (но и менее функциональный) молоток?:p

  7. #7
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

    Собственно говоря, разговор (на мой взгляд) начинает уходить в "религиозную область" - можно ли программировать на 1С без использования Структуры.

    Ответ: В собственных конфигурация - вполне. В типовых - нельзя, многие механизмы (например те же отборы) реализованы на использовании механизма структур.

  8. Пользователь сказал cпасибо:

    tmpnikl (07.02.2015)

  9. #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

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •