Получение GUID объекта, а также всех сведений объекта по обмену
Задачи пользователя - Поиск данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Изначально обработка создавалась для решения простой задачи - получение GUID объекта. Но так как я часто имею дело с обменом (по большей части между ERP и Бухгалтерией), то все больше возникала необходимость модифицирования данной обработки и расширения ее функционала. В какой-то момент стало ясно, что она может стать хорошим помощником в определении места объекта в обмене.
Таким образом, инструмент эволюционировал и стал решать следующие задачи:
- Получение GUID по навигационной ссылке объекта.
- Получение навигационной ссылки из GUID, если объект существует в базе.
- Вывод значений (а также их типов) всех реквизитов и табличных частей объекта в удобном формате. Даже пустые табличные части отображаются, чтобы пользователь понимал, какие метаданные в принципе есть у объекта.
- Определение, какая ссылка(-и) из регистра "Публичные идентификаторы синхронизируемых объектов" соответствует(-ют) заданному GUID.
- Определение, какая ссылка из базы соответствует заданному GUID.
- Предоставление информации о возможной коллизии ссылок (разные ссылки из регистра и базы соответствуют заданному GUID).
- Обнаружение битых ссылок в регистре по заданному идентификатору.
- Вывод информации о том, что в регистре у конкретного узла содержится несколько разных ссылок у одного идентификатора.
- И еще несколько мелких задач, которые вытекают из вышеописанных пунктов.
Процесс поиска объекта достаточно прост:
- сначала объект ищется в базе среди всех метаданных;
- далее обработка ищет объект в регистре "Публичные идентификаторы синхронизируемых объектов" (далее - ПИСО) по GUID. Если поиск осуществлялся по навигационной ссылке, то для этого у найденного объекта сначала определяется идентификатор;
- определение возможных типов ошибок;
- определение, сколько ссылок принадлежит идентификатору в ПИСО и вывод этой информации, если включена соответствующая настройка;
- отображение значений реквизитов объекта, если включена соответствующая настройка.
Далее будут кратко описаны сценарии, которые поддерживает данная обработка, и скриншоты для них соответственно. Все сценарии работают независимо от способа поиска: по GUID или по навигационной ссылке.
1. Если объект обнаружился и в базе, и в ПИСО. При этом найденная ссылка базы совпадает с той ссылкой, которая обнаружилась в регистре:

Справа от поля "GUID" расположена кнопка копирования в буфер обмена идентификатора.
2. Введены некорректные данные (навигационная ссылка или идентификатор не удовлетворяют правилам ввода) или объект не был найден ни в базе, ни в регистре:

3. Объект найден только в базе или только в регистре:


4. Если в регистре несколько ссылок соответствует указанному GUID, этот GUID принадлежит какому-то объекту в базе, но самого объекта в регистре нет:

Команда "Открыть регистр" откроет ПИСО с отбором по указанному идентификатору.
5. Коллизия ссылок. Введенному GUID в базе и в регистре соответствуют разные ссылки:

Данная ситуация далеко не всегда является ошибкой, однако знать о том, что у объекта сложилась такая ситуация, чрезвычайно важно.
Также стоит уточнить, что в таком случае команды открытия объекта будут открывать ссылку найденную именно в регистре, так как обмен, как правило, делает приоритет в сторону регистра ПИСО.
В любом случае есть возможность открытия любой из ссылок чуть ниже этих команд.
6. Найдены битые ссылки в регистре, наряду с рабочей:

Команда "Открыть регистр" открывает ПИСО с отбором по идентификатору.
7. Найденной ссылке в регистре ПИСО соответствуют несколько разных идентификаторов:

"Таблица количества GUIDов ссылок" в принципе выводит все связи у конкретного идентификатора. То есть, в этой таблице: 1) отобразятся все ссылки, которые нашлись в регистре у GUID; 2) количество соответствующих идентификаторов каждой найденной ссылки.
Также стоит отметить, что есть возможность открыть ПИСО с отбором по выделенной ссылке:

8. Найденные ссылки у идентификатора отличаются:

На этом скриншоте видно, что идентификатору соответствуют аж 4 ссылки и все разные: одна в базе и три других в регистре. При этом каждой ссылке из регистра соответствует только один идентификатор.
9. Отображение реквизитов объекта:

Если значение ссылочного типа, то по двойному нажатию ЛКМ эта ссылка откроется.
Справа от значения обозначен его тип.
10. Отображение табличных частей объекта:

Ширина колонок выставляется следующим образом: обработка определяет самое широкое значение из всех строк для конкретной колонки, далее определяет ширину заголовка колонки и в конечном итоге сравнивает, что из этого больше. Таким образом, все значения будут помещаться в ячейки колонок.
Также из скриншота видно, что отображаются даже те табличные части, которые не заполнены.
Реквизиты и данные табличных частей выводятся вообще по всем найденным объектам. Например, если в регистре идентификатору соответствует 3 ссылки, а сам GUID принадлежит 4-ой ссылке, то данные будут выведены для всех 4-ех объектов. Даже, если в базе объект не будет найден, а в регистре есть ссылки по указанному GUID - значения реквизитов будут выведены. Такой же принцип с коллизией.
Если нужно открыть регистр ПИСО с отбором по найденной ссылке, то это можно сделать в "Таблице количества GUIDов ссылок". В случае с "Непредвиденной ситуацией" или при нахождении битых ссылок, регистр открывается с отбором по идентификатору.
Обработкой пользовался в основном в Бухгалтерии 3.0 (начиная с версии 3.0.172.24), ERP 2 (начиная с версии 2.5.17.160) и ЗУП 3.х (начиная с версии 3.1.36.39).
Платформы, на которых запускалась обработка: 8.3.25.1336 - 8.3.27.2325.
Вступайте в нашу телеграмм-группу Инфостарт