Имя: Пароль:
1C
1С v8
Заполнение колонки в таблице по умолчанию
0 bebibo
 
28.10.19
10:25
Здравствуйте! Есть таблица.Колонки например: колонка1, колонка2 ,колонка3. Например заполняю первую строку. То есть колонка1 ,колонка2, колонка3 заполнены. Дальше при добавлении второй строки, мне нужно, чтобы автоматически в колонку1 добавлялось то ,что есть в первой строке в колонке1. И так далее: в третьей строке опять в колонке1 значение из первой строки в колонке1. Как сделать? Запустить отладку нет возможности, поэтому сложно.
1 Ёпрст
 
гуру
28.10.19
10:31
(0)

Если нечто.Количество()>0 Тогда
   васяИзВторойКолонки = нечто[0].Васяизпервойстроки$
2 bebibo
 
28.10.19
10:36
(1) В макете это работает. Но мне нужно еще чтобы при заполнении на форме это происходило автоматом
3 bebibo
 
28.10.19
10:36
в событии передНачаломДобавления как это сделать можно?
4 Ёпрст
 
гуру
28.10.19
10:39
(2) При чем тут макет ?
5 Ёпрст
 
гуру
28.10.19
10:39
(3) как в (1)
6 Ёпрст
 
гуру
28.10.19
10:40
проверить, что в коллекции что-то есть и обратиться к первой строке через [0].ИдентификаторКолонки
7 bebibo
 
28.10.19
10:48
(6) обращаюсь к нужной колонке1, он пишет поле объекта не обнаружено
8 bebibo
 
28.10.19
10:50
(7) исправила ошибку, но колонка1 всё равно не заполняется у второй строки
9 DrWatson
 
28.10.19
10:50
(8) Приведи свой код.
10 bebibo
 
28.10.19
10:52
Код такой:
&НаКлиенте
Процедура ТаблицаПередНачаломДобавления(Элемент,НоваяСтрока, Копирование)
     Если Таблица.Количество()>0 тогда
                Таблица[0].Колонка1= ТекущаяДата();
            КонецЕсли;
        
КонецПроцедуры

Нужно чтобы введеная дата в первой строке далее выводилась во всех добавляемых строках
11 bebibo
 
28.10.19
10:53
(10) чтобы самой не выбирать каждый раз нужное число. В первой строке добавила, а дальше при добавлении на форме чтобы автоматом вставала
12 DrWatson
 
28.10.19
10:59
(11) Я так понял здесь нет кода, который заполняет Колонка1 во второй строке?
13 bebibo
 
28.10.19
11:03
Помогла процедура:
&НаКлиенте
Процедура ТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

    
    Если НоваяСтрока  Тогда
        Таблица[0].Дата = ТекущаяДата();
    КонецЕсли;

КонецПроцедуры

Потому что в событии: ПередНачаломДобавления - еще нет новой строки.

Но теперь так, что у меня автоматом текущей датой заполняется ТОЛЬКО первая строка. Как мне сделать, чтобы все последующие тоже заполнялись?
14 bebibo
 
28.10.19
11:04
(12) ну я думала это поможет: Таблица[0].Колонка1= ТекущаяДата();
15 bebibo
 
28.10.19
11:05
(13) Как то счетчиком? а то получается он у меня только первую строку заполняет всегда, а их то может быть много
16 DrWatson
 
28.10.19
11:07
(13) Всё правильно про ПередНачаломДобавления и про ПриНачалеРедактирования.
(14) Наверное, ты не понимаешь, что Таблица[0] - это первая строка и только первая.
К текущей строке следует обращаться так: Элемент.ТекущиеДанные или Элементы.Таблица.ТекущиеДанные.
17 hhhh
 
28.10.19
11:08
(15) Для Каждого Стр Из Таблица Цикл
           Стр.Дата = Таблица[0].Дата;
     КонецЦикла;
18 Ёпрст
 
гуру
28.10.19
11:09
(13)

Элемент.ТекущиеДанные.Дата = Таблица[0].дата;
19 DrWatson
 
28.10.19
11:11
Блин, весь образовательный процесс испортили
20 bebibo
 
28.10.19
11:18
(17) Вот этот вариант помог)) Спасибо!))
21 bebibo
 
28.10.19
11:18
(16) СПАСИБО!!))
22 bebibo
 
28.10.19
11:21
Всем спасибо, кто пытался помочь)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн