Перейти к содержимому

Как система 1с предприятие выполняет обращение к ссылочным данным

  • автор:

Как система 1с предприятие выполняет обращение к ссылочным данным

Язык 1С сильно «завязан» на работу с данными. Действительно, основная задача — обработка данных, полученных из базы данных запросом или другими способами.

В других языках с данными, полученными из базы данных обычно работают «как с таблицей». В 1С такое тоже возможно – выполнить запрос, получить «в ответ» таблицу и работать с ней.

Однако более распространенный способ, одна из «фишек 1С» — это работа с данными как с объектами 1С. Например объект 1С Справочник.ИмяСправочника позволяет работать с конкретным справочником, при этом объект 1С имеет свойства (поля с данными) и стандартные методы.

Работа с объектом 1С ведется тогда, когда требуется создать объект 1С или изменить существующий. В остальных случаях (например поиск объекта 1С, использование его в другом объекте 1С) – используется ссылка 1С на объект 1С.

Создание объектов 1С

Объект 1С можно создать с помощью оператора Новый, при этом вызывается конструктор данного типа, если у типа несколько конструкторов – он выбирается по указанным параметрам:
Переменная1 = Новый СписокЗначений();

Менеджеры для получения объектов 1С из базы данных

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

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

Например:
Переменная1 = Справочники.ИмяСправочника.СоздатьЭлемент();
Переменная1 = Справочники.ИмяСправочника.НайтиПоНаименованию(«Наименование»);

Ссылки 1С и объекты 1С

Работа с объектами 1С, связанными с данными в базе данных может вестись двумя способами – с помощи «ссылки 1С на данные» и объекта 1С.

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

Ссылка 1С на данные получается с помощью функций вида:
СправочникСсылка = Справочники.ИмяСправочника.НайтиПоНаименованию()

Объект 1С можно получить из ссылки 1С или создать с нуля:
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
СправочникОбъект = Справочники.ИмяСправочника.СоздатьЭлемент();

Пустая ссылка 1С

Ссылка может быть пустой, это значит, что создан «пустой» экземпляр объекта 1С, который не связан с данными.
СправочникСсылкаПустая = Справочники.ИмяСправочника.ПустаяСсылка();

Также ссылку 1С можно проверить на заполненность:
Если СправочникСсылка.Пустая() Тогда
//…
КонецЕсли

Уникальный идентификатор (GUID)

Любой элемент справочника или документ хранится в базе данных. Для идентификации он имеет уникальный «номер» в рамках базы данных — GUID. В понятиях встроенного языка 1С, этот GUID – это ссылка 1С.

Узнать идентификатор можно с помощью универсального метода любого объекта 1С ссылочного типа:
СправочникСсылка = Справочники.ИмяСправочника.НайтиПоНаименованию(«Наименование»);
GUID = СправочникСсылка.УникальныйИдентификатор();

Возвращаемое значение данного метода имеет специальный тип. Если необходимо сравнивать значение со строкой, не забудьте преобразовать его к строке с помощью Строка(Параметр).

GUID назначается в момент первой записи объекта 1С. Уже до записи можно узнать GUID, который будет назначен объекту 1С при записи:

Также перед записью можно назначить свой GUID. Это бывает полезным, например, при обмене данными:

При работе со значениями, возможно столкнуться со следующими способами хранения и доступа к данным:

  • Переменная – созданная в модуле программистом, нетипизированная
  • Реквизит объекта 1С (справочника, документа), добавленный в конфигураторе – хранится в базе данных, строго типизирован
  • Реквизит формы – поле на форме, строго типизирован.

Поле на форме показывает «какие-то данные». Данные могут быть напрямую связаны с реквизитом объекта 1С (указаны в свойстве поля формы ПутьКДанным).

Также форма может иметь свои реквизиты, они не записываются в базу данных, их устанавливает программист в процедурах и функциях модуля формы (обычно в процедуре обработчике ПриОткрытии формы).

Доступ к значениям именованных свойств объектов 1С

У многих объектов 1С есть свойства, которые имеют наименования.
Например:

  • элемент справочника имеет реквизиты с наименованиями
  • форма имеет реквизиты с наименованиями
  • у таблицы есть колонки с наименованиями
  • у строки таблицы есть поля с такими же наименованиями, как колонки у таблицы.

Если у объекта 1С есть свойства (реквизиты, колонки и т.п.), у которых есть наименования, то к ним можно обращаться двумя способами.

Если в наличии имеются два объекта 1С с именованными свойствами и нужно скопировать их значения, удобно использовать процедуру
ЗаполнитьЗначенияСвойств(КудаКопировать, ОткудаКопировать)
которая копирует значения всех свойств, имена которых совпадают, пример:

Механизм запросов

Механизм запросов — это один из способов доступа к данным, которые поддерживает платформа. Используя этот механизм, разработчик может читать и обрабатывать данные, хранящиеся в информационной базе; изменение данных с помощью запросов невозможно. Это объясняется тем, что запросы специально предназначены для быстрого получения и обработки некоторой выборки из больших массивов данных, которые могут храниться в базе данных.

Табличный способ доступа к данным

Запросы реализуют табличный способ доступа к данным, которые хранятся в базе данных. Это означает, что все данные представляются в виде совокупности связанных между собой таблиц, к которым можно обращаться как по-отдельности, так и к нескольким таблицам во взаимосвязи:

Механизм запросов

Такой способ работы с данными позволяет получать сложные выборки данных, сгруппированные и отсортированные определенным образом. Для этих выборок могут быть рассчитаны общие и промежуточные итоги, наложены ограничения на количество или состав записей и пр.

Язык запросов

Для того чтобы разработчик имел возможность использовать запросы для реализации собственных алгоритмов, в платформе реализован язык запросов. Этот язык основан на SQL, но при этом содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке прикладных решений. Можно перечислить наиболее существенные возможности, реализуемые языком запросов:

Обращение к полям через точку (».»)

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

Механизм запросов

Обращение к вложенным таблицам (табличным частям документов и элементов справочников)

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

Механизм запросов

Но также мы можем считать заголовочную запись документа, в которой значением поля Товары будут все записи вложенной таблицы, подчиненные этому объекту (документу):

Механизм запросов

Автоматическое упорядочивание

Для выбора наиболее правильного («естественного») порядка вывода информации на экран или в отчет разработчику в большинстве случаев достаточно задать режим автоматического упорядочивания.

Механизм запросов

Многомерное и многоуровневое формирование итогов

Итоги и подитоги формируются с учетом группировки и иерархии, обход уровней может выполняться в произвольном порядке с подведением подитогов, обеспечивается корректное построение итогов по временным измерениям.

Механизм запросов

Поддержка виртуальных таблиц

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

Механизм запросов

Стандартные SQL операции

В языке запросов поддерживаются стандартные для SQL операции, такие, как объединение (Union), соединение (Join) и т. д.

Механизм запросов
Механизм запросов

Временные таблицы

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

Предположим, нужно получить данные из двух регистров накопления. Данные из одного регистра поместим во временную таблицу:

Механизм запросов

Запрос, использующий временную таблицу, будет иметь вид:

Механизм запросов

Пакетные запросы

Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами — таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом «;». Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.

Механизм запросов

Конструкторы запроса

  • Конструктор запроса позволяет составить только текст запроса. Подробнее…
  • Конструктор запроса с обработкой результата помимо текста запроса формирует фрагмент программного кода, который исполняет запрос и выводит результаты в табличный документ или диаграмму. Подробнее…

Консоль запросов

Инструмент «Консоль запросов» позволяет разработчикам конфигураций и специалистам по внедрению отлаживать запросы и просматривать результаты их выполнения в режиме «1С:Предприятие 8». Подробнее…

Информационные системы / Курсовая_6_семестр / Учебники / Радченко М.Г. 1С- Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы (2013) (1)

перечень номенклатуры документа; во второй части рассчитывается стоимость номенклатуры и формируются движения в регистрах накопления; и в третьей части производится контроль остатков номенклатуры при оперативном проведении документа.

Выделим эти три области в тексте процедуры, используя инструкции препроцессору #Область <имя области> и #КонецОбласти

Листинг 14.42. Процедура «ОбработкаПроведения()»

Процедура ОбработкаПроведения(Отказ, Режим)

Движения.ОстаткиМатериалов.Записывать = Истина; Движения.СтоимостьМатериалов.Записывать = Истина; Движения.Продажи.Записывать = Истина;

// Создать менеджер временных таблиц МенеджерВТ = Новый МенеджерВременныхТаблиц;

Запрос = Новый Запрос;

// Укажем, какой менеджер временных таблиц использует этот запрос Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

Запрос.Текст p1294 ft12″> | ОказаниеУслугиПереченьНоменклатуры.Номенклатура,

СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе

|ПОМЕСТИТЬ НоменклатураДокумента |ИЗ

Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;

462 1С:Предприятие 8.3. Практическое пособие разработчика

ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,

ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество

НоменклатураДокумента КАК НоменклатураДокумента

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(

// Установим необходимость блокировки данных в регистрах СтоимостьМатериалов

Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина; Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;

// Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе Движения.СтоимостьМатериалов.Записать(); Движения.ОстаткиМатериалов.Записать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда

СтоимостьМатериала = 0; Иначе

СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;

Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

Занятие 14 46 3

// Регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Склад = Склад;

// Регистр СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;

Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;

// Регистр Продажи Движение = Движения.Продажи.Добавить(); Движение.Период = Дата;

Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Мастер;

Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе; Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе; Движение.Стоимость = СтоимостьМатериала *

Если Режим = РежимПроведенияДокумента.Оперативный Тогда // Проверить отрицательные остатки Запрос3 = Новый Запрос;

И Склад = &Склад) КАК ОстаткиМатериаловОстатки

464 1С:Предприятие 8.3. Практическое пособие разработчика

РезультатЗапроса = Запрос3.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = «Не хватает » + Строка(-

ВыборкаДетальныеЗаписи.КоличествоОстаток) + » единиц материала «»» + ВыборкаДетальныеЗаписи.Материал + «»»;

Отказ = Истина; КонецЦикла;

В результате мы можем свернуть выделенные программные области в тексте процедуры (рис. 14.32).

Рис. 14.32. Выделение произвольных областей в модуле

Затем можно развернуть только нужную область модуля и работать с ней. Текст процедуры станет более компактным и читаемым.

В нашем примере мы разбили одну процедуру модуля на три логические части. Но чаще наоборот: когда модуль содержит много различных процедур, сходные по назначению процедуры можно объединить в группы. Например, в модуле формы можно выделить

такие области, как ПрограммныйИнтерфейс , ОбработчикиСобытий ,

СлужебныеПроцедурыИФункции . Название этих областей задается самим разработчиком и говорит само за себя.

Занятие 14 46 5

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

В режиме «1С:Предприятие»

Запустим «1С:Предприятие» в режиме отладки и проверим работу нового обработчика события ОбработкаПроведения , перепроведя все документы Оказание услуги .

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

Теория: устройство кеша

В разделе «Теория: особенности использования ссылочных данных» на стр. 413 мы упомянули о том, что в платформе есть некий кеш, который хранит в себе данные объектов, читаемых из базы данных. Теперь расскажем о работе этого механизма подробнее.

Система «1С:Предприятие» использует механизм кеширования данных объектов, считанных из базы данных при использовании объектной техники.

Таким образом, для получения реквизитов какого-либо объекта через ссылку выполняется обращение к кешу объектов, расположенному в оперативной памяти.

Кеш объектов состоит из двух частей: транзакционного кеша и обычного кеша. В зависимости от того, происходит ли обращение в рамках транзакции или нет, в действие вступает тот или иной кеш

Все данные, находящиеся в кеше, предназначены только для чтения ( ReadOnly ). Таким образом, чтение любых данных, получаемых через ссылку, выполняется только через кеш объектов, а запись – механизмами самих программных объектов.

466 1С:Предприятие 8.3. Практическое пособие разработчика

Рис. 14.33. Кеш объектов

Если при обращении к обычному кешу требуемых данных в нем нет, то выполняется чтение данных объекта из базы данных и сохранение их в кеше. Уникальным идентификатором для кеша в данном случае будет являться ссылка на объект базы данных. Поэтому данные каждого считанного объекта могут существовать в кеше в одном из двух видов: либо все данные объекта, либо представление объекта.

Таким образом, если мы обратимся к кешу для получения представления объекта и в кеше есть информация для нашей ссылки, данные будут взяты из кеша (если в кеше весь объект, нужное представление будет получено из данных объекта).

Если в кеше нет информации для нашей ссылки, из базы данных в кеш будут считаны только поля, необходимые для формирования представления объекта.

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

Если в кеше весь объект, значение реквизита будет получено из кеша. Если в кеше представление объекта, оно будет удалено из кеша,

Занятие 14 46 7

и в кеш будут считаны все данные объекта. Если же при получении реквизита объекта в кеше нет информации для нашей ссылки, из базы данных будут считаны все поля объекта.

Считанные данные будут находиться в кеше до тех пор, пока не наступит одно из следующих событий:

считанные данные будут вытеснены из кеша другими считанными данными других объектов (переполнение кеша);

при очередном обращении к кешу окажется, что считанные данные были изменены в базе данных;

закончится интервал времени в 20 минут.

Все считанные данные помещаются в последовательную очередь, и, поскольку объем кеша ограничен, наиболее старые данные будут вытесняться из кеша последними считанными.

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

Если обращение происходит в пределах 20 секунд после поступления данных в кеш, данные считаются верными (валидными). Если интервал превысил 20 секунд, будет выполняться проверка на соответствие версии данных, хранящихся в кеше, версии данных, находящихся в базе данных.

Если окажется, что версии данных не совпадают (т. е. произошло изменение данных в базе данных), данные, находящиеся в кеше, будут удалены из него, и будет выполнено повторное считывание данных из базы данных. Начиная с этого момента, идет отсчет следующего 20-секундного интервала валидности этих данных.

Кроме всех вышеперечисленных событий считанные данные будут удалены из кеша по истечении 20 минут после их последнего считывания из базы данных.

Таким образом, при последовательном выполнении двух операторов (листинг 14.43), где Номенклатура – это ссылка на объект справочника, на выполнение второго оператора будет тратиться гораздо меньше времени, поскольку в первом случае будет выполняться обращение к базе данных, а во втором – чтение из оперативной памяти (кеша объектов).

468 1С:Предприятие 8.3. Практическое пособие разработчика

Листинг 14.43. Последовательность операторов

А = Номенклатура.Наименование; В = Номенклатура.ВидНоменклатуры;

Если обращение к данным происходит в рамках транзакции, то оно переадресуется транзакционному кешу. В рамках транзакции в «1С:Предприятии» выполняются все операции, приводящие к изменению данных в базе данных. Например, в рамках транзакции выполняется обработка проведения документа.

Транзакция – это неделимая последовательность манипулирования данными, переводящая базу данных из одного целостного состояния в другое. Если по каким-то причинам одно из действий транзакции невыполнимо, база данных возвращается в то состояние, которое было до начала транзакции (происходит откат транзакции – Rollback ).

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

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

Транзакционный кеш хранит считанные данные до тех пор, пока они не будут вытеснены более поздними или пока не закончится транзакция. По окончании транзакции кеш очищается, однако действия, выполняемые при этом, зависят от состояния завершения транзакции.

Если транзакция завершена успешно ( Commit ), данные всех объектов, содержащиеся в транзакционном кеше, переносятся в обычный кеш, а транзакционный кеш очищается (рис. 14.34).

Если был выполнен отказ от изменений ( Rollback ), то просто очищается транзакционный кеш (рис. 14.35).

Занятие 14 46 9

Рис. 14.34. Транзакция завершена успешно

Рис. 14.35. Очистка транзакционного кеша при отказе от изменений

470 1С:Предприятие 8.3. Практическое пособие разработчика

; ; Как система «1С:Предприятие» выполняет обращение к ссылочным данным?

; ; Как используется кеш объектов?

; ; Почему для доступа к массивам данных информационной базы предпочтительнее использовать запросы?

; ; Что такое момент времени?

; ; Чем отличается оперативное проведение документов от неоперативного?

; ; Что такое оперативная отметка времени?

; ; Как запросом получить остатки регистра накопления?

; ; На что следует обращать внимание при указании параметров виртуальных таблиц запросов?

; ; Почему при неоперативном проведении документов не нужно контролировать остатки?

; ; Что такое временные таблицы, и зачем их использовать? ; ; Что такое менеджер временных таблиц?

; ; Как и зачем можно использовать временные таблицы в параметрах виртуальных таблиц?

Ссылочные типы данных в конфигурации системы 1С: Предприятие

Что же такое тип данных? Оказывается системный тип данных – это фундаментальное понятие, без которого просто не мыслим любой язык программирования (хотя бы один тип, но должен быть). Ведь в общем случае программирование – это работа по преобразованию данных, а данные должны иметь какой-то тип (пусть даже неопределенный). Встроенный язык программирования 1С не исключение и тоже имеет свои типы данных.

Типы данных в 1С можно разделить на следующие группы:

· Базовые или примитивные типы данных (строка, число, булево, дата, null, неопределенно, тип);

· Сложные типы (универсальные коллекции, общие объекты и прикладные объекты метаданных 1С, с доступом через ссылку);

· Составные типы данных (включает в себя другие типы данных).

В рамках данной статьи интерес вызывают прикладные объекты метаданных 1С, с доступом через ссылку (ссылочные типы данных), по своей сути представляющие собой модель сущности предметной области, использующие объектный подход системы манипулирования данными (Справочник, Документ, ПланСчетов и т.п.). Работа с указанными сущностями базы данных ведется через ссылки.

2. Понятие ссылка и ее составные части в конфигурации системы 1С: Предприятие

Термин «ссылка» используется как в обычной жизни, так и в компьютерных науках, не удивительно, что его смысл очень зависит от того в каком контексте используется. Например, в языках программирования, ссылка – это объект, у которого основная задача предоставить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д.

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

Рассмотрим вопрос о том, какой смысл заложен в понятие ссылка в концепции 1С? Ссылка в 1С — это тип данных, однозначно определяющий объект системы 1С.

Получение из базы 1С данных может быть выполнено запросом, в ответ на который данные приходят в виде таблицы. Однако в 1С есть более распространенный способ – это работа с данными как с объектами 1С, то есть при обработке данных, расположенных в базе 1С, используется объектный подход к программированию. То есть, при обращении (записи или чтении) к некоторой совокупности данных, размещенных в базе данных, обращение происходит как к некоему целому объекту.

Отличительной особенностью манипулирования данными в бд как объектом является следующее: у каждого объекта, имеется уникальный идентификатор ссылки, позволяющий определить указанный в объекте базы данных 1С. Эта ссылка находится в поле самой базы данных, вместе с другими данными указанного объекта.

Ссылка состоит из двух частей – имя объекта метаданных (это и есть тип ссылки) и 1С УИДа, в общем смысле являющегося GUID. И несмотря на то, что уникальность отдельного GUID не гарантируется, количество уникальных ключей невероятно велико, так что вероятность того, что в мире будут сгенерированы два одинаковых ключа, крайне мала.

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

Следует иметь в виду, что при создании двух разных объектов метаданных 1С (например, справочника поставщиков и справочника покупателя), даже с одинаковым набором реквизитов, для платформы системы 1С: Предприятие это будут разные типы данных, несмотря на одинаковый реквизитный состав, и унаследованную базовую функциональность системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *