Имя: Пароль:
1C
1С v8
v8: Реквизиты
,
0 Kamich
 
25.03.13
17:08
Добрый вечер.

Есть два реквизита "Телефон", "ЭлПочта"
Есть ТабличнаяЧасть1 с колонками: Телефон, ЭлПочта.

В процедуре при изменении реквизита формы "Телефон"  идет следующая процедура:
НоваяСтрока=ЭлементыФормы.ТабличнаяЧасть1 .Значение.Добавить();
НоваяСтрока.Телефон=ЭлементыФормы.Телефон.Значение;
НоваяСтрока.ЭлПочта=ЭлементыФормы.ЭлПочта.Значение;

Та же процедура стоит при изменении реквизита "ЭлПочта".

Как можно будет сделать, проверку заполнения ТабличнаяЧасть1 , чтобы не повторялись одни и те же значения?
1 Maxus43
 
25.03.13
17:11
тут в ТЧ всегда 1 строка должна быть?
Более чем сомнительная реализация, но не надо привязываться к событию Изменения реквизитов на форме
2 Kamich
 
25.03.13
17:20
(1) Строка должна быть по мере изменения реквизитов в форме, к примеру если в Табличной части колонки "Телефон" уже стоит значение "555-55-55", то при изменении в Форме документа реквизита "Телефон" на значение "555-55-55", то запись не добавляется, соответственно если изменить с "555-55-66", то старая запись в ТЗ остается и добавляется новая.
3 Maxus43
 
25.03.13
17:23
(2) ну вот сам алгоритм и описал. осталось сделать
4 Kamich
 
25.03.13
17:25
(3) На данный момент я не имею навыков программно создавать алгоритмы.
5 Kamich
 
25.03.13
17:26
(3) могли подсказать?
6 Kamich
 
25.03.13
17:31
(5) *Можете привести пример?
7 Maxus43
 
25.03.13
17:33
ТелефонПриИзменении(....)

Если ТабличнаяЧасть1.Найти(Элемент.Значение, "Телефон") = Неопределено Тогда
// такого нет, добавляй
Иначе
// уже есть, ничо не делай
КонецЕсли;
8 Kamich
 
25.03.13
17:40
(7) Правильно ли будет если я алгоритм впишу при изменениях в реквизит "Телефон",  "ЭлПочта"?
9 Maxus43
 
25.03.13
17:41
(8) в первой строчке (7) "ТелефонПриИзменении(....)", оно и есть
10 Kamich
 
25.03.13
17:44
(9) Я имею ввиду если я сделаю следующим образом:
Процедура ТелефонПриИзменении(Элемент)
  Если Контакты.Найти(Элемент.Значение, "Телефон") = Неопределено Тогда
       НоваяСтрока=ЭлементыФормы.ТабличнаяЧасть1.Значение.Добавить();
       НоваяСтрока.Телефон=ЭлементыФормы.Телефон.Значение;
       НоваяСтрока.ЭлПочта=ЭлементыФормы.ЭлПочта.Значение;
  Иначе
// уже есть, ничо не делай

КонецЕсли;
КонецПроцедуры

Процедура ЭлПочтаПриИзменении(Элемент)
  Если Контакты.Найти(Элемент.Значение, "Телефон") = Неопределено Тогда
       НоваяСтрока=ЭлементыФормы.ТабличнаяЧасть1.Значение.Добавить();
       НоваяСтрока.Телефон=ЭлементыФормы.Телефон.Значение;
       НоваяСтрока.ЭлПочта=ЭлементыФормы.ЭлПочта.Значение;
  Иначе
// уже есть, ничо не делай

КонецЕсли;
11 Kamich
 
25.03.13
17:44
(10) Бедт ли это правильно?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс