Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Почему 1С не позволят брать GUID в запросе?

Почему 1С не позволят брать GUID в запросе?
Я
   DeadLine
 
29.05.18 - 11:06
Собственно вопрос-и есть заголовок темы.
Почему 1С не позволят брать GUID в запросе,почему нельзя было каждому объекту конфигурации добавить автоматическое поле "УникальныйИдентификатор" -тип строка.
 
 
   1Сергей
 
1 - 29.05.18 - 11:07
(0) потому, что не нужно это одинеснику
   novichok79
 
2 - 29.05.18 - 11:08
(0) зачем вам GUID? что им можно сделать чего нельзя сделать ссылкой? искать битые объекты прямо в запросе?
   VS-1976
 
3 - 29.05.18 - 11:08
(0) По тому что ссылка в упакованном виде лежит ( 16 байт ), а GUID это текстовое представление этих 16 байт.
Ты можешь сам сделать текстовое поле для GUID и записывать его в текстовом виде
   1Сергей
 
4 - 29.05.18 - 11:08
(2) скорее всего самопальная синхра с внешним источником/приемником
   ildary
 
5 - 29.05.18 - 11:11
(0) потому что это появилось только в 8.3.12
   D3O
 
6 - 29.05.18 - 11:12
(2) есть задачи, в которых в пределах одного объекта (справочник, документ) существуют подчиненные ТЧ. вот тогда очень сильно выручает УИД. Но в языке запросов поддержки полноценной до сих пор нет.
   1Сергей
 
7 - 29.05.18 - 11:13
(6) >>есть задачи, в которых в пределах одного объекта (справочник, документ) существуют подчиненные ТЧ

Чо? Нахрена гуид табличной части? там есть ссылка
   VS-1976
 
8 - 29.05.18 - 11:14
(6) Не понимаю зачем вам в текстовом виде GUID? Эта запись только для человека актуальна.
   Navigator
 
9 - 29.05.18 - 11:17
Может еще и на запись его открыть? )

Есть хорошая статья на эту тему
http://catalog.mista.ru/public/416675/
   Вася Теркин
 
10 - 29.05.18 - 11:18
По той же причине почему массивы индексировать нельзя
"Одинэсники тупые" (с) БЖ-С
Некультурные вопросы задаешь...
 
 Рекламное место пустует
   impulse9
 
11 - 29.05.18 - 11:18
GUID ИМХО нужен только в задачах обмена, и всяких технических типа дублирования предопределенных, которые решаются без запросов
   Вася Теркин
 
12 - 29.05.18 - 11:19
(6) У ТЧ нет ГУИД, так задумано.
   Вася Теркин
 
13 - 29.05.18 - 11:20
+(12) Если надо ГУИД делайте подчиненный справочник или журнал документов. Смотря чего хотите связать.
   VS-1976
 
14 - 29.05.18 - 11:20
(6) В общем забейте. Ссылка это и есть GUID просто текстовое представление
   Вася Теркин
 
15 - 29.05.18 - 11:21
(7) У ТЧ нет ссылки отдельно на каждую строку... Он про это
   Lama12
 
16 - 29.05.18 - 11:22
(0) Тип "GUID" и тип "Строка" это разные типы и хранятся они по разному.
   VS-1976
 
17 - 29.05.18 - 11:23
(15) Там есть offset = НомерСтроки. А ссылка чтобы найти ввсе подчинённые. Иначе нужно было бы иметь поле GUID + Parent, а это увеличение объёма данных. НомерСтроки это 2 байта ( 65535 )
   VladZ
 
18 - 29.05.18 - 11:24
(0) Озвучь задачу, для которой нужен сабж.
   1Сергей
 
19 - 29.05.18 - 11:24
(17) не, по номеру строки нельзя идентифицировать строки в двух ТЧ. Обычно для этого используется отдельное поле
   Вася Теркин
 
20 - 29.05.18 - 11:24
(14) Да. Одни объекты со ссылкой, их можно сохранять отдельно. Другие (тч) - неотъемлемая часть объекта. Отдельно сослаться на неё нельзя.
Неудобство только когда с другими системами дружишь. Но это для защиты сделано.
А так бы в СКЛ сделал себе фронтсистему, объектам гуиды 1совские записал, зарегистрировал как источник данных - и полная интеграция.
Но нет. К пространству объектов 1С так просто не присосешься. Они так заставляют все решение на платформе 1С делать.
(17) А если поменять строки местами?
   Вафель
 
21 - 29.05.18 - 11:27
ГУИД в запросе нужен, только не строка, а тип ГУИД.
Да что там говорить. тип ГУИД даже во временную нельзя выбрать
   Вася Теркин
 
22 - 29.05.18 - 11:28
(19) Справочник отдельный со своими оригинальными гуидами и каждая строка ТЧ гуидом нумеруется.
   1Сергей
 
23 - 29.05.18 - 11:28
(21) аргументируй
   VS-1976
 
24 - 29.05.18 - 11:28
(20) Сделано так ( НомерСтроки ) чтобы уменьшить объём индексов и табличной части. Если поменять местами то ничего страшного в этом нет. Если ты будешь передавать объект полностью, а в приёмнике замещать то всё будет хорошо.
   Вася Теркин
 
25 - 29.05.18 - 11:28
(21)Нельзя, конкуренты в 6 сек понапишут 1С:Несовместимо...
   Lama12
 
26 - 29.05.18 - 11:29
А где ТС?
   Вафель
 
27 - 29.05.18 - 11:30
(25) почему нельзя? Что сложного реализовать
Выбрать Ссылка.УникальныйИдентификатор()
   Вася Теркин
 
28 - 29.05.18 - 11:30
(24) Речь о ссылках на строку.
Ничего не надо помещать. Ты ТС сабж видел?
Он хочет ссылки на каждую строку иметь. в (6) все написано...
   VS-1976
 
29 - 29.05.18 - 11:30
(21) Зачем тебе это нужно?
   Вафель
 
30 - 29.05.18 - 11:31
Для обменов всяких очень нужно
   Cool_Profi
 
31 - 29.05.18 - 11:32
(18) "Озвучь задачу, для которой нужен сабж."
У меня, например, в стороннюю программу данные выгружаются, а потом обратно загружаются. И там нужен уникальный ИД. Сделали отдельным реквизитом
   Вася Теркин
 
32 - 29.05.18 - 11:32
(27) В запросах нельзя обращаться к ГУИД напрямую. Если перед выполнением запроса получать Внешний источник данных и перебирать его строки и по присланому ГУИДУ искать объект 1С. то тормоза будут смертельные.
   Вафель
 
33 - 29.05.18 - 11:32
да если загуглить: как получить гуид сразу становится понятно - нужно
 
 
   Вася Теркин
 
34 - 29.05.18 - 11:33
Так защищаются от врагов
   Вафель
 
35 - 29.05.18 - 11:33
например задача сравнения данных 2х копий баз. с гуидами бы решалась без обработки
   1Сергей
 
36 - 29.05.18 - 11:33
(30) (31) ну, вот. как я и говорил, самописные обмены. постобработкой запроса легко получаются гуиды
   Вася Теркин
 
37 - 29.05.18 - 11:33
при поиске по каждому гуиду будет отдельный и весьма тяжелый запрос.
   VS-1976
 
38 - 29.05.18 - 11:34
(28) Да какая проблема. Добавляешь в табличную часть поле с типом УникальныйИдентификатор и вот тебе GUID на каждой строке. При записи можно генерировать GUID, если он не сформирован ранее. В этом поле включаешь индекс для быстрого поиска и всё.
   Вася Теркин
 
39 - 29.05.18 - 11:34
(38) Так и есть, но это же "обман" платформы.
   Вафель
 
40 - 29.05.18 - 11:34
(38) собственно 1с так и делает. взять ту же ерп
   VS-1976
 
41 - 29.05.18 - 11:35
(39) зато объём базы меньше. Там где нужно прикрутил и хорошо
   Вася Теркин
 
42 - 29.05.18 - 11:36
(41) Тогда надо на чистом СКЛ писать. Прикрутил - и хорошо...
   Вася Теркин
 
43 - 29.05.18 - 11:36
И объем меньше, и овцы сыты.
   1Сергей
 
44 - 29.05.18 - 11:37
(42) чтобы продавец на кассе в скульной консольке чеки вбивала?
   1Сергей
 
45 - 29.05.18 - 11:37
запросами
   МихаилМ
 
46 - 29.05.18 - 11:38
более того 1с8:  не позволяет в запросе ссылку сравнивать с другими типами.

программ не ругается просто в зависимости знака сравнения
выдает истину или ложь.
   timurhv
 
47 - 29.05.18 - 11:44
(2) Битые ссылки можно запросом получить :)
   VS-1976
 
48 - 29.05.18 - 11:44
(46) ТипЗначения в запросе вроде как работает для ссылок
   VS-1976
 
49 - 29.05.18 - 11:44
(47) Левым соединением не вопрос получить битые ссылки
 
 Рекламное место пустует
   zva
 
50 - 29.05.18 - 11:49
Кто-нить это ковырял?
8.3.12  http://downloads.v8.1c.ru/content/Platform/8_3_12_1440/1cv8upd.htm#e4150059-9163-11e7-a3f7-0050569f678a

Работа с запросами.
В языке запросов расширена поддержка значений следующих типов: УникальныйИдентификатор, ХранилищеЗначений.
Реализована возможность создания временных таблиц на основании таблиц значений, содержащих колонки вышеуказанных типов.

Реализована возможность использовать поля и выражения типа УникальныйИдентификатор в операции множественного В.
   Гипервизор
 
51 - 29.05.18 - 11:56
(50) Наверное он (5)
   Вася Теркин
 
52 - 29.05.18 - 12:02
1С:Предприятие 8.3 (8.3.10.2252)
Это край земли. Дальше не ходили. Упадешь, наверное...
   igorPetrov
 
53 - 29.05.18 - 12:03
ТС все тот же старый тролль, и все повелись на него ))
   Вася Теркин
 
54 - 29.05.18 - 12:07
Всем было весело. Но тут пришел ты...
   StanLee
 
55 - 29.05.18 - 12:42
Недавно понадобился GUID в запросе чтобы на сайт (самописный у клиента) отправлять уникальный ид-шник номенклатуры. Можно конечно после запроса отдельно его получать функцией и пихать уже на сайт, или наколхозить чтото другое уникальное (не лень, но зачем, когда есть GUID), но в запросе было бы изящнее, сразу получил все данные и спихнул. Да и побыстрее мальца.
   craxx
 
56 - 29.05.18 - 12:44
(55) ГУИД это строка. 36 символов.
   Гипервизор
 
57 - 29.05.18 - 12:45
(55) Так вам для сайта требуется именно УникальныйИдентификатор или его строковое представление?
   craxx
 
58 - 29.05.18 - 12:52
(57) вот и я об том же
   Ботаник Гарден Меран
 
59 - 29.05.18 - 12:53
О, забыл что релиз с гуидами в запросах уже не тестовый. Пора допиливать сравнивалку.
   StanLee
 
60 - 29.05.18 - 13:09
(57) строковое
   Cool_Profi
 
61 - 29.05.18 - 13:12
(56) гуид это не строка. Это бинарное значение в 26 байт
   Cool_Profi
 
62 - 29.05.18 - 13:12
*36
   novichok79
 
63 - 29.05.18 - 13:45
ну и что что уникальныйидентификатор можно в запросе. его ведь из ссылки получить надо, а он получается через функцию в языке 1С. так что смысла 0 от нововведения, разве что теперь изъ*бываться не нужно если таблица значений содержит колонки таких типов.
   ERWINS
 
64 - 29.05.18 - 13:48
в 8.3.13 это сделали
   VS-1976
 
65 - 29.05.18 - 14:32
(63) Да на уровне пост обработки можно сделать, когда с базы втаскивается ссылка. Всё равно ИТОГИ так же рассчитываются в пост обработке запроса.
   DeadLine
 
66 - 29.05.18 - 14:50
Прочитал комменты,это поле бы например очень упростило бы некоторые процедуры в Конвертации,когда нужна постобработка,если бы могли бы создать для ПКО -ПКС, УИД-УИД(лично я с этим столкнулся).Самое главное я не понимаю в чём такая уж сложность для разработчиков платформы.
   Вафель
 
67 - 29.05.18 - 14:52
(63) там наоборот, ссылку получают из гуида
   Вафель
 
68 - 29.05.18 - 14:53
(62) 16 байт или 36 символов строки
   Tateossian
 
69 - 29.05.18 - 15:00
(66) Ты путаешь суть объектных и необъектных данных. Табличная часть - необъектные данные. Но уникальность у нее имеется. В SQL вообще нет понятия объекта.
   Tateossian
 
70 - 29.05.18 - 15:01
(68) Пересчитай-ка

0x800500505686329811E525D34F7D1280
   Eiffil123
 
71 - 29.05.18 - 15:05
Гуиды часто требуются, когда нужно правила поиска настроить сложные в конвертации: например, сначала ищем по инн-кпп, потом по инн и пустому КПП, потом по ГУИД. Без постобработки можно было вы в ПВД поместить только запрос. А так придется этот запрос выгрузить в ТЗ, там к нему добавить колонку с ГУИДами и ее заполнить. Или уже в ПКС получать соответствующее значение ГУИДа.
   Tateossian
 
72 - 29.05.18 - 15:13
(71) Можно немножко проще и оптимальнее. Берем соответствие. Вставить(GUID, Ссылка). Вставить(ссылка, GUID). Поиск будет работать идеально по любому полю. Но есть нюанс - соответствие нужно привести к неопределено явно, иначе есть риск получить циклические ссылки.
   D3O
 
73 - 29.05.18 - 15:54
(7) ссылка в табличной части - это ссылка на таблицу "шапки". представь ситуацию, когда к одной строке мастер таблицы может быть привязано N строк в подчиненной ТЧ.
платформа такой механизм также не поддерживает сама по себе.
   DrZombi
 
74 - 29.05.18 - 16:02
(0) Потому, как и то, что 1С и в 8.ххх написала свой язык запросов, который на SQL криво оптимизируется :)
   Вафель
 
75 - 29.05.18 - 16:03
(70) sql умеет CAST
   DrZombi
 
76 - 29.05.18 - 16:04
+(70) SQL умеет работать с функциями пользователя....
Там хоть саму 1С напиши, будет работать быстрее ;)
   Tateossian
 
77 - 29.05.18 - 16:06
(75) Простым cast'om не конвертнешь в ГУИД 1C-ный, ибо ГУИД в 1С сделан по своему (не соответствует rfc4122)
   Tateossian
 
78 - 29.05.18 - 16:09
(74) Вот не надо хаить просто так - я когда смотрю иногда тексты в профайлере, там такие роскошные hint'ы SELECT * WITH (FAST TOP 1) или WITH (NOLOCK) - и все по делу и к месту. Мне лично далеко до некоторых конструкций. И это SQL 2008/12. Я уж не представляю, что там они в 2016 делают, если на уровне SQL WITH TABLOCK работает асинхронно. А уж конструкции RLS - это вообще песня)
   d4rkmesa
 
79 - 29.05.18 - 16:24
(0) Не знаю насчет автоматических ГУИД, но неавтоматические добавленные реквизиты типа "Уникальный идентификатор" нормально заработали этак с 8.3.11 в запросе. Консоль запросов выдает представления в виде строки, джойнятся хорошо.
   Вафель
 
80 - 29.05.18 - 16:32
(77) да ну прям. все гуиды одинаковые. бывают просто разные записи их
   DeadLine
 
81 - 29.05.18 - 16:32
(78) У каждого же объекта конфигурации в структуре изначально создано поле "Наименование" ,которое присваивается при записи объекта,так почему бы не добавить поле GUID -строка,в которое бы записывалось бы такое же значение ,Как у получаемой функцией УникальныйИдентификатор()?
   Вафель
 
82 - 29.05.18 - 16:33
(81) в такой постановке задача точно не нужна
   d4rkmesa
 
83 - 29.05.18 - 16:42
(81) "Защита от дурака", т.к. появятся желающие активно использовать guid ссылки не по назначению.
   Вафель
 
84 - 29.05.18 - 16:46
(83) да никакая это не защита. просто не сделали, а теперь и не хотят
   Tateossian
 
85 - 29.05.18 - 17:22
(81) У меня есть база на 1С, некий журнал версионирования. там все реквизиты строками хранятся. Так вот, эта база в три раза больше рабочей. Ибо строк очень много. Хотя там всего три справочника. P.S. Уже нет, переделана на третью нормальную форму.

Системные архитекторы 1С не один пуд лиха съели, потому им виднее, как правильно. Я думаю, с ними стоит согласиться.
   Сияющий в темноте
 
86 - 29.05.18 - 19:28
А ничего,что ссылка это два гуида типа и элемента,и 1с не поддерживает уникальность гуида во всей базе.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует