Как получить уникальный идентификатор объекта в 1с

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

  1. Он должен был уникальным;
  2. С его помощью можно легко определить, какой объект он идентифицирует.

Уникальность

Разговор про уникальность необходимо начинать с того, что такое GUID (Globally Unique Identifier) и как этот GUID формируется.

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

Каждый идентификатор содержит 128 бит информации, записанный в виде шестнадцатиричного числа ( в 1С имеет вид a96ca0cd-b164-11e6-80c2-00155d001fe4). Простенький код (Рис.1) позволяет получить УИ любого элемента базы данных.

Как получить уникальный идентификатор объекта в 1СРис.1

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

Идентификация

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

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

  • Уникальный идентификатор (УИ), можно называть его GUID;
  • Типа ссылки (описание объекта метаданных).

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

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

Область использования уникального идентификатора

Исходя из свойств этого поля, вырисовываются и направления его применения:

  1. Обмен данными между конфигурациями;
  2. Поиск необходимого объекта;
  3. Восстановление неправильно удаленных объектов.

Один интересный факт: до записи объекта в базу данных 1С он имеет идентификатор, состоящий из нолей (00000000-0000-0000-0000-000000000000).

Обмен данными

Если говорить об обмене данными между разными конфигурациями 1С8, то здесь существует регистр сведений Значения свойств объектов, который позволяет хранить практически любую дополнительную информацию. Задав для справочника «Номенклатура» дополнительное свойство «УИ 82», и присвоив ему тип «Строка» (рис.2), мы тем самым можем сохранить в него уникальный идентификатор из другой базы.

Как получить уникальный идентификатор объекта в 1СРис.2

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

Поиск объекта

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

Восстановление объектов

Зачастую при формировании отчетов пользователи сталкиваются со строкой (рис.3).

Как получить уникальный идентификатор объекта в 1СРис.3

Причин её возникновения может быть несколько, главная – игнорирование ссылочной целостности базы данных при удалении объектов. Рассмотрев строку поближе и зная о GUID и уникальных идентификаторах можно заметить, что она состоит из двух частей:

  1. Несколько цифр до двоеточия;
  2. Шестнадцатеричный код после.

Последовательность действий по восстановлению:

  1. В первую очередь необходимо выяснить, какой тип данных у удаленного объекта. Для этого можно: уточнить тип поля у отчета, посмотреть, какие дополнительные отчеты открываются при щелчке по нему, попробовать сформировать подобный отчет на сохраненной копии. В нашем случае это элемент справочника «Номенклатура», в первичных документах у табличных частей будет вид (Рис.4); Как получить уникальный идентификатор объекта в 1СРис.4
  2. Проверить в выгрузках, в старых копиях наличие удаленного элемента;
  3. Выгрузить его поля и табличные части в любой удобный для последующей загрузки формат (xml, dbf, xls);
  4. Загрузить данные в базу.

Очень важно понимать, что возможности по использованию уникального ID не ограничиваются этими тремя направлениями.

Как получить уникальный идентификатор объекта в 1С

Источник: http://blog.it-terminal.ru/programmirovanie-1s/unikalnyj-identifikator.html

Получение уникального идентификатора объекта в 1С

Если при работе в 1С вам встречалось сообщение «Объект не найден», то пришло время ознакомиться с понятием «Уникальный идентификатор объекта». Рассмотрим это понятие и то, как получить уникальный идентификатор объекта в 1С.

Как получить уникальный идентификатор объекта в 1С

ГУИД предназначен для предотвращения конфликтов при программировании.

Содержание

  • 1 Что это такое
  • 2 ГУИД в 1С
  • 3 Операции с ключами
  • 4 Ошибки

Что это такое

Прежде всего, глобальный уникальный идентификатор (ГУИД) — это набор символов. В тексте он представляется записью из шестнадцатеричных цифр. Эта группа заключена в фигурные скобки, между собой они разделяются дефисами и всего их — тридцать две. Алгоритм, с помощью которого генерируется значение такого кода, был создан фирмой Microsoft (Майкрософт, англ.).

Применяется эта фишка, прежде всего, во избежание конфликтов при программировании (в этой публикации нас интересует именно этот момент). Самим алгоритмом кодирования неповторимость ключа не гарантируется. Однако общее количество возможных ключей слишком велико (3,4028×1038) — соответственно вероятность совпадения ничтожно мала.

Выглядит это примерно так:

{30a69443-e271-4c2f-9087-af8598796674}

Таким образом, применение такой системы призвано различать по GUID (Globally Unique Identifier — Глобальный Уникальный Идентификатор) две (возможно, несовместимые) версии одного компонента (элемента).

ИНТЕРЕСНО: В начале создания алгоритма генерации по одной из частей кода можно было определить компьютер, на котором создавались файлы (по MAC-адресу). Однако позднее это свойство алгоритма было якобы изменено (хотя кто знает…).

Каждый объект (object, англ.) системы в 1С характеризуется ссылкой, которая является типом данных. Как и все элементы общей системы — хранится в справочнике. Логически она состоит из его имени и GUID.

 Уникальность имени контролируется системой — нельзя создать второй справочник с уже имеющимся именем.

 Таким образом, object является неповторимой сущностью в системе за счёт исключительности его обеих составляющих.

Как получить уникальный идентификатор объекта в 1С

Операции с ключами

Уникальный идентификатор в 1С назначается в момент первичной записи элемента. Уже в процессе самой регистрации можно видеть ключ, который будет привязан к нему. Можно в этот процесс вмешаться и вручную до момента регистрации изменить его по своему желанию. Узнать нужный ГУИД можно через созданный запрос в «Конструкторе запроса» (это стандартный метод для любого элемента):

Читайте также:  Как работать в программе coreldraw

СправочникСсылка=Справочники.ИмяСправочника.НайтиПоНаименованию(«Наименование»);GUID=СправочникСсылка.УникальныйИдентификатор();

  • Полученное значение при использовании такого метода будет иметь специальный тип.
  • Для преобразования к строке нужно употребить: «Строка(Параметр)».
  • Получить новый ГУИД можно с помощью такого запроса:

GUID=НовыйУникальныйИдентификатор();

Преобразование в код ссылки элемента можно методом УникальныйИдентификатор():

GUID = Контрагент.УникальныйИдентификатор();

Ошибки

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

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

Источник: https://nastroyvse.ru/programs/review/poluchenie-unikalnogo-identifikatora-obekta-v-1s.html

1С:Вопросы и ответы » Поиск объекта по идентификатору 1С 8.3

Как получить уникальный идентификатор объекта в 1СВозвращает ссылку на найденный справочник или документ или Неопределено, если объекта нет.
Параметры
ИД — строковое представления уникального идентификатора

Тип — наименование вида справочника или документа. Благо их наименования не пересекаются.

Функция ПолучитьСсылкуПоИД(ИД, Тип = Неопределено)
Если ИД = «» и Тип Неопределено Тогда
// Тип известен, элемент явно пустой, значит нужно вернуть пустую ссылку
спр = Метаданные.Справочники.Найти(Тип);
Если спр Неопределено Тогда
Возврат Справочники[Тип].ПустаяСсылка();
КонецЕсли;

док = Метаданные.Документы.

Найти(Тип);
Если док Неопределено Тогда
Возврат Документы[Тип].ПустаяСсылка();
КонецЕсли;
Возврат Неопределено
КонецЕсли;

Попытка
УИД = Новый УникальныйИдентификатор(ИД);
Исключение
Возврат Неопределено
КонецПопытки;

// Если тип известен, то ищем только в одной таблице
Если Тип Неопределено Тогда
спр = Метаданные.

Справочники.Найти(Тип);
Если спр Неопределено Тогда
Ссылка = Справочники[Тип].ПолучитьСсылку(УИД);
Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() Неопределено Тогда
Возврат Ссылка
КонецЕсли;
Возврат Неопределено
КонецЕсли;

док = Метаданные.Документы.Найти(Тип);
Если док Неопределено Тогда
Ссылка = Документы[Тип].

ПолучитьСсылку(УИД);
Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЕсли;
Возврат Неопределено
КонецЕсли;

// Если тип неизвестен, то перебираем все справочники и документы.
// Это долго. Поэтому тип очень хочется получить.
Для Каждого спр из Метаданные.

Справочники Цикл
Ссылка = Справочники[спр.Имя].ПолучитьСсылку(УИД);
Если Ссылка.ПолучитьОбъект() Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЦикла;

Для Каждого док из Метаданные.Документы Цикл
Ссылка = Документы[док.Имя].ПолучитьСсылку(УИД);
Если Ссылка.

ПолучитьОбъект() Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЦикла;

Возврат Неопределено
КонецФункции

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  1. Функция ПолучитьСсылкуПоИД(ИД, Тип = Неопределено)
  2. Если ИД = «» и Тип Неопределено Тогда
  3. // Тип известен, элемент явно пустой, значит нужно вернуть пустую ссылку

спр = Метаданные.Справочники.Найти(Тип);

  • Если спр Неопределено Тогда
  • Возврат Справочники[Тип].ПустаяСсылка();
  • КонецЕсли;

док = Метаданные.Документы.Найти(Тип);

  1. Если док Неопределено Тогда
  2. Возврат Документы[Тип].ПустаяСсылка();
  3. КонецЕсли;
  4. Возврат Неопределено
  5. КонецЕсли;
  6. Попытка
  7. УИД = Новый УникальныйИдентификатор(ИД);
  8. Исключение
  9. Возврат Неопределено
  10. КонецПопытки;
  11. // Если тип известен, то ищем только в одной таблице
  12. Если Тип Неопределено Тогда

спр = Метаданные.Справочники.Найти(Тип);Если спр Неопределено ТогдаСсылка = Справочники[Тип].ПолучитьСсылку(УИД);Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() Неопределено Тогда

  • Возврат Ссылка
  • КонецЕсли;
  • Возврат Неопределено
  • КонецЕсли;

док = Метаданные.Документы.Найти(Тип);Если док Неопределено ТогдаСсылка = Документы[Тип].ПолучитьСсылку(УИД);Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() Неопределено Тогда

  1. Возврат Ссылка
  2. КонецЕсли;
  3. КонецЕсли;
  4. Возврат Неопределено
  5. КонецЕсли;
  6. // Если тип неизвестен, то перебираем все справочники и документы.

// Это долго. Поэтому тип очень хочется получить.Для Каждого спр из Метаданные.Справочники ЦиклСсылка = Справочники[спр.Имя].ПолучитьСсылку(УИД);

  • Если Ссылка.ПолучитьОбъект() Неопределено Тогда
  • Возврат Ссылка
  • КонецЕсли;
  • КонецЦикла;
  • Для Каждого док из Метаданные.Документы Цикл

Ссылка = Документы[док.Имя].ПолучитьСсылку(УИД);

  1. Если Ссылка.ПолучитьОбъект() Неопределено Тогда
  2. Возврат Ссылка
  3. КонецЕсли;
  4. КонецЦикла;
  5. Возврат Неопределено
  6. КонецФункции

Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы 

Источник: http://www.advanter.net/poisk-obekta-po-identifikatoru/

Операции с ГУ�Д (GUID) в 1с

ГУ�Д расшифровывается как Глобальный Уникальный �Дентификатор.

Этот идентификатор имеет каждая запись базы данных каждого элемента конфигурации 1с.

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

ГУ�Д(GUID) в 1с.

Как получить ГУ�Д.
_ГУ�Д = СсылкаНаОбъект.Уникальный�дентификатор();

Пример:

НоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду(«00013»);
Если НЕ НоменклатураСсылка.Пустая() Тогда
  Сообщить(«GUID = » + НоменклатураСсылка.

Уникальный�дентификатор());
КонецЕсли;

Как по ГУ�Ду получить ссылку.

_ГУР�Р” = «4cd43e12-e877-11e6-80cb-000c29be4d7a»;
_Ссылка = Документы.АктСверкиВзаиморасчетов.

ПолучитьСсылку(Новый Уникальный�дентификатор(_ГУ�Д));

Создать элемент справочника с определенным ГУ�Дом

Процедура КнопкаВыполнитьНажатие(Кнопка)
   

    СтрокаДляGUID = «67e558f3-902f-11e0-8cb5-001e0bdd2031»;

 

    Попытка

    GUID = Новый УникальныйР�дентификатор(СтрокаДляGUID);
    РЎРїСЂ = Справочники.Контрагенты.ПолучитьСсылку(GUID);
   

    ОбъектСпр = Справочники.Контрагенты.СоздатьЭлемент();

    ОбъектСпр.УстановитьСсылкуНового(РЎРїСЂ);
   

    ОбъектСпр.Наименование = «РљРѕРЅС‚рагент СЃ Гуидом 67e558f3-902f-11e0-8cb5-001e0bdd2031»;

    ОбъектСпр.Записать();
   

    ГУР�Р” = СокрЛП(ОбъектСпр.Ссылка.УникальныйР�дентификатор());

    Сообщить( ОбъектСпр.Наименование + «, созданный ГУР�Р” «+ГУР�Р”+ «, нужен был Р�Р” «+СтрокаДляGUID );
    Р�сключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
   

КонецПроцедуры

Источник: http://www.1c-forever.ru/3_001_00013.html

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

Обмен данными

Подробности Категория: Введение

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

de80b7c8-aa22-11dc-a0f4-0011d85708ff

Т.е. это набор из 32 шестнадцатеричных цифр разделенных дефисами.

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

  • Разберем для примера надпись: (36:9c4e0022642fda9811e10393c0d776fd)
  • Для начала узнаем какой тип объекта был удален, для этого используем метод ПолучитьСтруктуруХраненияБазыДанных(), он возвращает таблицу значений(по умолчанию в формате SDBL) где указано соответсвие внутренних идентификаторов и объектов метаданных.
  • Например можно написать такой код:
  • ТЗ = ПолучитьСтруктуруХраненияБазыДанных();ТЗ.ВыбратьСтроку();
  • В ней мы находим идентификатор  который в конце содержит 36 (цифры до двоеточия), но только не в составе числа(Document2836), а точное соответсвие. В нашем случае это следующая строка:
Reference36 Справочник.Номенклатура
  1. Значит удаленный элемент был элементом справочника «Номенклатура».
  2. Как Вы заметили внутри скобок находится тип объекта и уникальный идентификатор строкой.
  3. Теперь мы можем на одной из архивных копий найти удаленный элемент, добавив дефисы в имеющуюся у нас строку идентификтора:

ГУИД = Новый УникальныйИдентификатор(«9c4e0022-642f-da98-11e1-0393c0d776fd»);
СсылкаНаУдаленныйЭлемент = Справочники.Номенклатура.ПолучитьСсылку(ГУИД);

Зная все значения полей мы можем вручную или с помощью обработок воссоздать удаленный элемент,  но у них будет одно главное отличие — разные Уникальные идентификаторы. А если мы хотим восстановить элемент, то и идентификатор нужно восстановить тот же. Для этого нужно использовать метод «УстановитьСсылкуНового«, например так:

Читайте также:  Какой роутер ростелеком поставить

ВосстанавливаемыйЭлемент =  Справочники.Номенклатура.СоздатьЭлемент();
ГУИД = Новый УникальныйИдентификатор(«9c4e0022-642f-da98-11e1-0393c0d776fd»);
СсылкаНаУдаленныйЭлемент = Справочники.Номенклатура.ПолучитьСсылку(ГУИД);
ВосстанавливаемыйЭлемент.УстановитьСсылкуНового(СсылкаНаУдаленныйЭлемент);

Теперь можно заполнить остальные поля.

Источник: http://1s-portal.ru/index.php/stati/obmendannymi/index.php/component/content/article/64.html

Коннектор к 1С. Обзор полезных обработок 1С для настройки интеграции и миграции

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

Скачать архив с обработками можно по ссылке: Полезные обработки 1С.zip

Чтобы запустить обработку:

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

/RunModeOrdinaryApplication

2. В меню Файл выберите пункт Открыть и в открывшемся окне выберите нужный файл.

Обработка «Поиск объекта 1С по GUID»

Обработка позволяет:

  • определить GUID любого объекта 1С (записи справочника, документа и пр.);
  • по заданному GUID найти ссылку на объект 1С (запись справочника документа и пр.).

Чтобы определить GUID объекта 1С:

1. Запустите обработку «Поиск ссылки по GUID».

2. В поле Ссылка нажмите на кнопку T, выберите тип объекта.

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

4. Нажмите на кнопку Показать GUID. В результате в поле GUID отобразится уникальный идентификатор объекта 1С.

 

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

Обработка «Консоль запросов»

Обработка позволяет составить и выполнить запрос на языке запросов 1С. Используется для написания вычислений в событии коннектора «При выгрузке из 1С».

Рассмотрим, как выполняется обработка на примере запроса по получению юридического адреса контрагента:

1. Запустите обработку «Консоль запросов».

2. В основное окне обработки добавьте текст запроса:

ВЫБРАТЬ
КИ.Представление КАК Адрес
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
КИ.Объект = &Объект
И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)

Запрос можно составить самостоятельно или с помощью конструктора запросов (пункт контекстного меню Конструктор запросов):

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

3. Чтобы выполнить запрос, нажмите кнопку Выполнить (F7). Результат выполнения запроса отобразится в правом нижнем окне.

Обработка «Выполнение произвольного кода»

Обработка позволяет быстро проверить вычисления на языке 1С, не создавая новую обработку в конфигурации 1С.

Чтобы проверить вычисление:

1. Запустите обработку «Выполнение произвольного кода».

2. В окне редактора напишите код вычислений:

3. Для выполнения кода нажмите на кнопку Выполнить.

Ниже рассмотрим примеры использования обработки «Выполнение произвольного кода».

Пример 1

Необходимо написать вычисления для события коннектора «При выгрузке из 1С» по получению юридического адреса контрагента. Текст события представляет собой xml-текст, в котором задаются вычисляемые реквизиты 1С. Подробнее см. в справке Коннектор к «1С:Предприятие 8» События и фильтры.

Ранее с помощью обработки «Консоль запросов» мы создали и отладили запрос:

ВЫБРАТЬ
КИ.Представление КАК Адрес
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
КИ.Объект = &Объект
И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)

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

Для отладки вычислений добавьте определение переменной Источник:

Источник = Справочники.Контрагенты.НайтиПоКоду(«000000007»);

И вывод результата:

Сообщить(Значение);

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

В итоге событие «При выгрузке из 1С» будет выглядеть следующим образом:

60
Выч_ЮридическийАдрес
60

Запрос = Новый Запрос(«ВЫБРАТЬ
| КИ.Представление КАК Адрес
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КИ
|ГДЕ
| КИ.Объект = &Объект
| И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
| И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)»);
Запрос.УстановитьПараметр(«Объект», Источник);
Выборка = Запрос.Выполнить().Выбрать();
Значение = ?(Выборка.Следующий(), СокрЛП(Выборка.Адрес), «»);

Пример 2

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

Для этого выполните отладку вычисления, в котором запускается сценарий DIRECTUM по кнопке из 1С:

Обработка «Регистрация изменений для обмена»

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

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

Рассмотрим возможности обработки наглядно в 1С:

1. Запустите обработку «Регистрация изменений для обмена»

2. В верхнем поле выберите узел обмена, например, DIRECTUM

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

К объектам можно применить действия:

  • Зарегистрировать все – включает все объекты плана обмена в узел. Действие необратимо;
  • Добавить регистрацию (по кнопке из контекстного меню объекта) – позволяет зарегистрировать в 1С конкретные записи;
  • Зарегистрировать по одному – удаляет все существующие регистрации и регистрирует в плане обмена по одному объекту каждого типа. Действие необратимо;
  • Удалить всю регистрацию – очищает сведения о регистрации узла плана обмена. Действие необратимо;
  •  – удаляет регистрацию произвольного объекта информационной базы. При этом можно создать запрос и удалить запись о регистрации всех объектов, полученных в результате его выполнения;
  •  – добавляет регистрацию произвольного объекта информационной базы. При этом можно создать запрос и добавить запись о регистрации всех объектов, полученных в результате его выполнения;
  • Показать изменения, зарегистрированные для данного типа – показывает объекты информационной базы, зарегистрированные в узле обмена. Перед нажатием кнопки нужно выбрать необходимый тип объектов;
  • Результат стандартной выгрузки – показывает, как будет выглядеть объект информационной базы, если его выгрузить в формате XML. Перед нажатием нужно выбрать необходимый объект:
Читайте также:  Как отключить icloud на iphone

Обработка «Выгрузка и загрузка данных XML»

Универсальная обработка позволяет выполнить полную или частичную выгрузку данных информационной базы в xml-файл. Обработку можно использовать для миграции данных из 1С.

Сценарии использования обработки:

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

Обработка может выгружать записи объектов:

  • Константы;
  • Справочники;
  • Документы;
  • Последовательности;
  • ПланыВидовХарактеристик;
  • ПланыСчетов;
  • ПланыВидовРасчета;
  • РегистрыСведений;
  • РегистрыНакопления;
  • РегистрыБухгалтерии;
  • РегистрыРасчета;
  • БизнесПроцессы;
  • Задачи;
  • ПланыОбмена.

 

Особенности обработки:

  • Фильтр можно накладывать на любой из реквизитов справочника. Например, настроить фильтрацию по справочнику Внутренние документы по полю ВидДокумента = Договор.
  • Вместе с основным справочником можно выгружать связанные записи других справочников. Например, настроить выгрузку, чтобы вместе с внутренними документами выгружались связанные записи справочника Корреспонденты.

Обработка «Массовая регистрация изменений для обмена»

Обработку удобно использовать при тестировании интеграции с 1С.

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

1. Запустите обработку «Массовая регистрация изменений для обмена».

2. Выберите необходимый справочник и нажмите на кнопку Выполнить.

 

Источник: https://club.directum.ru/post/189365

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GUID = СправочникСсылка.УникальныйИдентификатор();

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

  1. GUID назначается в момент первой записи объекта 1С. Уже до записи можно узнать GUID, который будет назначен объекту 1С при записи:
  2. Также перед записью можно назначить свой GUID. Это бывает полезным, например, при обмене данными:
  3. Реквизиты
  4. При работе со значениями, возможно столкнуться со следующими способами хранения и доступа к данным:
  • Переменная – созданная в модуле программистом, нетипизированная
  • Реквизит объекта 1С (справочника, документа), добавленный в конфигураторе – хранится в базе данных, строго типизирован
  • Реквизит формы – поле на форме, строго типизирован.

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

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

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

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

Ограничения

Источник: http://howknow1c.ru/jazyk-1s/obekty-1s-i-ssylki-1s.html

Ссылка на основную публикацию
Adblock
detector