Имя: Пароль:
1C
 
Генератор номера в строке ТЗ
0 Hикита
 
14.11.14
11:55
Кто знает, как сделать так, чтобы в последующей строке  Таблицы значений был номер +1
например
         ....
         2000
         2001
         2002
         2003
         И.т.д.
Написал процедуру по нажатию кнопки
добавляет строку с константой
выводит нормально ...

&НаКлиенте
Процедура Команда1(Команда)
НоваяСтрока = Объект.ТаблЧасть.Добавить();
НоваяСтрока.Реквизит1 ="Любое число";

КонецПроцедуры
1 Ненавижу 1С
 
гуру
14.11.14
11:56
и?
2 Hикита
 
14.11.14
11:57
(1) Ну нужно какуето процедуру генирации
3 Hикита
 
14.11.14
11:58
я пробовал брать внутренний номер строки ...пишет не может привести к типу число хотя там числовой тип и у реквизита числовой тип
4 Ненавижу 1С
 
гуру
14.11.14
11:59
ТЗ или ТЧ у тебя?
5 Hикита
 
14.11.14
11:59
&НаКлиенте
Процедура Команда1(Команда)
    
    НоваяСтрока = Объект.ТаблЧасть.Добавить();
    НоваяСтрока.Реквизит1 = Элементы.ТаблЧастьНомерСтроки+Какой-нибуть там номер;

КонецПроцедуры
6 Hикита
 
14.11.14
12:00
(4)ой Табличная часть
7 Kj13
 
14.11.14
12:04
НомерПредыдущейСтроки = Объект.ТаблЧасть.Индекс(НоваяСтрока);
НовыйИндекс = Объект.ТаблЧасть[НомерПредыдущейСтроки-1]. Реквизит1 + 1;


Как-то так
8 Kj13
 
14.11.14
12:05
+(7) Это после твоей первой строчки кода.
9 Kj13
 
14.11.14
12:06
+(7) А ну и первая переменная это номер новой строки.
10 Ненавижу 1С
 
гуру
14.11.14
12:07
(6) у ТЧ есть уже НомерСтроки
11 Hикита
 
14.11.14
12:09
(7) Пишет пустую строку :(
12 Hикита
 
14.11.14
12:10
Процедура Команда1(Команда)
    
    НоваяСтрока = Объект.ТаблЧасть.Добавить();
   НомерПредыдущейСтроки = Объект.ТаблЧасть.Индекс(НоваяСтрока);
НовыйИндекс = Объект.ТаблЧасть[НомерПредыдущейСтроки-1]. Реквизит1 + 1;

КонецПроцедуры
13 Hикита
 
14.11.14
12:14
Добавляет строку а там нету номера
14 Hикита
 
14.11.14
12:15
(10) я знаю мне просто уникальный номер нужен который будет идти по порядку
15 Fish
 
14.11.14
12:16
(13) Так это потому, что ты его нигде не присваиваешь.
16 Kj13
 
14.11.14
12:16
(11) Я ж не знаю какие-там у тебя значения в Реквизит1
17 Kj13
 
14.11.14
12:17
Вот проверил все работает

&НаКлиенте
Процедура Команда1(Команда)
    Новаястрока = Объект.ТабличнаяЧасть1.Добавить();
    Инд = Объект.ТабличнаяЧасть1.Индекс(Новаястрока);
    НовыйНомер =  Объект.ТабличнаяЧасть1[Инд-1].Число1 + 1;
    Сообщить (НовыйНомер);
КонецПроцедуры
18 Ненавижу 1С
 
гуру
14.11.14
12:18
(14) не поверишь, но номер строки уникален и идет по порядку
19 Kj13
 
14.11.14
12:19
(18) Ну мало ли. Может он что-то другое в ТЧ индексирует.
20 Hикита
 
14.11.14
12:22
Ну просто мне уникальность на уровне всей базы нужна а не на уровне прикладной накладной (18)
21 Kj13
 
14.11.14
12:23
(14)
Тебе наверно так надо:


&НаКлиенте
Процедура Команда1(Команда)
    Новаястрока = Объект.ТабличнаяЧасть1.Добавить();
    Инд = Объект.ТабличнаяЧасть1.Индекс(Новаястрока);
    НовыйНомер =  Объект.ТабличнаяЧасть1[Инд-1].Число1 + 1;
    Новаястрока.Число1 = НовыйНомер;
КонецПроцедуры
22 Hикита
 
14.11.14
12:23
(17) а Число1 это реквизит Табл части или реквизит документа?
23 Kj13
 
14.11.14
12:24
(22) Реквизит табличной части в которой есть номер, который тебе надо увеличить на 1. Если я правильно понял твои фантазии.
24 Kj13
 
14.11.14
12:25
+(23) Суть такова.
Выясняется номер новой строки.
Из предыдущей строки берется Число1, увеличивается на 1
И записывается в текущую строку.
25 Hикита
 
14.11.14
12:29
(24) &НаКлиенте
Процедура Команда1(Команда)
    Новаястрока = Объект.ТаблЧасть.Добавить();
    Инд = Объект.ТаблЧасть.Индекс(Новаястрока);
    НовыйНомер =  Объект.ТаблЧасть[Инд-1].Реквизит1 + 1;
    Сообщить (НовыйНомер);
КонецПроцедуры


добавляет пустую строку
26 Hикита
 
14.11.14
12:30
Реквизит1 это реквизит ТабЧасть
27 Hикита
 
14.11.14
12:32
получается я создаю первую  строку в ТабЧасть ввожу в колонку
Реквизит1 любое число и дальше дму кнопку Команда1 и у меня создается пустое поле
28 hhhh
 
14.11.14
12:34
(27) а где вы тут записываете Реквизит1?
29 Kj13
 
14.11.14
12:34
(27) Код покажи.
30 Kj13
 
14.11.14
12:34
(27) И Реквизит1 это тип Число?
31 Ненавижу 1С
 
гуру
14.11.14
12:35
32 Hикита
 
14.11.14
12:36
(30)
Записываю в строку в колонку Реквизит1
Да тип Число
33 Hикита
 
14.11.14
12:36
(31) Нет :)
34 Salimbek
 
14.11.14
12:40
(32) Мне кажется, что в (28) намекают, что где-то пропущено
Новаястрока.МойНомер= НовыйНомер;
35 Hикита
 
14.11.14
12:47
Все понял Всем спасибо особенно Kj13 !
Так работает
  &НаКлиенте
Процедура Команда1(Команда)
    Новаястрока = Объект.ТаблЧасть.Добавить();
    Инд = Объект.ТаблЧасть.Индекс(Новаястрока);
    НовыйНомер =  Объект.ТаблЧасть[Инд-1].Реквизит1 + 1;
    Новаястрока.Реквизит1 = НовыйНомер;
    Сообщить (НовыйНомер);
КонецПроцедуры
36 Hикита
 
14.11.14
12:53
А можно чтобы при нажатии F9 когда в таблице производится копирование и вставления последний строчки Реквизит1 не копировался а так же увеличивался +1 ?
37 Ненавижу 1С
 
гуру
14.11.14
12:58
(36) можно
38 Hикита
 
14.11.14
12:58
(37) А каким образом?
39 kortun
 
14.11.14
12:59
Можно еще так делать

  &НаКлиенте
  Процедура Команда1(Команда)
      Новаястрока = Объект.ТаблЧасть.Добавить();
      Новаястрока.Реквизит1 = Объект.ТаблЧасть.Количество();
      Сообщить (Новаястрока.Реквизит1);
  КонецПроцедуры
40 Ненавижу 1С
 
гуру
14.11.14
12:59
(35) это уникально в документе, а не в базе как ты писал в (20)
41 Hикита
 
14.11.14
13:00
(40) Д я знаю просто к этому номеру я приалюсую номер накладной
42 Ненавижу 1С
 
гуру
14.11.14
13:01
(41) и оно внезапно станет уникальным?
43 Hикита
 
14.11.14
13:03
ну номер накладной то уникальный (42)
44 Fish
 
14.11.14
13:06
(43) Вовсе не обязательно. Обычно периодичность номера - год.
45 Ненавижу 1С
 
гуру
14.11.14
13:07
(43) что будет в Реквизит1, если накладная номер 43 и строка 2?
46 Hикита
 
14.11.14
13:09
не там вообще длинный номер около 10 символов
47 Ненавижу 1С
 
гуру
14.11.14
13:10
(46) там номер строка
48 Hикита
 
14.11.14
13:10
а тогда как сделать уникальный по порядку чтобы шел ?
49 Ненавижу 1С
 
гуру
14.11.14
13:10
(48) а зачем?
50 Hикита
 
14.11.14
13:14
Ну или хотябы когда F9 к в таблице производится копирование и вставления последний строчки Реквизит1 не копировался а так же увеличивался +1 ?
51 kortun
 
14.11.14
13:19
(50) что за задача странная?
52 Лефмихалыч
 
14.11.14
13:21
долбаный позор
53 DrZombi
 
гуру
14.11.14
13:49
(50) Зачем? Что ты пишешь? :)
54 H A D G E H O G s
 
14.11.14
14:04
Её звали Никита.
Основная теорема систематики: Новые системы плодят новые проблемы.