Почему возникает ошибка "Достигнуто ограничение учебной версии"

  оглавление  Как выслать учебную базу по почте?

Про реквизит Ссылка

Введение

При изучении запросов ученики часто спрашивают  про реквизит Ссылка, который есть, например, у справочников и документов.

Давайте зайдём в базу Гастроном и откроем данные справочника Цвета:

Здесь нажмём на кнопку "Стандартные реквизиты":

Вот она наша Ссылка. Это стандартный реквизит и он есть у многих прикладных типов данных.

Вот примеры его значений:
0xA9BA005056C0000811EAA968D227F09E
0xA9BA005056C0000811EAA968D8B6ACBD
0xA9BA005056C0000811EAA968D8B6ACBE
0xA9BA005056C0000811EAA96D0BC160C1

Вся прелесть этого реквизита в том, что его значение формируется платформой 1С автоматически в момент записи нового объекта в базу данных и является уникальным в пределах прикладного типа, к которому этот реквизит относится.

То есть, например, в справочнике Цвета не может быть двух элементов с одинаковым значением реквизита Ссылка.

А раз так, то значение реквизит Ссылка может использоваться для того, чтобы ссылаться на объект, которому оно принадлежит.

Пример

Представим, что мы создали новый элемент справочника Цвета со следующими значениями реквизитов:

РеквизитЗначениеПояснение
НаименованиеКрасныйзначение этого реквизита указали мы сами при создании элемента
Ссылка0xA9BA005056C0000811EAA968D227F09Cзначение этого реквизита платформа сформировала сама при записи нового элемента в базу данных

А далее мы создали новый элемент справочника Клиенты со следующими реквизитами:

РеквизитЗначениеПояснение
НаименованиеАндрейзначение этого реквизита указали мы сами при создании элемента
ПолМужскойзначение этого реквизита указали мы сами при создании элемента
Ссылка0xA9BA005056C0000811EAA96D0BC160C0значение этого реквизита платформа сформировала сама при записи нового элемента в базу данных

А теперь самое интересное. У элемента справочника Клиенты есть реквизит ЛюбимыйЦвет, который указывает (ссылается) на элемент справочника Цвета.

Как вы думаете, какое именно значение мы должны записать в реквизит ЛюбимыйЦвет, чтобы он указывал на созданный нами ранее элемент справочника Цвета с наименованием "Красный"?

Верно, в этот реквизит мы должны записать значение реквизита Ссылка этого самого элемента (с наименованием "Красный").

То есть будет вот так:

РеквизитЗначениеПояснение
ЛюбимыйЦвет0xA9BA005056C0000811EAA968D227F09C

Примеры использования в запросах

Пример 1

Как мы уже выяснили, значение поля Ссылка уникально в пределах прикладного типа, к которому оно относится.

А значит мы можем использовать эту особенность, например, для подсчёта количества элементов в справочнике:

ВЫБРАТЬ
    Количество(Ссылка)
ИЗ
    Справочник.Цвета

Пример 2

Давайте напишем очень глупый запрос, который тем не менее продемонстрирует нам, что в реквизит ЛюбимыйЦвет записывается именно значение реквизита Ссылка элемента, на который он ссылается:

ВЫБРАТЬ
    Клиенты.Наименование,
    Клиенты.ЛюбимыйЦвет,
    Цвета.Ссылка
ИЗ
    Справочник.Клиенты КАК Клиенты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Цвета КАК Цвета
ПО
    Клиенты.ЛюбимыйЦвет = Цвета.Ссылка

Обратите внимание, как выглядит строковое значение реквизита ЛюбимыйЦвет и Ссылка.

Платформа 1С не вывела нам его настоящее значение (например, 0xA9BA005056C0000811EAA968D227F09C).

Вместо этого она определила, что это значение указывает на элемент справочника "Цвета" с наименованием "Красный" и вывела нам слово "Красный" в качестве представления этого элемента.

Это стандартное поведение платформы, просто так мы никогда и нигде не увидим "сырое" представление реквизита Ссылка.

Пример 3

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

К примеру, если мы знаем, что реквизит ЛюбимыйЦвет указывает на элемент справочника Цвета, то мы можем путём разыменования через точку получить любой другой реквизит этого элемента.

Вот пример запроса, в котором мы для каждого элемента справочника Клиенты выводим значение реквизита Код элемента справочника Цвета, на который указывает реквизит ЛюбимыйЦвет.

ВЫБРАТЬ
    Клиенты.Наименование,
    Клиенты.ЛюбимыйЦвет,
    Клиенты.ЛюбимыйЦвет.Код
ИЗ
    Справочник.Клиенты КАК Клиенты

Почему возникает ошибка "Достигнуто ограничение учебной версии"

  оглавление  Как выслать учебную базу по почте?