Как найти номенклатуру по уникальному идентификатору

Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID 74
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: Объект не найден (84:bf5600145e3710ab11dda4c605dbe824) .
https://helpf.pro/uploads/img/_1-46z7I4U7Ww.png
В


Битая ссылка, , Уникальный Идентификатор, GUID – Управляемые формы 4
Переделал обработки из статей Битая ссылка, Объект не найден, Уникальный Идентификатор, GUID и Поиск в базе битых ссылок – объект не найден под Управляемые формы. Скачать


Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 4
При попытке удалить запись из регистра сведений – получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить – опять ошибка блокировки 🙁 Путем тестов было вяснено, что проблема


В учетной политике не указан вид тарифа страховых взносов. Как указать? 0
Создайте новую запись учетной политики с начала года – Например 01.01.2013
В учетной смотрите дату начала учетной политики. Поставьте дату начала года (например 01.01.13) закладка появиться должна.
Проверьте Тариф страховых взносов: Меню Зарпла


Выгрузка результата запроса в текстовый файл с разделителями 1
Запрос = Новый Запрос();
Запрос.УстановитьПараметр(” ДатаНач” ,НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(” ДатаКон” ,КонецДня(ДатаКон));
Запрос.УстановитьПараметр(” Организация” ,Организация);
Запрос.Текст = ” ВЫБРАТЬ
| ПоступлениеТоваровУ


Посмотреть все результаты поиска похожих

Пример поиска:

ГУИД = "4b9c2fa7-3824-11ea-ab9e-38d547def818";
ОбъектСсылка = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД));
сообщить(ОбъектСсылка);

если объект не найден:

<Объект не найден> (206:ab9e38d547def81811ea38244b9c2fa7)

если объект найден (наименование объекта):

Желтый НМ 0,05кг

Рубрики

  • Все
  • CRM
    • Битрикс24
  • Frameworks
    • Laravel
    • Bootstrap 4
    • React Native
  • CMS
    • OpenCart 3
    • WordPress
      • Функции
      • Авторские функции
    • 1С-Битрикс
    • MODX
  • АТС
    • Asterisk
  • OS
    • Linux
      • Fedora
      • Linux Mint
      • Manjaro
      • Rocky Linux
      • CentOS
      • Debian
      • Ubuntu
    • Windows
    • macOS
  • Контейнеризация
    • Docker
  • Программирование
    • 1C
    • Javascript
    • Node JS
    • PHP
    • Python
    • Android Studio
    • Web
      • Библиотеки
  • Базы данных
    • MySQL
  • Плагины DW
    • WordPress
  • Редакторы и IDE
    • PHPStorm
    • VS Code
    • Sublime Text 3
    • Notepad++
  • Софт
  • Blockchain

Свежие комментарии

Май 2023

Пн Вт Ср Чт Пт Сб Вс
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  
   YF

30.06.11 – 12:07

Есть идентификатор вида : 209:971a0018f34e121411e03c1de5b80387

Хочу найти что за объект в базе ему соответствует. Как?

   Amiralnar

1 – 30.06.11 – 12:09

А где ты его берешь?

   Axel2009

2 – 30.06.11 – 12:09

шерстить каждый объект отдельно

   Fragster

3 – 30.06.11 – 12:10

209 – идентификатор типа, остальное – перемиксованный объект УникальныйИдентификатор

   YF

4 – 30.06.11 – 12:10

(1) Да после обмена делаю ТИИ оно говорит:

Проверка логической целостности. Последовательность.Взаиморасчеты <Объект не найден> (209:971a0018f34e121411e03c1de5b80387)

   Неверная ссылка на регистратор.

   Рэйв

5 – 30.06.11 – 12:10

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

СсылкаГУИД=Документы.ВидДок.ПолучитьСсылку(НовыйGUID);

   Рэйв

6 – 30.06.11 – 12:11

(4)Если <Объект не найден> , то с чего ты взял, что ты его найдешь если база не нашла?

   YF

7 – 30.06.11 – 12:11

(5) щас попробую

   YF

8 – 30.06.11 – 12:12

(6) Ну я же на копии, у меня есть и оригинал, где обмен не запускал …

   Fragster

9 – 30.06.11 – 12:12

(5) читай ветку

(4) блииин. сделай запрос по регистру “Взаиморасчеты” примерно такой

Выбрать

 Взаиморасчеты.Регистратор

Из

 РегистрНакопления.Взаиморасчеты

Где

 Взаиморасчеты.Регистратор.Номер Есть NULL

получишь твою ссылку. потом по ней отбор набора записей и запись пустого набора

   Fragster

10 – 30.06.11 – 12:13

ну а вообще – после обмена – это нормально, если криво правила настроены, или не криво, но это заложено в логику

   Рэйв

11 – 30.06.11 – 12:14

(9)<Объект не найден>  <> NULL

   Рэйв

12 – 30.06.11 – 12:14

+ Ссылка не пустая. Она битая

   YF

13 – 30.06.11 – 12:15

(10) Самое прикольное, что это стандартный обмен БП 2.0 по организации. Там постоянно вылезают такие бяки

   Defender aka LINN

14 – 30.06.11 – 12:16

Выбрать Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL

Но что ты в базе собрался искать, если проблема как раз в том, что в базе его нет?

   Fragster

15 – 30.06.11 – 12:16

(11) я там не зря написал “.Номер”

   Defender aka LINN

16 – 30.06.11 – 12:18

(11) А не является ли “.Номер” неявным левым соединением?

Варианты ответа:

1) да, является.

2) нет, является.

   Fragster

17 – 30.06.11 – 12:19

(11) и кстати, да:

NULL <> NULL

   SalavatUlaev

18 – 30.06.11 – 12:20

раз объект не найден, то нет его нигде. Если база SQL, восстанавливай бекап, ищи в SQL таблицах средствами SQL, по таблице и поймешь что за объект

   luckyluke

19 – 30.06.11 – 12:21

(18) в копии он может и оказаться, почему же нигде?

   Defender aka LINN

20 – 30.06.11 – 12:22

(18) Ащета запрос из (9) дает тебе готовую ссылку. У которой даже и тип имеется. Для зачем что-то по таблицам SQL искать?

   YF

21 – 30.06.11 – 12:23

+(19) В том и дело, что он где-то есть: либо в базе до обмена, либо в узле откуда обмен принимали …

Вот и хочу найти что это было и почему объект удалился, а из последовательности не изьялся …

   YF

22 – 30.06.11 – 12:24

(20) В запросе (9) обращаемся к регистру накопления, но ТИИ не нашла в нем ссылок на несуществующие объекты …

   SalavatUlaev

23 – 30.06.11 – 12:24

(20) Не увидел 4 сообщение. Думал вообще ничего не известно, кроме гуида

   Fragster

24 – 30.06.11 – 12:25

(22) ну удали из последовательности

   Defender aka LINN

25 – 30.06.11 – 12:41

(22) Ну, ять, в (14) Посмотри. БОЛЬШАЯ разница, ага…

   YF

26 – 30.06.11 – 12:45

(25) Да разница-то небольшая, только что там в последовательности-то найдешь? Ну найдешь битые записи, а что за объект был все равно не известно …

   Fragster

27 – 30.06.11 – 12:53

ПЦ

   Defender aka LINN

28 – 30.06.11 – 13:23

(26) рукалицо…

   Amiralnar

29 – 30.06.11 – 13:30

(17) (NULL IS NULL) = TRUE

   Axel2009

30 – 30.06.11 – 13:51

ТЗ = ПолучитьСтруктуруХраненияБазыДанных();

   Для Каждого Строка Из ТЗ Цикл

       Если Не ЗначениеЗаполнено(Строка.ИмяТаблицы) Тогда Продолжить; КонецЕсли;

       ПозТочки = Найти(Строка.ИмяТаблицыХранения, “.”);

       Если ПозТочки > 0 Тогда

           Продолжить;

           ИмяТаблицы = Лев(Строка.ИмяТаблицыХранения, ПозТочки – 1);

       КонецЕсли;

       ИтоговоеЧисло = “”;

       Для Сч = 1 По СтрДлина(Строка.ИмяТаблицыХранения) Цикл

           Символ = Сред(Строка.ИмяТаблицыХранения, Сч, 1);

           Если Найти(“0123456789”, Символ) > 0 Тогда

               ИтоговоеЧисло = ИтоговоеЧисло + Символ;

           КонецЕсли;

       КонецЦикла;

       Если ИтоговоеЧисло = “209” Тогда

           Сообщить(Строка.ИмяТаблицы);

       КонецЕсли;

   КонецЦикла;

   Defender aka LINN

31 – 30.06.11 – 13:53

(30) А что *это* делает?

   Axel2009

32 – 30.06.11 – 13:58

(30) поможет узнать имя объекта по типу 209..

   Axel2009

33 – 30.06.11 – 14:01

(31) это запустить в базе где отсутствует

(30)+

потом в базе источнике запустить

   Поз = Найти(СтрокаОбъекта, “:”);

   Тип = Лев(СтрокаОбъекта, Поз – 1);

   СтрокаУИД = Сред(СтрокаОбъекта, Поз + 1);

   СтрокаУИД = Сред(СтрокаУИД, 24, 8) + “-” + Сред(СтрокаУИД, 20, 4) + “-” + Сред(СтрокаУИД, 16, 4) + “-” + Сред(СтрокаУИД, 1, 4) + “-” + Сред(СтрокаУИД, 5, 12);

   Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаУИД));

справочники.номенклатура. заменить на имятипа что покажет в обработке

   Defender aka LINN

34 – 30.06.11 – 14:01

(32) см (14)

   Axel2009

35 – 30.06.11 – 14:03

(34) и что это покажет? что “объект не найден <209:971a0018f34e121411e03c1de5b80387>”?? а как понять что за объект конкретно?

   Fragster

36 – 30.06.11 – 14:06

(35) ссылка будет на конкретный объект метаданных

   Defender aka LINN

37 – 30.06.11 – 14:06

(35) рукалицо…

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РАЗЛИЧНЫЕ Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(ТипЗнч(Выборка.Регистратор));
КонецЦикла;
   Fragster

38 – 30.06.11 – 14:06

хоть и отсутствующий

  

Axel2009

39 – 30.06.11 – 14:13

(37) был не прав.

высокое-качество

Пример уникального идентификатора: 4bf85396-cc7a-11ea-9ef0-c86000245adb

   //

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

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

   //Создаём уникальный идентификатор из строки

   СтрокаGUID = “4bf85396-cc7a-11ea-9ef0-c86000245adb”;

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

   //Можно не указывать СтрокаGUID. Программа сгенерирует сама

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

   //

   //Получить ссылку на на объект, зная его GUID

   СсылкаПП = Документы.ПлатежноеПоручениеВходящее.ПолучитьСсылку(НовыйGUID);

   //Создать документ и присвоить ему ГУИД

   СтрокаGUID = “4bf85396-cc7a-11ea-9ef0-c86000245adb”;

   Док = Документы.ПлатежноеПоручениеВходящее.СоздатьДокумент();

   СсылкаДок = Документы.ПлатежноеПоручениеВходящее.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID));

   Док.УстановитьСсылкуНового(СсылкаДок);    

   //

   //Получить ГУИД из COM-объекта

   V83COMConnector = Новый COMОбъект(“V83.COMConnector”);

   БД = V83COMConnector.Connect(ПараметрыПодключения);  

   СтрокаГУИД = БД.XMLСтрока(Док.Ссылка);

Вариант применения в заметке «Сделать из элемента справочника группу»

Функция ПолучитьСсылкуПоИД(ИД, Тип = Неопределено)

Если ИД = “” и Тип <> Неопределено Тогда

// Тип известен, элемент явно пустой, значит нужно вернуть пустую ссылку

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

Если спр <> Неопределено Тогда

Возврат Справочники[Тип].ПустаяСсылка();

КонецЕсли;

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

Если док <> Неопределено Тогда

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

КонецЕсли;

Возврат Неопределено

КонецЕсли;

Попытка

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

Исключение

Возврат Неопределено

КонецПопытки;

// Если тип известен, то ищем только в одной таблице

Если Тип <> Неопределено Тогда

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

Если спр <> Неопределено Тогда

Ссылка = Справочники[Тип].ПолучитьСсылку(УИД);

Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда

Возврат Ссылка

КонецЕсли;

Возврат Неопределено

КонецЕсли;

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

Если док <> Неопределено Тогда

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

Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда

Возврат Ссылка

КонецЕсли;

КонецЕсли;

Возврат Неопределено

КонецЕсли;

// Если тип неизвестен, то перебираем все справочники и документы.

// Это долго. Поэтому тип очень хочется получить.

Для Каждого спр из Метаданные.Справочники Цикл

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

Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда

Возврат Ссылка

КонецЕсли;

КонецЦикла;

Для Каждого док из Метаданные.Документы Цикл

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

Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда

Возврат Ссылка

КонецЕсли;

КонецЦикла;

Возврат Неопределено

КонецФункции

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