Имеется таблица значений в реквизите формы. В ней есть несколько строк. Пользователь изменил порядок строк в ТЗ. Как программно перебрать строки ТЗ в порядке, который задал пользователь?
Эта ТЗ выведена на форму обычным способом? И в таком случае если пользователь на форме меняет порядок, в источнике порядок не меняется?
Vofka @ Сегодня, 14:44
,
1. Да, самым обычным
2. Не меняется
Единственный обходной путь, который нашел - это сделать обработку и в ней табличную часть для тех же нужд. У ТЧ есть предопределенный реквизит НомерСтроки и он меняется в зависимости от порядка на форме.
pablo, а если поменять порядок, а потом поменять значение в какой-то ячейке какой-то строки, то значение в реквизите поменяется, но порядок строк будет изначальный?
Да.
У меня работает: меняю порядок строк и в реквизите порядок меняется. Платформа 8.3.14.
bakalavr, Как вы проверяете порядок?
мне такой код:
Для индекс =0 по ТоварыБУ.Количество()-1 цикл
Сообщить(ТоварыБУ.НайтиПоИдентификатору(индекс).номенклатура);
КонецЦикла;
Вот так
Для каждого СтрокаТаблицы Из ТоварыБУ Цикл
Сообщить(СтрокаТаблицы.Номенклатура);
КонецЦикла;
Логично и просто, но для моей более крупной задачи не подходит Там нужно сохранить сопоставление из двух отсортированных пользователем ТЧ.
Почему не подходит? Чего не хватает для сопоставления?
pablo, если вы сопоставляете таблицы по индексу, то это скорее всего проблема. Индекс может поменяться, если таблица есть на форме и строки в ней могут двигать. Я для таких вещей делаю идентификационное строковое поле, в которое пишу УИД.
Согласен с Владимиром, наверное оптимальный вариант. В типовой BAS ERP во многих документах именно такой подход, и даже в некоторых регистрах привязка к строкам делается именно так
bakalavr @ Вчера, 15:16
,
Перебора не хватает. Как перебрать одновременно две ТЗ (не ТЧ) посредством цикла для каждого из Вашего предложения? после сортировки пользователя строки на одинаковых позициях в списке должны сопоставиться программно.
Процесс сопоставления организован через идентификаторы, как и предлагает Vofka. Для хранения сопоставления есть отдельная ТЗ и там в принципе проблем нет.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua