Имя: Пароль:
1C
1С v8
Событие при перемещении строки в табличной части
0 Dendroid92
 
28.03.17
13:06
Здравствуйте!
Есть Табличная часть(ТЧ1), строки которой являются столбцами другой таблицы значений(ТЧ2). Как получить номер строки ТЧ1 перед перемещением и после перемещения? Каким образом отразить изменения в ТЧ2?
P.S. Писать свои кнопки с обработками для перемещения не самый лучший вариант, есть ли другой?
1 Dendroid92
 
28.03.17
13:15
Есть идея в событии "ПриАктивизацииСтроки" получать текущий номер строки, но как получить номер строки после перемещения?
2 FIXXXL
 
28.03.17
13:18
(1) не вяжись на номера строк, сделай свои уникальные ключи строк
3 igork1966
 
28.03.17
13:20
(2) +1
4 Dendroid92
 
28.03.17
13:20
(2) ок, допустим есть первичный ключ, как дальше реализовывать?
5 FIXXXL
 
28.03.17
13:21
(4) ты ж реализатор, тебе виднее
я хз логику твоих ТЧ
расписывай задачу тогда
6 FIXXXL
 
28.03.17
13:21
(5) просто имея ключ, тебе пофиг на порядок и номера строк
7 toypaul
 
гуру
28.03.17
13:22
добавить свой номер, затем обрабатывать событие ПриИзменении (я так думаю)
8 Dendroid92
 
28.03.17
13:23
(7) ПриИзменении данные ТЧ уже обновлены или нет, вот в чем суть, если да, то тогда знаю как все сделать
9 toypaul
 
гуру
28.03.17
13:26
(8) обновлены
10 arishkaKlimova
 
28.03.17
13:29
(8) Каждый раз пересобирать ТЧ2. Т.е. удалять все столбцы и заново заполнять
11 aleks_default
 
28.03.17
13:41
Есть другие события таблицы формы. ПередИзменением например.
Делаешь реквизит формы, в него запоминаешь нужные тебе данные текущей строки (можно структуру сделать) в перед изменением. Потом делй что тебе нужно.
12 Dendroid92
 
28.03.17
13:46
(10) не вариант там данные хранятся, если начну перезаполнять смещенные столбцы останутся на своих прошлых местах. (9) Тогда отлично, попробую реализовать затею, позже отпишусь что вышло.
13 Dendroid92
 
28.03.17
17:37
Всем спасибо за помощь, проблема решена следующим образом:
1. ПриАктивизацииСтроки берем Номер строки до перемещения

Процедура ДисциплиныПриАктивизацииСтроки(Элемент)
НомерСтроки = Элементы.Дисциплины.ТекущиеДанные.НомерСтроки;
КонецПроцедуры

2. ПриИзменении берем Номер строки после перемещения

Процедура ДисциплиныПриИзменении(Элемент)
НомерСмещеннойСтроки = Элементы.Дисциплины.ТекущиеДанные.НомерСтроки;
СместитьКолонкиСводнойТаблицы();
КонецПроцедуры

3. Меняем значения реквизитов местами, записываем в реквизит (ВременнаяТаблица)

4. Заново формируем таблицу ТЧ2 и заполняем данными из ВременнойТаблицы
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.