Имя: Пароль:
1C
1С v8
GUID строки документа?
0 Злопчинский
 
06.03.19
23:31
Есть ли в 8-ке штатная возможность получить GUID строки документа (чтобы выдать его в обмен наружу) или что-то иное, что позволит однозначно идентифицировать строку документа?
1 Garykom
 
гуру
06.03.19
23:34
2 Злопчинский
 
07.03.19
00:13
(1) бяка, так как (сорри, не указал в задаче) номер строки не прокатит. строка впоследствии может быть удалена. а "снаружи" может придти "задание" спозиционироваться на ранее выданную "наружу" строку.
3 Злопчинский
 
07.03.19
00:20
Почитал, получается что штатно-быстро идентифицировать строку нет. Ну и ладно.
закрыто.
4 Garykom
 
гуру
07.03.19
00:21
(2) Вот по приведенному термину "спозиционироваться" могу сказать что задачу пытаемся решить через одно место.

Ключ строки передавай наружу (набор полей вместе уникальных для строки).

Если можно менять конфу то добавляем свое поле и пишем туда уид.
5 Злопчинский
 
07.03.19
04:59
(4) а то ж! это все понятно
6 breezee
 
07.03.19
05:19
(3) Как нету? Составной ключ строки это все колонки строки. Вы же, строя запрос от заказа к реализации не по индексу строки обращаетесь?)
7 Cyberhawk
 
07.03.19
07:14
Номер строки конечно же не катит в качестве УИДа. Строки в документе любой может менять местами.
8 Cyberhawk
 
07.03.19
07:15
В типовых на БСП в некоторых документах есть неизменяемые идентификаторы строк, в т.ч. в виде 32/36-символьной строки.
Платформенного нет - соломку надо заранее стелить.
9 Злопчинский
 
07.03.19
11:45
(6) ну например для внешней системы абсолютно пофиг цена/сумма/прочеевоздушное. а для учетной 1С они входят в "составной ключ строки"...
10 Cyberhawk
 
07.03.19
11:48
(6) (9) А еще могут быть "дубли" строк, отличающиеся только номером строки. Но номер строки может легко меняться перетаскиванием. Как и значение любого другого реквизита ТЧ. Так что в качестве ключа строки ТЧ обычно выбирают что-то максимально неизменное во времени, как впрочем и для любого другого ключа )
11 ДенисЧ
 
07.03.19
11:50
Я делал своё поле с гуйдом... Именно для связи с внешними *паби.
12 ДенисЧ
 
07.03.19
11:50
*пами
13 D3O
 
07.03.19
11:57
(0) добавить новый реквизит ТЧ Идентификатор с типом УникальныйИдентификатор. всё.
14 Cyberhawk
 
07.03.19
12:15
(12) Это какой-то завуалированный мат?
15 Сияющий в темноте
 
07.03.19
15:27
гуид через base85 прекрасно в 20 символов переводится.

другое дело,что строку могут поменять,и даже если мы потом на нее спозиционируемся,то будет много вопросов у пользователя.

уникальный идентификатор строки позволяет в историю документа писать только действительно измененные строки,т.к иначе будут писаться все,если пользователь поменял их порядок.
16 Garykom
 
гуру
07.03.19
16:04
Хм я однако придумал вполне себе универсальное решение с достаточной надежностью.

Есть же такая штука как https://ru.wikipedia.org/wiki/Хеширование

Короче считаем ХешСтроки и ХешТЧ (по всем строкам чтобы понять не менялись ли они случаем) и передаем.
При возврате если ХешТЧ совпадает то ищем строку с нужным ХешСтроки.
В качестве хеш функции что угодно подходящее шустрое и с достаточными различиями.
Вот есть готовое http://catalog.mista.ru/public/100845/
17 Aleksey
 
07.03.19
16:32
В типовых это сделано через отдельный реквизит ТЧ
18 ssh2006
 
07.03.19
16:35
(0) лепи таб часть на регистрах сведений))