Имя: Пароль:
1C
 
Как пронумеровать номера строк в таблице значений?
0 iSNEG
 
08.01.08
16:30
Добавил колонку "№ строки" в таблицу. Думаю вставить в событие ПриВыводеСтроки код который будет заполнять это поле.
Подскажите пожалуйста, что писать?
Спасибо.
1 iSNEG
 
08.01.08
16:31
ОформлениеСтроки.Ячейки.НомерСтроки.Значение = ?
2 Terv
 
08.01.08
16:33
чем стандартное поле "НомерСтроки" не устраивает?
3 iSNEG
 
08.01.08
16:34
Terv, а где оно? Как его найти?
4 Terv
 
08.01.08
16:36
в данные колонки табличного поля напиши "НомерСтроки"
5 Terv
 
08.01.08
16:39
только скорее всего это свойство будет только доступно только для чтения
6 iSNEG
 
08.01.08
16:40
Не дает ничего записать.
У этого табличного поля свойство данные - СправочникСписок.
Дает выбирать только поля из этого справочника. Писать самому не дает.
7 Terv
 
08.01.08
16:41
(6)// не путай ТП и ТЗ...
для како
8 Terv
 
08.01.08
16:41
для какой цели ты хочешь пронумеровать список?
9 iSNEG
 
08.01.08
16:44
(7) спутал, извиняюсь.

Цель тривиальная, открывается список (источник - справочник), в нем записи, надо видеть порядковый номер каждой записи.
10 iSNEG
 
08.01.08
16:45
Минимальная цель - видеть общее кол-во записей. Но лучше сделать нумерацию.
11 Terv
 
08.01.08
16:48
ну и добавь реквизит в справочник ... "ПорядковыйНомер" из него считывай либо испольузй реквизит "Код"
12 Defender aka LINN
 
08.01.08
16:51
(10) А зачем?
13 iSNEG
 
08.01.08
16:52
Нет в справочник добавлять никак нельзя. Во первых надо тогда его заполнять при всех добавлениях элементов в справочник.
Во вторых из справочника могут быть удалены элементы и вся нумерация рухнет.

А реквизит Код это просто многозначный уникальный код, а мне нужен номер строки в табличном поле.
14 Terv
 
08.01.08
16:55
(13) и как должна вести твоя номерация при смене сортировки или установке отборов?
15 Terv
 
08.01.08
16:55
*нумерация
16 iSNEG
 
08.01.08
16:56
(12) Что зачем? Зачем нумерацию или зачем общее кол-во?
На самом деле, нужно видеть сколько элементов имеется на данный момент в табличном поле. Визуальная нумерация, думаю, лучшее решение.
17 Terv
 
08.01.08
16:57
(16) ну ТОЛЬКО видимые посчитать достаточно легко, тебя это устроит?
18 Эрнст
 
08.01.08
16:59
Структура Таблица Значений имеет атрибут НомерСтроки
19 Terv
 
08.01.08
16:59
+(17) хотя нет, наверно ошибаюсь проверять надо
20 Terv
 
08.01.08
16:59
(18) прежде чем писать, неплохо было бы научиться читать
21 iSNEG
 
08.01.08
17:00
(17) Именно это и нужно.
22 Defender aka LINN
 
08.01.08
17:00
(16) и то, и то. Не могу представить, какая от этого практическая польза.
23 iSNEG
 
08.01.08
17:03
(22) Потому что справочник этот не в чистом смысле справочник. А некий перечень уникальных автомобилей (буфер). Нужно знать общее кол-во автомобилей.
24 iSNEG
 
08.01.08
17:05
(19) Т.е. я так понимаю стандартных решений (или полей/методов ака НомерСтроки/НомерПозиции) нет?
25 Terv
 
08.01.08
17:06
(24) нет ибо не имеет практического смысла...
можно посчитать записи, которые отображены на данным момент в ТП, но я не вижу в этом никакой пользы
26 iSNEG
 
08.01.08
17:08
Terv, ни тебе и даже мне пользы никакой нет. Но нашему главному менеджеру есть большая польза видеть кол-во автомобилей в квоте от дилера.
Ну надо это сделать.
27 Собеседник
 
08.01.08
17:10
+(22)
а у иерархического справочника с "развернутой" иерархией как должна выглядеть нумерация? а сортировки и отборы? - Порядковый номер элемента относительно чего?

"Видеть" количество элементов - более логичное пожелание.
Но все равно, как быть с отборами?
Оптимально: Запрос и результат в текстовое поле.
+ обновление данных этого поля по обработке оповещения
28 Terv
 
08.01.08
17:12
(26) сделай ему отчет
29 IronDemon
 
08.01.08
17:12
(26) Отчетом
30 Собеседник
 
08.01.08
17:15
(26)
Три варианта:
1 - менеджеру по башке
2 - заменить справочник список на ТЗ
3 - (тупо) определить состояние отбора, и упорядочивания - сделать запрос, который даст в результате ТЗ "аналогичную" структуре представленного в ТП списка, выгрузить в ТЗ, при выводе строки искать в тз текущий элемент и выводить номер... перечитал - ЖЕСТЬ.
31 iSNEG
 
08.01.08
17:15
(27) Порядковый номер относительно номера строки в табличном поле (давайте отойдем от самого справочника).
Вне зависимости от отборов и фильтрации. Т.е. даже если отбор убрал половину записей, все оставшиеся записи должны быть пронумерованы относительно своего текущего (т.е. нового после отбора) положения в ТП.

Тут надо писать код в событии при выводе строки. Я так понимаю все строки выводятся заново при отборе/фильтрации?
32 Собеседник
 
08.01.08
17:17
(30) + при изменении отборов, сортировки, иерархии - обновлять запрос
33 Terv
 
08.01.08
17:20
(31) ну если хошь этот бред, то держи: (обновление нумерации вручную, добавь в ТП колонку "НомерОтображеннойСтроки")



Процедура КнопкаВыполнитьНажатие(Кнопка)
   ЭлементыФормы.ТабличноеПоле1.ОбновитьСтроки();
КонецПроцедуры

Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
   сч = 0 ;
   Для каждого ОформлениеСтроки  Из  ОформленияСтрок Цикл
       
       Сч = Сч + 1;
       ОформлениеСтроки.Ячейки.НомерОтображеннойСтроки.УстановитьТекст( "" + Сч);
   
   КонецЦикла;
КонецПроцедуры
34 iSNEG
 
08.01.08
17:26
(33) Спасибо! А разве ПриПолученииДанных не будет срабатывать при отборе/сортировке.
нельзя никак без ручной кнопки обойтись?

Сейчас попробую.
35 iSNEG
 
08.01.08
17:28
(30)
1 - бесполезно :)
2 - сложно реализовать. тогда уж лучше п.1 )
3 - думаю возможно, но подозреваю что у меня где-то в других местах "поплывет" после такого.
36 Terv
 
08.01.08
17:28
(34) хм... поиграйся с размерами формы и полистай список, поймешь
37 Собеседник
 
08.01.08
17:30
(33) для иерархического списк проверял?
38 iSNEG
 
08.01.08
17:36
(36) проверил, посмотрел - понял :)
сейчас попробую сделать это на событии при открытии.
39 Собеседник
 
08.01.08
17:38
(37)+ и как быть с текущей строкой?
40 iSNEG
 
08.01.08
19:26
Я совсем запутался.
Почему когда обращаюсь к полю НомерСтроки в

Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
   сч = 0 ;
   Для каждого ОформлениеСтроки  Из  ОформленияСтрок Цикл
       
       Сч = Сч + 1;
       ОформлениеСтроки.Ячейки.НомерСтроки.УстановитьТекст( "" + Сч);
   
   КонецЦикла;
КонецПроцедуры

все срабатывает, а когда обращаюсь в

Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   ОформлениеСтроки.Ячейки.НомерСтроки.УстановитьТекст = Счетчик+1;
   
КонецПроцедуры

то пишет что "Поле объекта не обнаружено (НомерСтроки)" ??

В чем засада?
41 iSNEG
 
08.01.08
19:27
поправка: ТабличноеПоле1 = Список.
42 iSNEG
 
08.01.08
20:22
поправка 2: УстановитьТекст = Счетчик+1 = УстановитьТекст(Счетчик+1).

Все равно не работет. Самие интересное что у меня сделана точно такая же конструкция в другой форме на этом же событии и все работает!
Что за глюки?
43 iSNEG
 
08.01.08
20:23
Извиняюсь за текстуальные ошибки. нервничаю...
44 iSNEG
 
08.01.08
21:43
В общем никак по-человечески не получилось пронумеровать.
решил делать предварительный запрос на количество элементов и выводить кол-во в подвале.

Всем спасибо за мозговой штурм! :)