8.х Ссылка - это здорово, но загадочно

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Роман96, 25 окт 2008.

  1. TopicStarter Overlay
    Роман96
    Offline

    Роман96

    Регистрация:
    25 окт 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    :unsure:

    Начал изучать 1с 8.
    Прошу помощи не у крутых программистов, а у людей снисходительных.
    Вопрос: Не до конца понятно что такое реквизит объекта ссылка.
    1.Слышу: "передаем по ссылке", "получаем по ссылке".
    Если в ссылке есть все реквизиты объекта, то правда ли, что реквизиты табчасти можно получить только выборкой, а через точку нельзя? Хочу для себя разложить все по полочкам - что же это такое - ссылка, и какой-то примерчик как ею пользуются.
    2. Может кто кинет ссылку как работать с отладчиком. У тех, кого спрашивал - только распольцовка. Дескать мы крутые программеры.
    Два слова о себе:
    Языков программирования не знаю(образование среднее). Начал с того, что прослушал курс С++ в ЦКО "Специалист".
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Один вопрос - одна тема. Пока устное предупреждение.

    1. Читайте ЖЖК - там все есть по этому вопросу.
    Там очень много тонкостей и в двух словах не расскажешь.
    Например, при попытке получить значение через точку - читается весь объект в память - очень частая ошибка.
    2. А что значит "как работать"? Открывайте книжки и читайте - там тоже все есть.
  3. GvH
    Offline

    GvH Опытный в 1С

    Регистрация:
    12 авг 2008
    Сообщения:
    179
    Симпатии:
    0
    Баллы:
    26
    Ну или
    "Профессиональная разработка в системе 1С:Предприятие 8" Габец, Гончаров и прочие товарищи.
  4. TopicStarter Overlay
    Роман96
    Offline

    Роман96

    Регистрация:
    25 окт 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Не подскажете как расшифровывается ЖЖК ?
  5. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Вообще-то BabySG, наверное, имел ввиду ЖКК - желто-красные книжки, книги которые идут в комплекте с любой версией 1С.
  6. TopicStarter Overlay
    Роман96
    Offline

    Роман96

    Регистрация:
    25 окт 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Наверно он имел ввиду, что :unsure: вы не открывали коробку с 8-кой :smile: .
  7. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Если совсем тупо и вкратце - Ссылка, это ссылка на сам элемент, на которую мы можем смотреть, но не можем менять, Объект - это непосредственно сам объект, у которого можно менять свойства, а так же смотреть их значения.

    Аналог примерно такой:
    У нас есть Яблоки, если мы взяли Яблоко - то это объект, его можно надкусить и в то же время осмотреть как следует. Если мы взяли и сфотографировали яблоко и взяли фотографию - ее мы можем только посмотреть, определить цвет, размер и т.д., но не надкусить. Это ссылка.

    Вообще вам хорошо бы почитать про ООП (Объектно-ориентированное программирование) и других полезных книжек.

    Базовый курс по С++ может и хорошо, но чтобы реально заниматься программированием хорошо бы иметь соответствующее образование, но, главное, особый склад ума. А то даже с дипломами люди бывают настолько непробиваемыми...
  8. VovaLee
    Offline

    VovaLee

    Регистрация:
    29 сен 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Память разбита на ячейки состоящии из адреса и значения.
    Чтобы получить значение машина обращается по адресу и считывает значение.

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

    Размер ссылки фиксирован и зависит от того сколько ячеек памяти присутсвует в машине.

    Наверняка вы в С++ проходили такой тип данных как массив.
    Массив это упорядоченный набор однотипных элементов.
    В памяти машины массив выделяется единым блоком, скажем если массив состоит из 10000 элементов integer, то будет выделенно ровно столько места чтобы хранить эти ячейки с номерами от n до n+10000.

    Соответственно, если вы передаёте значение массива по ссылке, то вы получаете адрес области памяти где хранится массив, в С++ это адрес первого элемента массива.

    Если вы делате присваивание, то создаётся второй такой же массив, в который копируются значения из первого.


    P.S. Вообще-то это должны были проходить на курсах С++
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В 1С понятие ссылки отличается от вышеописанного :)
  10. VovaLee
    Offline

    VovaLee

    Регистрация:
    29 сен 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    О КАК!!!

    Честно говоря возникла необходимость написать внешнюю печатную фрму для 8-ки, которая бы выводила вес и объём товара. Сделал её на основе вашего примера и радовался что язык похож на С++.

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

    Но если начинать обсуждать конструкторы и деструкторы, наследование, выделение памяти то можно в такие дебри залезть... :)
    Хотя, я в 1С пока ещё совсем ничего не понимаю, рассуждаю по аналогии со здравым смыслом.
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Поймите одну простую вещь: в 1С нет понятия конструктора, деструктора, виртуальных функций, наследования.
    Этот язык предназначен для другого.
    Когда я сам пришел с С++ - был в шоке :)
  12. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Клуб Сионистов =)
    1С язык - аналог Visual Basic причем в варианте скорее Visual Basic For Applications.

    Никаких (хоть и очень хочется) истоков с С++ рядомстоящих нет.
    В принципе язык не похож, гораздо проще и примитивнее, но он создан для конкретных задач.

    Соответственно нет полноценного ООП, хотя вот это было бы прекрасно, то же наследование использовать в документах и т.д.
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Эмин, я вот с трудом представляю, что можно наследовать от Инвентаризации или ОПЗС :)
  14. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Ну... =) Это вырождыенные случаи, а так - сделать "ОбщийДокумент" с миниумом реквизитов, например и некоторой системой генерации формы, остальные документы последовательно.

    Кроме того - легко написать сериализацию было бы. Модули не так распухали.

    Например документы по учету товаров наследовались, где-то разветвляясь от базового документа с табличной частью Товары и минимумом реквизитов... в общем тут все сложнее реализовать просто :)
  15. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Эмин,
    - серилиализация доступна через XDTO
    - генерация формы и стандартный набор реквизитов -> 8.2 реализовано
    - в УНП уже такое сделано :)
  16. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Про это все я в курсе... но это было бы реализовано раньше :)
    Кроме того - на 8.2 сейчас существует одна конфа и то бета-версия по управлению небольшйо фирмой, массовая работа идет скорее на 8.1 (а порой и 8.0).

    Изначальный объектный подход позволил бы реализовать многие вещи года два назад...
  17. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    :unsure:
    УНП = Управление Небольшой Фирмой
    Так что об одном и том же говорим :)
Похожие темы
  1. Goth
    Ответов:
    2
    Просмотров:
    1.180
Загрузка...

Поделиться этой страницей