Получение уид программно

1. user1619761 13.08.21 09:40 Сейчас в теме
Здравствуйте. Может кто подсказать , как программно получить уникальный ид номера строки из табличной части документа?
По теме из базы знаний
Найденные решения
13. MikhailDr 13.08.21 12:27 Сейчас в теме
(10) Слишком сложно решаете задачу. Вам надо запретить на форме перетаскивание элементов. Это делается в свойствах табличной части. Затем снять галочку с автозаполнения командной панели табличной части и самостоятельно ее заполнить командами, но не добавлять команды по перемещению строк. После этого пользователь не сможет менять порядок строк, но сможет их редактировать.

В идеале сделать это программно в событии "При создании на сервере", чтобы иметь возможность в случае необходимости все же менять порядок строк, но это уже доп. опция.
user1619761; +1 Ответить
15. MikhailDr 13.08.21 12:42 Сейчас в теме
(14) Так и контекстное меню можно точно так же сформировать. Там даже код писать не надо, все команды есть на вкладке стандартных команд.
user1619761; +1 Ответить
17. MikhailDr 13.08.21 12:50 Сейчас в теме
(16) Ну и в догонку, на будущее. Порядок строк можно отследить по такому реквизиту как "ИсходныйНомерСтроки" (сидит в табличной части, создается платформой), он тоже живет только пока жива форма, но после любых изменений в таблице можно смотреть порядок этого реквизита, если числа идут не по порядку, значит порядок строк изменен.

Первое решение которое я посоветовал гораздо лучше, но в теории можно поставить запрет на запись, если порядок реквизита "ИсходныйНомерСтроки" нарушен.

К слову подумайте еще над удалением строк, не знаю можно ли это делать в вашей задаче, но это тоже логично было бы запретить.
user1619761; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 13.08.21 09:41 Сейчас в теме
Такого не существует.
3. user1619761 13.08.21 09:45 Сейчас в теме
(2) уид вообще никак узнать нельзя?
4. VmvLer 13.08.21 09:48 Сейчас в теме
(2) еще как бывает.

в типовых сплошь и рядом в документах несколько ТЧ, иногда с десяток в одном виде документа.
связь между ТЧ идет по УИДАм.

хотя, я думаю автор имел ввиду что-то вроде

мСтроки = ДанныеГрафика.НайтиСтроки(Новый Структура("НомерМесяца", Расш1_НомерМесяца));
Если мСтроки.Количество() Тогда
	Элементы.ТабличноеПолеГрафика.ТекущаяСтрока = мСтроки[0].ПолучитьИдентификатор();
КонецЕсли;
5. MikhailDr 13.08.21 09:51 Сейчас в теме
(4) Только надо отметить, что этот УИД является уникальным только в рамках жизни формы.
6. FatPanzer 13.08.21 09:52 Сейчас в теме
(4) Это Идентификатор строки в табличном поле формы и в ДанныеФормыКоллекция, и существует только при открытой форме документа, и нигде не хранится (формируется только при создании формы).
А вовсе не идентификатор строки в табличной части документа.
8. FatPanzer 13.08.21 09:54 Сейчас в теме
(4) А про связь между ТЧ - так это не УИД строки. Это обычный реквизит табличной части.
7. VmvLer 13.08.21 09:54 Сейчас в теме
(6) я дал ответ в полной мере и не собираюсь измерять приборы.
9. MikhailDr 13.08.21 10:00 Сейчас в теме
Конечно сложно сказать без описания задачи, возможно автору нужен именно УИД строки, чаще всего его достаточно. Но если речь идет о том, чтобы запомнить адрес строки между разными вызовами формы, то тут только собственный реквизит поможет.
10. user1619761 13.08.21 10:16 Сейчас в теме
(9) задача такая: необходимо отзеркалить табличный документ , и сделать сравнение по уидам оригинала и копии, если в оригинале изменяется порядок строк, то во время записи документа порядок строк в оригинал вернуть из отзеркаленной копии . В общем запретить пользователям изменять порядок строк в документе, но при этом оставить возможность редактирования. Пробовал ИзменятьПорядокСтрок = Ложь, но не сработало.
11. FatPanzer 13.08.21 10:20 Сейчас в теме
(10) Тогда только собственный новый реквизит.
12. user1619761 13.08.21 10:25 Сейчас в теме
13. MikhailDr 13.08.21 12:27 Сейчас в теме
(10) Слишком сложно решаете задачу. Вам надо запретить на форме перетаскивание элементов. Это делается в свойствах табличной части. Затем снять галочку с автозаполнения командной панели табличной части и самостоятельно ее заполнить командами, но не добавлять команды по перемещению строк. После этого пользователь не сможет менять порядок строк, но сможет их редактировать.

В идеале сделать это программно в событии "При создании на сервере", чтобы иметь возможность в случае необходимости все же менять порядок строк, но это уже доп. опция.
user1619761; +1 Ответить
14. user1619761 13.08.21 12:35 Сейчас в теме
(13) если отключить автозаполнение, и добавить по новой все кнопки, то можно доступность им ограничивать, только вот через контекстное меню доступность вроде бы остается
15. MikhailDr 13.08.21 12:42 Сейчас в теме
(14) Так и контекстное меню можно точно так же сформировать. Там даже код писать не надо, все команды есть на вкладке стандартных команд.
user1619761; +1 Ответить
16. user1619761 13.08.21 12:43 Сейчас в теме
(15) понял,большое спасибо!!
17. MikhailDr 13.08.21 12:50 Сейчас в теме
(16) Ну и в догонку, на будущее. Порядок строк можно отследить по такому реквизиту как "ИсходныйНомерСтроки" (сидит в табличной части, создается платформой), он тоже живет только пока жива форма, но после любых изменений в таблице можно смотреть порядок этого реквизита, если числа идут не по порядку, значит порядок строк изменен.

Первое решение которое я посоветовал гораздо лучше, но в теории можно поставить запрет на запись, если порядок реквизита "ИсходныйНомерСтроки" нарушен.

К слову подумайте еще над удалением строк, не знаю можно ли это делать в вашей задаче, но это тоже логично было бы запретить.
user1619761; +1 Ответить
18. user1619761 13.08.21 13:29 Сейчас в теме
(17) не прокатило это решение, после отключения автозаполнения командной панели при открытии документа выскакивает ошибка (значение не является значением объектного типа (Код)), и при переходе в конфигуратор в другую строку закидывает. Все равно большое спасибо за подсказки ))
19. MikhailDr 13.08.21 13:35 Сейчас в теме
(18) Ну тут сложно сказать, надо код смотреть. Скорее всего в документе в командную панель были добавлены команды не из числа стандартных и система ругается на их отсутствие. Возможно вы не все вернули из того, что там было изначально.
20. user1619761 13.08.21 13:38 Сейчас в теме
(19) Да сейчас попробую исправить , наверняка что то пропустил ))
21. user1619761 13.08.21 15:52 Сейчас в теме
(19) с автозаполнением разобрался, надо было сначала новые команды добавить а потом старые удалить, и все, ошибок не выскакивает ))
22. MikhailDr 13.08.21 16:00 Сейчас в теме
(21) Ну вот и замечательно.
23. user1619761 13.08.21 16:06 Сейчас в теме
(22) еще раз огромное спасибо))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот