#0
by cube033
Есть таблица значений на форме, в ней есть, например, 4 строки. Нумерация от 0 до 3. Пользователь заполняет данные в предпоследней строке (номер 2), а дальше строка удаляется по номеру текущей строки. Остается три строки (от 0 до 2). Индексы строк не обновляются. Пользователь заполняет последнюю строку , но при попытке удалить текущую строку отладчик показывает номер текущей строки . Естественно, удаление проваливается, так как строки с индексом 3 на самом деле нет. Подскажите как совладать с номерами строк.
#3
by vicof
Синтаксис: ПолучитьИдентификатор Возвращаемое значение: Тип: Число. Описание: Получает идентификатор для элемента коллекции. Этот идентификатор не привязан к позиции элемента в коллекции. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент.
#6
by cube033
ИДЭлемента = Элементы.ТаСамаяТаблица.ТекущиеДанные.ПолучитьИдентификатор; Где "Элементы.ТаСамаяТаблица.ТекущиеДанные" имеет тип ДанныеФормыЭлементКоллекции. Для первой строки возвращает 0, для второй строки 1. Т.е. возвращает тот же номер строки. Более того - идентификатор точно так же сбивается при удалении одной из строк.
#7
by Жан Пердежон
по-моему тут только ты сбиваешься, в СП и специально написали: "...идентификатор не привязан к позиции элемента в коллекции."
#8
by cube033
Вижу, что написано. Однако также в написано, что на практике возвращает номер строки в таблице и также сбивается.
#9
by vicof
Спешл фо ю. Синтаксис: НайтиПоИдентификатору(<Идентификатор>) Параметры: Тип: Число. Идентификатор строки таблицы. Возвращаемое значение: Тип: ДанныеФормыЭлементКоллекции; Неопределено. Неопределено - элемент не найден. Описание: Получает элемент коллекции по идентификатору. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. См. также: ТаблицаФормы, свойство ВыделенныеСтроки
#11
by Мыш
Ещё надо осознать, что на форме не таблица значений, а табличное поле. У табличного поля есть источник данных. От типа значения источника данных зависит, будет ли в наличии служебный реквизит "НомерСтроки".
#12
by cube033
да я бы рад)) Есть метод "ПолучитьИдентификатор" он поможет мне найти идентификатор. (А не номер строки!!!). Чтобы воспользоваться методом мне нужны данные с типом "ДанныеФормыЭлементКоллекции". Отладчик твердит мне, что "Элементы.ТаСамаяТаблица.ТекущиеДанные" как раз имеют такой тип. Метод "ПолучитьИдентификатор" в данном случае возвращает Число точь в точь совпадающее с номером строки. Более того если пойти обратным путем в схожем направлении "ЭтаФорма.ТаСамаяТаблица.НайтиПоИдентификатору(ТотСамыйИдентификатор)" мы снова получим данные нашей строки.
#15
by cube033
я бы рад - скажите кто-нибудь что-нибудь новое) Я же расписал результат прошлых советов.
#16
by Жан Пердежон
смотри как это выглядит со стороны: ты пощупал ПолучитьИдентификатор и он у тебя какое-то время совпадал с номером строки; ты, не читая СП, уверовал что это есть суть одно и тоже; потом ты начал проводить манипуляции с ТЧ - перемещать и удалять строки и вдруг: КАРАУЛ, ПАМАГИТЕ, ОНЕ СБИВАЮТСЯ!!1 В общем: Индекс<>НомерСтроки<>Идентификатор Надеюсь этот код как-то поможет (удаление выделенных строк на клиенте) Для каждого Идентификатор из Элементы.ТаблицаНаФорме.ВыделенныеСтроки цикл ТаблицаНаФорме.Удалить(ТаблицаНаФорме.НайтиПоИдентификатору(Идентификатор)); КонецЦикла
#17
by Drac0
Очисти таблицу и заполни снова. И, вуа-ля, индентификатор совсем-совсем не равен индексу и номеру строки.
#18
by Drac0
+ Это две абсолютно разные сущности. То, что они иногда совпадают не значит ничего. Это как часы со стрелкой и компас. Могут иногда показывать в одну сторону, но...
#19
by cube033
Как это выглядит это с моей стороны. Я: Не удаляются нормально строки - сбивается номер Не Я: Бери идентификатор Я: Что за идентификатор? Не Я: СП "ПолучитьИдентификатор" Я: О круто попробую... нифига тот же результат. Я же правильно использую метод? Не Я: Должно работать! Я: Не работает. Точно всё правильно?! Не Я: Должно работать! Не Я: Пойми - Должно работать! Не Я: Осознай - Должно работать! - Номер и Идентификатор могут совпадать! Это на самом деле нужная информация - так как фраза "Этот идентификатор не привязан к позиции элемента в коллекции" - не прям супер очевидная. Не зная как работает метод "ПолучитьИдентификатор" можно предположить, что идентификатор возвращается относительно элементов формы, а не таблицы, так как тип данных: "ДанныеФормыЭлементКоллекции", и тогда значения 0 или 1 говорят, что я просто неправильно его применяю. Перечитывал СП много раз. Да это разные сущности - я понимаю, только выражены они в моем случае одним типом данных и значением. Да, я увидел бы разницу, если бы удалил/добавил строки, но не подразумевает интерфейс у меня такой функции - все автоматом. Можно конечно добавить кнопки добавление/удаление, но смысл? Ведь в итоге идентификатор дает тот же сбой!!! я ни разу не отрицал, что это разные сущности и они когда-то примут разные значения. А теперь решение: Суть решения в том, то минус на минус дает плюс. Помогла подсказка , а именно кусок кода оказался рабочим. Если взять тот же пример, то удаление первой строки показывает правильный идентификатор и удаляется правильная строка. Удаление следующей строки показывает идентификатор за пределами таблицы, но методу НайтиПоИдентификатору это не мешает и в итоге находится и удаляется верная строка.
#22
by Cube
Хоспади, когда тебе уже надоест этот ник?)))) Сделай мини обработку на которой можно воспроизвести ошибку, а то ничего не понятно...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Вид списка в УФ(управляемой форме) 8.2
- Дерево значений в УФ и текущая строка
- УФ. текущая строка таблицы формы!
- v8: Методика написания конфигураций на УФ, общие модули. Подскажите неофиту УФ
- Условное оформление, УФ, текущая дата, форма списка
- УФ Динамический список. Текущая строка.
- обход данных табличной части формы в УФ
- УФ при записи документа, всегда ставится текущая дата, как обойти?
В этой группе 1С
- Найти документ по номеру 1с 8.3
- ЗУП 3.0 Принимать Исчисленный НДФЛ как удержанный
- Открыть вторую форму внешней обработки 8.3
- Количество экземпляров при печати внешней печатной формы
- 1С 8.3. СКД не считает количество детальных записей в иерархии группировки
- Выборка данных посредством прямого доступа к dbf файлам 1с77
- Проблема разных версий 1с 8.3 - как решить?
- Доступ к представлениям строк в таблице формы УФ
- Ограничение на выбор определенных типов данных,в таб части документа
- Отчет "Ведомость по учету стоимости материалов в эксплуатации". Нет суммы.
- Метод объекта не обнаружен, хотя он есть
- ЗУП, увольнение прогульщиков
- Процедура отмены проведения
- Список значений в ТЧ документа
- 1C 8.2 Выборка всех документов последовательности
- Перебрать подчиненные элементы группы формы
- Плановые начисления сотрудников организации УПП 1.3
- 1С:Розница 1.0, Возврат товара оплаченного по эквайрингу не день в день.
- Конвертация данных Подменить реквизит
- 1С 8 (УФ) Обновление элементов формы