1с как получить объект по ссылке
Перейти к содержимому

1с как получить объект по ссылке

  • автор:

Получить объект по ссылке 1С и наоборот

Пусть переменная СсылкаНаОбъект принадлежит любому ссылочному типу: справочнику, документу, плану счетов и т.д. Получить объект по ссылке можно так:

Пусть переменная Объект принадлежит любому объектному типу. Получить ссылку из объекта можно так:

Будьте внимательны, реквизит “Ссылка” заполняется только при записи объекта. Если объект не записан — ссылки не будет.

  • Создание внешней печатной формы для управляемого приложения в 1С 8.3
  • Создание обработки заполнения табличной части 1С 8
  • Создание внешних печатных форм 1С — обычное приложение
  • Язык запросов 1С 8.3 и 8.2 — краткое руководство по всем конструкциям

Подпишитесь на наш YouTube канал

Работает только на Сервере

А в обычном приложении без разницы..

Обход такой
Создаете процедуру на сервере с графом экспорт

и в клиенте в нужном месте вызываете процедуру которую хотите.

Респект и уважуха за подсказку!

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

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

&НаСервере
Функция ПолучитьРеквизитСправочника(СсылкаНаСправочник, Реквизит) Экспорт

ЗначениеРеквизита=»»;
Выполнить(«ЗначениеРеквизита = СсылкаНаСправочник.» + Реквизит);
Возврат ЗначениеРеквизита;
КонецФункции

Связаться с нами можно по телефону:

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

Свежие записи

  • Как выгрузить базу из 1С 8.3 на флешку
  • Поиск и удаление дублей в 1С 8.3
  • Настройка 1С ЗУП 8.3 — пошаговая инструкция
  • Зарплатный проект в 1С 8.3 Бухгалтерия
  • Оказание услуг в 1С 8.3 — пошаговая инструкция
  • Как сделать договор в 1С 8.3: шаблоны договоров

Подписывайтесь на наш YouTube канал, чтобы узнать больше о 1С. Там вы найдете множество видео-уроков. Ждем вас!

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

Как получить объект по ссылке в УФ?

Реально надо. Есть на форме таблица с документами по текущему выбранному элементу. И есть блок где по этот документ редактировать или новый создавать и редактировать и потом сохранять. То есть по любому нужен реквизит ДокНорм типа справочникОбъект. Но как сделать чтобы загрузить в ДокНорм объект из таблицы документов по текущему (там ссылка на справочник)?

&НаКлиенте
Процедура ОткрытьДокументНормирования(_ДСЕ)
Если Элементы.ЭлементыНормирования.ТекущиеДанные<>Неопределено Тогда
Если ЗначениеЗаполнено(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ) Тогда
ДокументНормирования = _ПолучитьОбъект(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ);
КонецЕсли;
КонецЕсли;

&НаСервере
Функция _ПолучитьОбъект(_Ссылка)
Возврат _Ссылка.ПолучитьОбъект();
КонецФункции

Как получить объект по ссылке?

Приветствую, коллеги! В данной статье будет рассмотрена работа с объектами и ссылками в 1С 8.3, в том числе я расскажу о том, как получать объект по ссылке и наоборот – ссылку из объекта.

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

Чаще всего в 1С данные представляются в виде объектов, хотя бывают случаи, когда данные выступают в роли таблицы. Например, рассмотрим объект «Справочник.ИмяСправочника»: он регулирует работу с определённым справочником, но и у самого объекта есть в наличии свойства (в данном случае – это поля с данными), а также присутствуют методы.

Объект в системе 1С создаётся при помощи специального оператора «Новый», после чего используется соответствующий конструктор для создания объектов. Если у типа объекта может существовать несколько конструкторов, то конструктор для создания объекта будет избран при помощи параметров, как показано в строке программного кода ниже:

Рис. 1 Выбор конструктора объектов для создания объектов

2. Менеджеры получения объектов системы 1С

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

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

Рис. 2 Создание объекта менеджером в 1С

3. Ссылки и объекты в 1С 8.3

Работа с объектами системы 1С:Предприятие может производится при помощи ссылки на данные, либо при помощи самого объекта.

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

Работа с ссылками выполняется гораздо быстрее, нежели с объектами.

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

Рис. 3 Функция, чтобы получить ссылку на объект в 1С

Чтобы получить объект по ссылке, нужно воспользоваться функцией следующего вида:

Рис. 4 Функция, чтобы получить объект по ссылке

Также его можно создать с нуля при помощи следующей функции:

Рис. 5 Вариант функции получения объекта по ссылке

4. Как получить объект по ссылке?

Пускай некоторая переменная «СсылкаНаОбъект» принадлежит какому-то типу ссылки. Это может быть справочник, документ, план по счетам и так далее. Опираясь на это, мы используем специальную функция для того, чтобы получить объект по ссылке в 1С. Выглядит она следующим образом:

Рис. 6 Использование переменной СсылкаНаОбъект

5. Получение ссылки по объекту в 1С 8.3

Рассмотрим обратную процедуру, а именно: получение ссылки из объекта. Пусть есть некоторая переменная «Объект», которая является каким-то из объектных типов, тогда функция для получения ссылки из объекта будет выглядеть так:

Рис. 7 Переменная СсылкаНаОбъект для получения ссылки по объекту

Следует отметить, что реквизит «Ссылка» в 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С с именованными свойствами и нужно скопировать их значения, удобно использовать процедуру
ЗаполнитьЗначенияСвойств(КудаКопировать, ОткудаКопировать)
которая копирует значения всех свойств, имена которых совпадают, пример:

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

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