Восстановление ссылок по GUID (универсальная)

13.07.12

Задачи пользователя - Корректировка данных

Недавно после нестандартного обмена данными я увидел знакомое <Объект не найден>  в полях некоторых элементов базы-приемника и задался вопросом, как можно быстро в базе-источнике найти объект, от которого уехал только ID ? Особенно если реквизит в базе-приемнике составного типа или вообще его тип не ясен... И в ответ написал обработку.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Восстановление ссылок по GUID
.epf 14,21Kb
522
522 Скачать (1 SM) Купить за 1 850 руб.

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

Реализовано три режима: поиск ссылки, создание объекта БД и получение ссылки для объекта БД.

 

Поиск ссылки

Идентификатор, вводимый в поле "Известный GUID" может иметь различные виды:

1. Объект не найден (25:888ba76e-9ccf-aed3-4a2f-1d8152ba0f17)

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

2. 25:888ba76e-9ccf-aed3-4a2f-1d8152ba0f17

Частный случай пункта 1.

3. 888ba76e-9ccf-aed3-4a2f-1d8152ba0f17

Обычная ссылка, полученная применением функции Строка() к объекту типа "УникальныйИдентификатор()". Может где-нибудь храниться, например в регистре "Соответствие объектов информационных баз".

4. 888ba76e9ccfaed34a2f1d8152ba0f17

Тоже, что и в пункте 3, без дефисов.

Можно вводить (копипастить) в любом формате. Следует отметить, что если в ID присутствует номер таблицы из структуры хранения БД, то объект определяется из этой таблицы. Например, здесь это номер "25" - число перед ":" в идентификаторе.

Далее - нажимаем кнопку "Найти ссылку" и в поле "Результат" появится ссылка на объект БД (если он найдется, если нет, то "битая"). Если объект не найден, то его можно создать - на второй закладке.

Итак, поиск осуществляется:

- если есть номер таблицы, то сразу в этой таблице;

- если номера нет, то по порядку во всех ссылочных типах БД.

 

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

Все тоже самое, только кнопка другая - "Создать объект". Система пытается создать объект и установить для него введенный ID. Если удалось, то пользователю предлагается заполнить форму этого объекта и записать его в БД.

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

 

Получение ссылки

По выбранной ссылке на объект БД система получает ее уникальный идентификатор в 3-х вариантах (для удобства).

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

 

Области использования обработки

Сколько раз я видел у клиентов криво настроенный обмен, в результате которого появлялась куча битых ссылок. При анализе таких обменов (особенно XML) важно понимать, что за объект скрывается за битой ссылкой в базе-источнике. Особенно когда реквизит приемника составного типа или вообще любая ссылка. Эта обработка быстро ответит на данный вопрос. Без нее нудно тратилось время на выяснение сего момента, зачастую набивая код в "табло", т.к. нужно было быстро понять, в чем дело, а обработку писать не хотелось.

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

Еще бывали моменты, когда есть список ID-шников и попробуй определи, что это за объекты.

Полезно использовать мою обработку вместе с обработками поиска битых ссылок. 

Обработка написана под 8.2, но можно использовать и для 8.1 с предварительной конвертацией. Формы - обычные.

 

Планируемые доработки

1. Получение ID для любой ссылки. Реализовано.

2. Возможность передавать список ID-шников для поиска ссылок в базе-источнике.

3. Получение ID ссылки на объект в другой базе через COM-соединение и наоборот.

См. также

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    4835    38    20    

46

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34341    109    152    

75

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    111832    673    175    

712

Корректировка данных Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.2 от 09.06.2024!

19200 руб.

26.08.2018    52775    16    61    

55

Закрытие периода Корректировка данных Программист Пользователь Платформа 1С v8.3 Система компоновки данных 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    51511    175    29    

127

Корректировка данных Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Налоговый учет Налог на прибыль Платные (руб)

Обработка служит для: выравнивания бухгалтерского и налогового учета на определенную дату по выбранным счетам; закрытия остатков по выбранным счетам; обнуления налогового учета (ПР, ВР также будут обнулены)

2880 руб.

05.05.2024    756    11    0    

7

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

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

6000 руб.

22.01.2025    450    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Walther_008 232 13.07.12 17:06 Сейчас в теме
Добавь флажок отключения проверок при записи, а то вот ситуация:
Ошибка при восстановлении объекта:

Не заполнено наименование реквизита.
{ВнешняяОбработка.ВосстановлениеСсылокПоGUID.МодульОбъекта(266)}: Ошибка при вызове метода контекста (Записать): Не удалось записать: "Дополнительные реквизиты"!

Конфигурация: БП 2.0.37
Тип битой ссылки: ПВХ.СвойстваОбъектов
2. Alien_RS_Forever 434 14.07.12 11:34 Сейчас в теме
(1) Хорошее замечание ) обновил обработку, но не совсем так. Непосредственная запись в базу новых объектов подразумевает под собой соблюдение правил этой базы для ее объектов и ее логики работы. Например, установка номеров документов или кодов справочников, не говоря уже о реквизитах, заполняемых по умолчанию для новых создаваемых объектов. Или установки владельца для подчиненного элемента. Поэтому на этапе создания объекта БД по GUID, когда уже известен тип объекта, я сделал вызов формы этого объекта. Пользователь сам заполняет нужные поля и, при необходимости, записывает элемент в БД.
Также внесены мелкие исправления и доработки.
3. Новенький_2209 07.11.12 23:16 Сейчас в теме
4. Alien_RS_Forever 434 08.11.12 11:58 Сейчас в теме
(3) а причём тут эти ссылки ? обработка написана не опираясь на указанные статьи
5. Новенький_2209 09.11.12 18:15 Сейчас в теме
(4) и что? Вы же статью написали? Скорее всего люди, прочитавшие ее, и скачавшие вашу обработку, возможно захотят узнать еще что-то по этой теме. Эти ссылки как раз в кассу.
7. Новенький_2209 11.11.12 20:18 Сейчас в теме
Мда.

Ну автор вы. Надеюсь политики сокрытия и изобретательства себя окупит.

Удачи.
8. Alien_RS_Forever 434 12.11.12 00:38 Сейчас в теме
(7) тролли, сгиньте..
разве автор обязан отчитываться перед вами за разработки, которые он написал и "за просто так" их выложил для всеобщего пользования ? если хотите - пользуйтесь разработкой, если не хотите - не пользуйтесь..
набивать себе рейтинг пустыми комментами - дело неблагодарное..

удачи !
9. Alien_RS_Forever 434 12.11.12 00:40 Сейчас в теме
(7) и да, новенький_2209, судя по логину вы недавно на сайте, а здесь общаются люди грамотные и знающие русский язык.. держите планку.
10. Odinsov 11 02.04.14 13:32 Сейчас в теме
Спасибо, пригодилось.
11. pvb2003 11.09.14 13:20 Сейчас в теме
Для УФ будет версия (нужно УТ 11.1 и БП 3.0)?
13. Alien_RS_Forever 434 18.11.14 01:54 Сейчас в теме
(11) pvb2003, возможно будет, но пока писать не планировал
12. wingnut 17.11.14 14:35 Сейчас в теме
Все замечательно, вот только хорошо бы написать, что при восстановлении из строки GUID надо переворачивать.
Так что для строки Объект не найден (25:888ba76e9ccfaed34a2f1d8152ba0f17)
GUID будет выглядеть
1d8152ba0f17-4a2f-aed3-888b-a76e9ccf

Я понимаю, что автор подразумевает, что это все уже знают. Однако желательно это тоже указать в тексте.
1cprogr_nsk; METAL; +2 Ответить
14. Alien_RS_Forever 434 18.11.14 02:01 Сейчас в теме
(12) wingnut, вы что-то путаете, никакого "переворачивания" там нет.. посмотрите код обработки - там явно написано, каким образом формируется строка гуида для восстановления ссылки.. обработку писал давно, но эту часть только что специально проверил )
15. An-rey 26.05.15 19:20 Сейчас в теме
Не отработала у меня обработочка. Купил в надежде на успешный результат, но, его не получил.
Может поправите? Последовательность выполнения во вложенном файле.
Прикрепленные файлы:
гуид_подразд.doc
16. METAL 302 17.02.16 15:41 Сейчас в теме
(15) An-rey, у меня та же проблема, только в УТ10.3 со справочником Номенклатура
А именно, при поиске по
<Объект не найден> (68:ba460050568268dc11e370615466d1f3)
вроде бы результат есть, внизу пишет Номенклатура, то есть тип определился верно, и в поле Результат что-то есть, но там опять же битая ссылка, правда другая
<Объект не найден> (68:11e370615466d1f368dc5682ba460050)
См.скрин http://i.imgur.com/UAoDRkR.png

При этом точно известно, что нужный объект в искомой базе есть
И если его указать на третьей закладке и получить GUID и помощью этой обработки, то получается вот такое
<Объект не найден> (68:5466d1f3-7061-11e3-ba46-0050568268dc)
И вот по этой строке уже нормально находит!

(12) wingnut, похоже, Вы правы!
17. METAL 302 17.02.16 16:05 Сейчас в теме
Таким образом, перед поиском строку из 1С:Предприятия
<Объект не найден> (68:ba46-0050568268dc-11e3-7061-5466d1f3)
надо преобразовать в
<Объект не найден> (68:5466d1f3-7061-11e3-ba46-0050568268dc)

Если представить ГУИД в исходной строке как 5 групп цифр:
1. 4 символа
2. 12 симв.
3. 4
4. еще 4
5. и 8

В итоге алгоритм напрашивается такой
1. Сперва разбить строку на эти группы символов
2. Потом переставить группы в таком порядке
5-4-3-1-2
3. Полученное вставить в обработку из данной публикации

Протестировал вручную, на моём примере работает!

Надеюсь, автор в ближайшее время поправит разработку!
19. Alien_RS_Forever 434 17.02.16 19:19 Сейчас в теме
(17) METAL, ничего преобразовывать не надо. Изначально (посмотрите по тексту описания обработки выше) описан формат битой ссылки 8-4-4-4-12, т.е. как Вы написали во втором варианте, к которому преобразовывали ( <Объект не найден> (68:5466d1f3-7061-11e3-ba46-0050568268dc) ). Другой вопрос - откуда Вы взяли битую ссылку такого рода "<Объект не найден> (68:ba460050568268dc11e370615466d1f3)", которая на Ваш взгляд перевёрнутая и некорректная ?
20. Alien_RS_Forever 434 17.02.16 19:20 Сейчас в теме
(17) METAL, обработка писалась под 8.2 ещё, возможно что-то в 8.3 или её подрелизах поменялось.
18. METAL 302 17.02.16 16:41 Сейчас в теме
Роман (автор), отправил Вам в личку доработанный вариант, можете использовать при желании
21. b-dm 175 26.02.18 17:20 Сейчас в теме
Так и не получилось найти ни одну ссылку по GUID. Не рекомендую обработку к использованию.
22. METAL 302 28.02.18 10:53 Сейчас в теме
(21) Дмитрий, вот пжаааллллста, попробуйте, только прошу - отпишитесь о результатах!
Прикрепленные файлы:
ВосстановлениеСсылокПоGUID - Беляев.epf
gala2009; +1 Ответить
23. gala2009 31 25.10.18 08:04 Сейчас в теме
(22) Спасибо! воспользовалась вашей обработкой, работает. ссылку по guid нашла, создать объект (удаленное подразделение) получилось
Оставьте свое сообщение