|
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) Бедт ли это правильно?
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший