Битая ссылка, <Объект не найден>, Уникальный Идентификатор, 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
- Linux
- Контейнеризация
- Docker
- Программирование
- 1C
- Javascript
- Node JS
- PHP
- Python
- Android Studio
- Web
- Библиотеки
- Базы данных
- MySQL
- 1С
- Плагины DW
- WordPress
- Редакторы и IDE
- PHPStorm
- VS Code
- Sublime Text 3
- Notepad++
- Софт
- Blockchain
Свежие комментарии
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
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 |
30.06.11 – 12:07
Есть идентификатор вида : 209:971a0018f34e121411e03c1de5b80387
Хочу найти что за объект в базе ему соответствует. Как?
1 – 30.06.11 – 12:09
А где ты его берешь?
2 – 30.06.11 – 12:09
шерстить каждый объект отдельно
3 – 30.06.11 – 12:10
209 – идентификатор типа, остальное – перемиксованный объект УникальныйИдентификатор
4 – 30.06.11 – 12:10
(1) Да после обмена делаю ТИИ оно говорит:
Проверка логической целостности. Последовательность.Взаиморасчеты <Объект не найден> (209:971a0018f34e121411e03c1de5b80387)
Неверная ссылка на регистратор.
5 – 30.06.11 – 12:10
НовыйGUID = Новый УникальныйИдентификатор(ТвойГуид);
СсылкаГУИД=Документы.ВидДок.ПолучитьСсылку(НовыйGUID);
6 – 30.06.11 – 12:11
(4)Если <Объект не найден> , то с чего ты взял, что ты его найдешь если база не нашла?
7 – 30.06.11 – 12:11
(5) щас попробую
8 – 30.06.11 – 12:12
(6) Ну я же на копии, у меня есть и оригинал, где обмен не запускал …
9 – 30.06.11 – 12:12
(5) читай ветку
(4) блииин. сделай запрос по регистру “Взаиморасчеты” примерно такой
Выбрать
Взаиморасчеты.Регистратор
Из
РегистрНакопления.Взаиморасчеты
Где
Взаиморасчеты.Регистратор.Номер Есть NULL
получишь твою ссылку. потом по ней отбор набора записей и запись пустого набора
10 – 30.06.11 – 12:13
ну а вообще – после обмена – это нормально, если криво правила настроены, или не криво, но это заложено в логику
11 – 30.06.11 – 12:14
(9)<Объект не найден> <> NULL
12 – 30.06.11 – 12:14
+ Ссылка не пустая. Она битая
13 – 30.06.11 – 12:15
(10) Самое прикольное, что это стандартный обмен БП 2.0 по организации. Там постоянно вылезают такие бяки
14 – 30.06.11 – 12:16
Выбрать Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL
Но что ты в базе собрался искать, если проблема как раз в том, что в базе его нет?
15 – 30.06.11 – 12:16
(11) я там не зря написал “.Номер”
16 – 30.06.11 – 12:18
(11) А не является ли “.Номер” неявным левым соединением?
Варианты ответа:
1) да, является.
2) нет, является.
17 – 30.06.11 – 12:19
(11) и кстати, да:
NULL <> NULL
18 – 30.06.11 – 12:20
раз объект не найден, то нет его нигде. Если база SQL, восстанавливай бекап, ищи в SQL таблицах средствами SQL, по таблице и поймешь что за объект
19 – 30.06.11 – 12:21
(18) в копии он может и оказаться, почему же нигде?
20 – 30.06.11 – 12:22
(18) Ащета запрос из (9) дает тебе готовую ссылку. У которой даже и тип имеется. Для зачем что-то по таблицам SQL искать?
21 – 30.06.11 – 12:23
+(19) В том и дело, что он где-то есть: либо в базе до обмена, либо в узле откуда обмен принимали …
Вот и хочу найти что это было и почему объект удалился, а из последовательности не изьялся …
22 – 30.06.11 – 12:24
(20) В запросе (9) обращаемся к регистру накопления, но ТИИ не нашла в нем ссылок на несуществующие объекты …
23 – 30.06.11 – 12:24
(20) Не увидел 4 сообщение. Думал вообще ничего не известно, кроме гуида
24 – 30.06.11 – 12:25
(22) ну удали из последовательности
25 – 30.06.11 – 12:41
(22) Ну, ять, в (14) Посмотри. БОЛЬШАЯ разница, ага…
26 – 30.06.11 – 12:45
(25) Да разница-то небольшая, только что там в последовательности-то найдешь? Ну найдешь битые записи, а что за объект был все равно не известно …
27 – 30.06.11 – 12:53
ПЦ
28 – 30.06.11 – 13:23
(26) рукалицо…
29 – 30.06.11 – 13:30
(17) (NULL IS NULL) = TRUE
30 – 30.06.11 – 13:51
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТЗ Цикл
Если Не ЗначениеЗаполнено(Строка.ИмяТаблицы) Тогда Продолжить; КонецЕсли;
ПозТочки = Найти(Строка.ИмяТаблицыХранения, “.”);
Если ПозТочки > 0 Тогда
Продолжить;
ИмяТаблицы = Лев(Строка.ИмяТаблицыХранения, ПозТочки – 1);
КонецЕсли;
ИтоговоеЧисло = “”;
Для Сч = 1 По СтрДлина(Строка.ИмяТаблицыХранения) Цикл
Символ = Сред(Строка.ИмяТаблицыХранения, Сч, 1);
Если Найти(“0123456789”, Символ) > 0 Тогда
ИтоговоеЧисло = ИтоговоеЧисло + Символ;
КонецЕсли;
КонецЦикла;
Если ИтоговоеЧисло = “209” Тогда
Сообщить(Строка.ИмяТаблицы);
КонецЕсли;
КонецЦикла;
31 – 30.06.11 – 13:53
(30) А что *это* делает?
32 – 30.06.11 – 13:58
(30) поможет узнать имя объекта по типу 209..
33 – 30.06.11 – 14:01
(31) это запустить в базе где отсутствует
(30)+
потом в базе источнике запустить
Поз = Найти(СтрокаОбъекта, “:”);
Тип = Лев(СтрокаОбъекта, Поз – 1);
СтрокаУИД = Сред(СтрокаОбъекта, Поз + 1);
СтрокаУИД = Сред(СтрокаУИД, 24, 8) + “-” + Сред(СтрокаУИД, 20, 4) + “-” + Сред(СтрокаУИД, 16, 4) + “-” + Сред(СтрокаУИД, 1, 4) + “-” + Сред(СтрокаУИД, 5, 12);
Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаУИД));
справочники.номенклатура. заменить на имятипа что покажет в обработке
34 – 30.06.11 – 14:01
(32) см (14)
35 – 30.06.11 – 14:03
(34) и что это покажет? что “объект не найден <209:971a0018f34e121411e03c1de5b80387>”?? а как понять что за объект конкретно?
36 – 30.06.11 – 14:06
(35) ссылка будет на конкретный объект метаданных
37 – 30.06.11 – 14:06
(35) рукалицо…
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РАЗЛИЧНЫЕ Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(ТипЗнч(Выборка.Регистратор));
КонецЦикла;
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Строка(Док.Ссылка); |
Вариант применения в заметке «Сделать из элемента справочника группу»
Функция ПолучитьСсылкуПоИД(ИД, Тип = Неопределено)
Если ИД = “” и Тип <> Неопределено Тогда
// Тип известен, элемент явно пустой, значит нужно вернуть пустую ссылку
спр = Метаданные.Справочники.Найти(Тип);
Если спр <> Неопределено Тогда
Возврат Справочники[Тип].ПустаяСсылка();
КонецЕсли;
док = Метаданные.Документы.Найти(Тип);
Если док <> Неопределено Тогда
Возврат Документы[Тип].ПустаяСсылка();
КонецЕсли;
Возврат Неопределено
КонецЕсли;
Попытка
УИД = Новый УникальныйИдентификатор(ИД);
Исключение
Возврат Неопределено
КонецПопытки;
// Если тип известен, то ищем только в одной таблице
Если Тип <> Неопределено Тогда
спр = Метаданные.Справочники.Найти(Тип);
Если спр <> Неопределено Тогда
Ссылка = Справочники[Тип].ПолучитьСсылку(УИД);
Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда
Возврат Ссылка
КонецЕсли;
Возврат Неопределено
КонецЕсли;
док = Метаданные.Документы.Найти(Тип);
Если док <> Неопределено Тогда
Ссылка = Документы[Тип].ПолучитьСсылку(УИД);
Если Не Ссылка.Пустая() и Ссылка.ПолучитьОбъект() <> Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЕсли;
Возврат Неопределено
КонецЕсли;
// Если тип неизвестен, то перебираем все справочники и документы.
// Это долго. Поэтому тип очень хочется получить.
Для Каждого спр из Метаданные.Справочники Цикл
Ссылка = Справочники[спр.Имя].ПолучитьСсылку(УИД);
Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЦикла;
Для Каждого док из Метаданные.Документы Цикл
Ссылка = Документы[док.Имя].ПолучитьСсылку(УИД);
Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда
Возврат Ссылка
КонецЕсли;
КонецЦикла;
Возврат Неопределено
КонецФункции