Skip to content

Instantly share code, notes, and snippets.

@artbear
Forked from kuntashov/ref_by_guid_ctor.bsl
Created March 21, 2018 18:22
Show Gist options
  • Save artbear/76b5d9fd5edefb5c22f177fd2f84da73 to your computer and use it in GitHub Desktop.
Save artbear/76b5d9fd5edefb5c22f177fd2f84da73 to your computer and use it in GitHub Desktop.
1С: Конструкторы ссылочных типов данных и ошибка синтаксического контроля
// Еще в 8.2 появился редко используемый на практике вариант получения ссылки на объект по уникальному идентификатору,
// но до сих пор синтаксический контроль в конфигураторе не признает данную синтаксическую конструкцию как корректную
// и выдает ошибку.
УИД = Новый УникальныйИдентификатор();
РТУСсылка = Новый ДокументСсылка.РеализацияТоваровУслуг(УИД);
// Альтернативные равнозначные варианты, не вызывающие ошибок синтаксического контроля.
// 1. Вызвать функцию ПолучитьСсылку() менеджера соответствующего ссылочного объекта.
// Например:
РТУСсылка = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(УИД);
// 2. Использовать способ вызова оператора Новый как функции (тоже не часто такое можно встретить на практике):
Параметры = Новый Массив(1);
Параметры[0] = УИД;
РТУСсылка = Новый("ДокументСсылка.РеализацияТоваровУслуг", Параметры);
// 3. Обойти проверку синтаксического контроля, используя динамическое вычисление при помощи метода
// глобального контекста Вычислить():
РТУСсылка = Вычислить("Новый ДокументСсылка.РеализацияТоваровУслуг(УИД)");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment