Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июл 2022, 09:39

уникальный ключ у строки ТЧ

Автор andron81_81, 14 дек 2017, 22:23

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Добрый день, товарищи специалисты.

Как вы решаете проблемы идентификации для строки ТЧ  ???

Есть в документе Некая таб. часть "детали". Для каждой строки будет свой набор реквизитов. Которые отображаются ниже таб. части "детали" . То есть выделили деталь1 в таб. части "детали", а нижней таб. части "реквизиты" будет список реквизитов присущей этой детали1 . строки нижней т.ч. хранятся в регистре сведений. Одно из измерений которого должен быть уникальный идентификатор этой самой детали из ТЧ "детали", собственно теперь вопрос как этот идентификатор детали получить .
думал так :
1. может предположил глупость но подумал сначала сделать грубо говоря так:
идентификатор = "д" + строка(документ.ссылка) + строка(ТекущаяДата())
2. грубо говоря ещё можно так :
идентификатор = "д" + строка(документ.ссылка) + детали.НомерСтроки
наверно тут легко можно словить коллизию




Golickoff

Как-то я особо ничего не понял. Уникальным идентификатором строки табличной части является её номер, который представлен реквизитом НомерСтроки с типом Число. Если вам нужен именно уникальный идентификатор детали, как вы тоже писали, его можно получить вот так
ЦитироватьСправочникСсылка.<Имя справочника>.УникальныйИдентификатор (CatalogRef.<Имя справочника>.UUID)
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
УникальныйИдентификатор (UUID)
Синтаксис:

УникальныйИдентификатор()
Возвращаемое значение:

Тип: УникальныйИдентификатор.

Описание:

Получает уникальный идентификатор ссылки.
Ссылка может быть получена из уникального идентификатора с помощью метода менеджера ПолучитьСсылку.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

andron81_81

Цитата: Golickoff от 15 дек 2017, 03:39
Как-то я особо ничего не понял.
да и ладно. вникать не очень обязательно. я там довольно много чего написал. ;)

Цитата: Golickoff от 15 дек 2017, 03:39
УникальныйИдентификатор()
Возвращаемое значение:

а вот это понравилось. то что надо. действительно уникальный id в рамках этой ТЧ.  понравилось тем , что при удалении строки таб. части с УникальныйИдентификатор()  = 4 , у следующей добавленной строки будет уже
УникальныйИдентификатор() = 5 ,а не 4 !

alex0402

Цитата: andron81_81 от 15 дек 2017, 11:59УникальныйИдентификатор()  = 4 , у следующей добавленной строки будет уже
УникальныйИдентификатор() = 5 ,а не 4 !

Если на самом деле имеется в виду значение метода ПолучитьИдентификатор() (4 и 5 не имеют никакого отношения к  УникальныйИдентификатор()), то следует учитывать, то что при следующем открытии формы ПолучитьИдентификатор() на последней строке вернет скорее всего 4 а не 5!!!!
следует учитывать то, что
Спасибо за Сказать спасибо

andron81_81

Цитата: alex0402 от 15 дек 2017, 12:10
Если на самом деле имеется в виду значение метода ПолучитьИдентификатор() (
именно .

Цитата: alex0402 от 15 дек 2017, 12:10
...то что при следующем открытии формы ПолучитьИдентификатор() на последней строке вернет скорее всего 4 а не 5!!!!
следует учитывать то, что
вы правы. это плохо
Добавлено: 15 дек 2017, 12:56


Цитата: andron81_81 от 15 дек 2017, 12:41
Цитата: alex0402 от 15 дек 2017, 12:10
Если на самом деле имеется в виду значение метода ПолучитьИдентификатор() (
именно .

Цитата: alex0402 от 15 дек 2017, 12:10
...то что при следующем открытии формы ПолучитьИдентификатор() на последней строке вернет скорее всего 4 а не 5!!!!
следует учитывать то, что
вы правы. это плохо


Тогда может если в документе держать отдельный реквизит ID (при создании нового документа делаем его 0)  . и создаём реквизит "ИдентификаторСтроки" в ТЧ . перед созданием строки инкриментим реквизит документа ID и записываем в ИдентификаторСтроки этой строчки. при удалении ID не трогаем.

alex0402

я так понял это все необходимо что бы установить соответствие между табличными частями? Тогда можно использовать уникальный реквизит (или группу уникальных) меньшей тч, если такие имеются или просто использовать номерстроки опять таки меньшей тч...
а инденификатор строки используется для однозначного соответствия строк, видимых на экране и живут на протяжении жизни экземпляра формы...
Спасибо за Сказать спасибо

andron81_81


alex0402

если связывают две тч, то чаще всего это отношение один к многим, там где один - тч получается с меньшим количество строк.
Спасибо за Сказать спасибо

andron81_81

Цитата: alex0402 от 15 дек 2017, 14:49
если связывают две тч, то чаще всего это отношение один к многим, там где один - тч получается с меньшим количество строк.

нет. в нижней ТЧ данные будут браться из регистра сведений. одно из измерений которого это идентификатор строки верхней ТЧ которого я добиваюсь . <b>это позволяет не хранить строки нижней ТЧ, если они они не заполнены. </b> организовать это только при помощи просто двух ТЧ,  я не сообразил как

alex0402

Цитата: andron81_81 от 15 дек 2017, 14:53которого это идентификатор строки верхней ТЧ которого я добиваюсь .

номер строки чем не устраивает?
Спасибо за Сказать спасибо

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск