|   |   | 
| 
 | есть вопрос по поводу параметра в запросе по УникальномуИдентификатору | ☑ | ||
|---|---|---|---|---|
| 0
    
        байт 28.10.11✎ 13:01 | 
        Здравствуйте, коллеги, есть следующий вопрос по поводу установки в запрос поиска по УникальномуИдентификатору, кто-нибудь делал такое что-то не получается?     | |||
| 1
    
        Fragster гуру 28.10.11✎ 13:01 | 
        рекомендую автору прочитать то, что он написал.     | |||
| 2
    
        Лефмихалыч 28.10.11✎ 13:02 | 
        ты хочешь ссылку найти по гуиду в запросе?     | |||
| 3
    
        el-gamberro 28.10.11✎ 13:03 | 
        Как получить ГУИД в запросе?     | |||
| 4
    
        байт 28.10.11✎ 13:04 | 
        (2) в базе у клиента болтается элемент <Объект не найден...> хочу исключить его в отчете, установив параметр в запросе.     | |||
| 5
    
        Fragster гуру 28.10.11✎ 13:04 | 
        (4) это неправильный подход     | |||
| 6
    
        Diabolicum 1C 28.10.11✎ 13:05 | 
        (4) Какой-то не совсем корректный подход. Может нужно разобраться что это за объект и почему он не найден?     | |||
| 7
    
        Fragster гуру 28.10.11✎ 13:05 | 
        а вообще - условие в запросе 
  Поле.Ссылка Есть не NULL | |||
| 8
    
        el-gamberro 28.10.11✎ 13:05 | 
        (7) Не сработает     | |||
| 9
    
        Sammo 28.10.11✎ 13:06 | 
        (4) не правильный подход :)
  А так - это объект, по которому ссылка есть, а самого объекта нет. Как это обработать в запросе - в поиск | |||
| 10
    
        Fragster гуру 28.10.11✎ 13:06 | 
        (8) та ладно!     | |||
| 11
    
        Diabolicum 1C 28.10.11✎ 13:06 | 
        Единственное что можно сделать - это получить по ГУИДу ссылку, а уже ее подставлять в запрос.     | |||
| 12
    
        Diabolicum 1C 28.10.11✎ 13:07 | 
        (10) не сработает. Ссылкf не будет NULL     | |||
| 13
    
        el-gamberro 28.10.11✎ 13:07 | 
        (10) А. ты там точку и ссылку указал. Ну тогда да. :)     | |||
| 14
    
        байт 28.10.11✎ 13:07 | 
        (6) база древняя пережило много поколений программистов и поэтому разбираться времени нет нужно просто не выводить его     | |||
| 15
    
        el-gamberro 28.10.11✎ 13:07 | 
        А может и нет :)     | |||
| 16
    
        Serginio1 28.10.11✎ 13:09 | ||||
| 17
    
        Diabolicum 1C 28.10.11✎ 13:10 | 
        (15) Запись с ссылкой на удаленный объект есть в базе, соответственно, будет выбрана и NULL никогда не будет. Иначе не возник бы сам вопрос.
  (0) получи по ГУИДу ссылку, а уже ее подставлять в запрос в качестве параметра. Тип объекта надеюсь тебе известен? (16) А точно 8.2? | |||
| 18
    
        Milok 28.10.11✎ 13:10 | 
        Поле.Ссылка <> Неопределено     | |||
| 19
    
        Fragster гуру 28.10.11✎ 13:10 | 
        Запрос = Новый Запрос;
  Запрос.УстановитьПараметр("УИД", Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор)); Запрос.Текст = "ВЫБРАТЬ | ВЫРАЗИТЬ(&УИД КАК Справочник.Контрагенты) КАК Поле1"; Сообщить(Запрос.Выполнить().Пустой()); Запрос.Текст = "ВЫБРАТЬ | ВЫРАЗИТЬ(&УИД КАК Справочник.Контрагенты) КАК Поле1 |ГДЕ | ВЫРАЗИТЬ(&УИД КАК Справочник.Контрагенты).Ссылка ЕСТЬ НЕ NULL "; Сообщить(Запрос.Выполнить().Пустой()); | |||
| 20
    
        Serginio1 28.10.11✎ 13:13 | 
        (17) На тот момент был 8.2.12.96
  Но на 14 тоже вроде тестили, та ошибка | |||
| 21
    
        Diabolicum 1C 28.10.11✎ 13:15 | 
        (20) Там, скорее всего, действительно что-то связанное с самим типом УникальныйИдентификатор. По сути - что есть УИД у платформы? binary?     | |||
| 22
    
        байт 28.10.11✎ 13:16 | 
        (17) Платформа 8.1.14.15.    
  я делал так: СтрокаGUID = "11dfdcc9-a917-fe31-fde7-4902ad446cf0"; ГУИД = Новый УникальныйИдентификатор(СтрокаGUID); Запрос ..... Запрос.УстановитьПараметр("Ссылка", Справочники.Контрагенты.ПолучитьСсылку(УникальныйИдентификатор)); но вместо этого он подставляет другой гуид, может есть возможность его найти? | |||
| 23
    
        Serginio1 28.10.11✎ 13:17 | 
        (4) Проверяй на поиск значения реквизита  в таблице хранения через левое соединение с Есть Null, или на вхождение в подзапрос     | |||
| 24
    
        Diabolicum 1C 28.10.11✎ 13:19 | 
        (22) Кстати (23), верно замечено.     | |||
| 25
    
        Diabolicum 1C 28.10.11✎ 13:20 | 
        (22) И что значит "вместо этого он подставляет другой гуид". Вместо какого? И какой это - другой?     | |||
| 26
    
        Serginio1 28.10.11✎ 13:21 | 
        (21) bynary(16) v8: _SimpleKey и его установка     | |||
| 27
    
        Serginio1 28.10.11✎ 13:22 | 
        Да и гуид в 1С по другому формируется Гений1С гдето писал 
  Функция ПолучитьGUIDПоУникальномуИдентификатору(UUID1) UUID=ВРЕГ(UUID1); ч1 = Сред(UUID,20,4); ч2 = Сред(UUID,25,12); ч3 = Сред(UUID,15,4); ч4 = Сред(UUID,10,4); ч5 = Сред(UUID,1,8); Возврат "0x" + ч1 + ч2 + ч3 + ч4 + ч5; КонецФункции | |||
| 28
    
        Serginio1 28.10.11✎ 13:24 | ||||
| 29
    
        Diabolicum 1C 28.10.11✎ 13:25 | 
        (27) Неверно. В цитате описано преобразование GUID 1С в UID SQL Server. Вот как раз это и есть подводный камень для метода (21). Где-то в сети попадалось обширное обсуждение этого вопроса.     | |||
| 30
    
        Diabolicum 1C 28.10.11✎ 13:27 | 
        Дело в том, что 1С некорректно работает в том случае, если в поля binary(16) записывается значение полученное функцией NewID(). Там огромный пост этому посвещен был. В итоге сошлись на том, что байты UID SQL Server нужно переставлять в ту последовательность, которая принята 1С.     | |||
| 31
    
        Diabolicum 1C 28.10.11✎ 13:28 | 
        (27) Собственно, что-то опять нас куда-то не туда понесло:)     | |||
| 32
    
        байт 28.10.11✎ 13:32 | 
        (25) например вместо "ad446cf0-4902-fde7-11df-dcc9a917fe31" я получаю в результате "11dfdcc9-a917-fe31-fde7-4902ad446cf0".     | |||
| 33
    
        Sammo 28.10.11✎ 13:32 | 
        Кстати, еще как вариант внутреннее соединение с таблицей занчения.
  Например, реквизит тип справочник номенклатура, тогда соединение со справочником номенклатура по ссылке | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |