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

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 48
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ


1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш


COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине.
Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)):
НаКлиенте
Процедура Загрузки()
ПутьКБазе=» D:ВашаБаза1с77″ ;
Пользователь=


Cклонения по падежам 6
НаКлиенте
Процедура Команда1(Команда)
ФИО = » Иванов Иван Иванович» ;
Падеж = 2;
Пол = 1;
Результат = СклонениеФИО(ФИО, Падеж, пол);
Сообщить(Результат);
КонецПроцедуры
НаСервере
Функция СклонениеФИО(ФИО, Падеж, пол)
Результат = » » ;


Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора


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

   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) был не прав.

Способ может быть не самый лучший, но работает. Если мы знаем, в каких метаданных мы ищем, то все предельно просто:

Создаем уникальный идентификатор с имеющимся у нас текстом ГУИДа и пользуемся замечательной функцией «ПолучитьСсылку».

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

НайденнаяСсылка = <НашиМетаданные>.<НашаТаблица>.ПолучитьСсылку(ГУИД);

Если мы не знаем, к каким метаданным относится объект с нашим ГУИДом, то придется перебрать все метаданные и таблицы. Как правило задача эта довольно своеобразная, но если уж вам понадобилось искать объект по всей базе по ГУИДу, то элементарная база у вас есть, а написать алгоритм для обхода всех метаданных для вас труда не составит.

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

ГУИД = "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  

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Katywka

Дата регистрации: 21.01.2010
Сообщений: 155

1С 8.1<br>Как найти элемент справочника по уникальному идентификатору????<br>

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20872

Синтакс-помощником не пробовали пользоваться? <br>З,Ы,<br>СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)<br>ПолучитьСсылку (GetRef)<br>Синтаксис:<br>ПолучитьСсылку(<Уникальный идентификатор>) <br>Параметры:<br><Уникальный идентификатор> (необязательный)<br>Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка. <br>Возвращаемое значение:<br>Тип: СправочникСсылка. <br>Описание:<br>Формирует ссылку из значения типа УникальныйИдентификатор.<br>Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор. <br>Примечание:<br>Если параметр не указан, то будет сформирована новая уникальная ссылка. <br>См. также:<br>СправочникСсылка, метод УникальныйИдентификатор

Показывать по
10
20
40
сообщений

Понравилась статья? Поделить с друзьями:
  • Как найти знак кавычки на клавиатуре
  • Как найти аналитическую функцию онлайн
  • Как найти имя актера по фотографии
  • Как найти площадь четырехугольника описанного около окружности
  • Как найти интервал в ворде 2010