Имя: Пароль:
1C
1С v8
Объект не найден
,
0 breezee
 
08.11.17
16:32
Добрый день. Платформа 8.3 с совместимостью 8.1
Есть самописный обмен. Приходят строковые ГУИДы на элементы справочника. При выполнении функции "ЗначениеИзСтрокиВнутр(СтроковыйГУИД) получается "Объект не найден"
1)Подскажите, пожалуйста как проверять что ссылка пустая, при не найденном объекте. Сейчас реализовано через найти(строка(ненайденныйобъект), "объект не найден") > 0. Но, кажется это не совсем верно. Ссылка.Пустая() возвращает ложь.
2)Откуда вообще эти "Объект не найден"? В каких случаях они возникают? Не могу нагуглить. Скиньте статью на ИТС, если есть под рукой, пожалуйста
1 Cyberhawk
 
08.11.17
16:33
ПолучитьОбъект <> Неопределено, либо выбрать запросом
2 Cyberhawk
 
08.11.17
16:33
Но лучше пригласи специалиста
3 breezee
 
08.11.17
16:34
(1) Спасибо, попробую
(2) Спасибо, пробовать не буду)
4 h-sp
 
08.11.17
16:41
(3) "В каких случаях они возникают" - тут вся фишка в том, что  ЗначениеИзСтрокиВнутр сама не создает никаких элементов. А вы рассчитываете, что она сама создаст.
5 breezee
 
08.11.17
16:44
(4) Нет, я на это не рассчитываю, мне интересно почему мне возвращает не пустую ссылку. Я получаю объект методом "ЗначениеИзСтрокиВНутр", если объекта нет(не найден), тогда создаю новый.
Мне интересно, почему именно "объект не найден", а не пустую ссылку. Может, раньше в базе была ссылка с таким ГУИДом и система получает объект который был но теперь не найден или как то еще?
6 breezee
 
08.11.17
16:46
(4) Через "МенеджерСправочника.ПолучитьСсылку(гуид)" так же пустую ссылку получает, если это важно
7 breezee
 
08.11.17
16:46
(6) тоже "объект не найден"* получает
8 3achem
 
08.11.17
16:55
(0)
Синтаксис:

ЗначениеИзСтрокиВнутр(<Строка>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Системное представление значения в строковом виде.
Возвращаемое значение:

Тип: Произвольный.
Значение, полученное из строкового системного представления.
Описание:

Преобразует значение из строкового системного представления во внутреннее.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Строковое представление данных имеет специальный системный формат, использующий идентификацию данных внутри одной информационной базы.
Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется.

В чём вопрос то?
9 GANR
 
08.11.17
16:57
(0) ОбщегоНазначения.СсылкаСуществует в помощь
10 aleks_default
 
08.11.17
16:58
(0)Это значит что, условно говоря, идентификаторы типов объектов в разных базах не совпадают, т. е. в базе-источнике есть, например, справочник Номенклатура с идентификатором типа ааа, а в базе приемнике такой же справочник Номенклатура может иметь совершенно другой идентификатор типа - ббб.  
В СП в примечании к этому методу сказано:
"Строковое представление данных имеет специальный системный формат, использующий идентификацию данных внутри одной информационной базы".
Т.е. метод не предназначен для обмена между базами
11 breezee
 
08.11.17
17:06
(10) Понял, спасибо! у меня может что-то поломаться, если я буду использовать этот метод? Обмен идет с SQL, SQL передает какой-то странный ГУИД, который имеет формат "что-то, 36 символов чего-то, еще 36 символов чего-то". Программист SQL сказал что во вторых 36 символах ГУИД 1С-ного справочника. Я получаю этот ГУИД и система падает с ошибкой преобразования к типу "УникальныйИдентификатор". Единственное найденно решение - "ЗначениеИзСтрокиВнутр"
13 breezee
 
08.11.17
17:18
(12) Спасибо, но тут, вроде, такая реклама пусть и случайная запрещена. Да и я сам программист, просто не нашел нужной информации, обратился на форум, мне помогли
14 h-sp
 
08.11.17
17:26
(13) вся фишка в том, что там никогда не может возникнуть пустая ссылка. Только Объект не найден.
15 breezee
 
08.11.17
17:32
(14) Понял, думал если объекта нет - ссылка пустая. Спутал...
16 Smile 8D
 
09.11.17
09:03
(5) Оба указанные вами метода получают ссылку по указанному ГУИДу. Они нужны именно для этого. Далее, например, можно создать объект по этой ссылке. Если бы возвращалась пустая ссылка, то не было бы возможности создать объект с нужным идентификатором, а это часто необходимо для обменов.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс