|
Проверка на наличие данные в ТЧ | ☑ | ||
---|---|---|---|---|
0
Валидатор
17.02.14
✎
13:23
|
управляемое приложение, самописная конфа. Есть справочник контрагенты, у него есть ТП - транспортные средства, и нужно, чтобы при добавлении нового транспортного средства, если такое уже есть у контрагента, вылезала ошибка, в обычном приложении можно было просто циклом пройтись по строкам это ТЧ и условие прописать, а как в управляемом приложении сделать это?
|
|||
1
Wobland
17.02.14
✎
13:24
|
так же
|
|||
2
1Сергей
17.02.14
✎
13:24
|
так же, на сервере
|
|||
3
butterbean
17.02.14
✎
13:24
|
зачем циклом если есть Найти()??
|
|||
4
Godofsin
17.02.14
✎
13:25
|
(3) +
|
|||
5
Валидатор
17.02.14
✎
13:25
|
а в каком событии использовать этот поиск у этой ТЧ?
|
|||
6
Godofsin
17.02.14
✎
13:25
|
И НайтиСтроки()
|
|||
7
Enders
17.02.14
✎
13:26
|
(3) Что б было больше строк кода :)
|
|||
8
Валидатор
17.02.14
✎
13:27
|
Сейчас делаю в событии
НаКлиенте Процедура ТранспортныеСредстваПриИзменении(Элемент) //тут по идее нужно получить нашу ТЧ, но код вида: //ТранспортныеСредства.НайтиСтроки() не дает использовать КонецПроцедуры |
|||
9
Валидатор
17.02.14
✎
13:31
|
ТранспортноеСредствоПоискПоНаименованию = ЭтаФорма.Элементы.ТранспортныеСредства
так тоже не получить ТЧ |
|||
10
Валидатор
17.02.14
✎
13:41
|
как проверку то поставить?
|
|||
11
Wobland
17.02.14
✎
13:43
|
найти на сервере
|
|||
12
Валидатор
17.02.14
✎
13:45
|
(11) в каком событии ТЧ ?
|
|||
13
Feunoir
17.02.14
✎
13:46
|
(11) Ну формально ДанныеФормыКоллекция НайтиСтроки() доступно втонком клиенте. ТС не колется какая у него ошибка.
(9) Почему не даёт. Ошибка какая? |
|||
14
Валидатор
17.02.14
✎
13:47
|
(13) мне тупо не выбрать таблицу, чтобы для нее делать манипуляции какие-либо
|
|||
15
Wobland
17.02.14
✎
13:50
|
(14) мож, лучше поискать?
|
|||
16
Валидатор
17.02.14
✎
13:51
|
(15) в обычном можно было просто сразу написать имя таблицы и делать с ней, что хочешь, тут так не работает
|
|||
17
Feunoir
17.02.14
✎
13:51
|
(14) Сегодня понедельник. Пожалей мой мозг, напиши подробнее. Мне достаточно ребусов генерального.
|
|||
18
Feunoir
17.02.14
✎
13:51
|
(16) Объект.ТранспортныеСредства
|
|||
19
Wobland
17.02.14
✎
13:53
|
(16) а тут часто иногда всё находится в объекте
|
|||
20
Валидатор
17.02.14
✎
13:55
|
просто Объект, вот теперь нашлось, теперь надо сообразить, как задать ново вводимую строку?
|
|||
21
Валидатор
17.02.14
✎
13:56
|
НоваяСтрока = ЭтаФорма.Элементы.ТекущиеДанные так будет ново вводимая строка?
|
|||
22
Feunoir
17.02.14
✎
13:59
|
(21) Элементы.<имя_элемента_формы_с_ТЧ>.ТекущиеДанные
|
|||
23
Валидатор
17.02.14
✎
14:26
|
ТекДанные = Элементы.ТранспортныеСредства.ТекущиеДанные;
ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТранспортноеСредство", ТекДанные); НайденныеСтроки = Объект.ТранспортныеСредства.НайтиСтроки(ПараметрыОтбора); не получается найти значение среди уже имеющихся |
|||
24
Wobland
17.02.14
✎
14:28
|
ТекДанные - это что?
|
|||
25
Валидатор
17.02.14
✎
14:29
|
(24)
ТекДанные = Элементы.ТранспортныеСредства.ТекущиеДанные; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТранспортноеСредство", ТекДанные.ТранспортныеСредства); НайденныеСтроки = Объект.ТранспортныеСредства.НайтиСтроки(ПараметрыОтбора); |
|||
26
Валидатор
17.02.14
✎
14:39
|
&НаКлиенте
Процедура ТранспортныеСредстваПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) ТекДанные = Элементы.ТранспортныеСредства.ТекущиеДанные; Если ТекДанные = Неопределено Тогда Возврат КонецЕсли; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТранспортноеСредство", ТекДанные.ТранспортноеСредство); НайденныеСтроки = Объект.ТранспортныеСредства.НайтиСтроки(ПараметрыОтбора); Для каждого строка из НайденныеСтроки Цикл Если строка.ТранспортноеСредство = ТекДанные.ТранспортноеСредство Тогда Сообщить("такая запись уже есть"); КонецЕсли; КонецЦикла; КонецПроцедуры При добавлении второй строки, даже до выбора ТС летит ошибка что такое ТС уже есть |
|||
27
Валидатор
17.02.14
✎
14:50
|
&НаКлиенте
Процедура ТранспортныеСредстваПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) ТекДанные = Элементы.ТранспортныеСредства.ТекущиеДанные; Если ТекДанные = Неопределено Тогда Возврат КонецЕсли; Для каждого Строка из Объект.ТранспортныеСредства Цикл Если Строка.ТранспортноеСредство = ТекДанные.ТранспортноеСредство Тогда Тогда Сообщить("такая запись уже есть"); Возврат КонецЕсли; КонецЦикла; КонецПроцедуры так тоже проверка не срабатывает |
|||
28
Валидатор
17.02.14
✎
14:55
|
Текущие данные у нас буду определяться той строкой, на которой мышка стоит, а нужно как то отследить значение, которое было добавлено, и потом сделать проверку, есть это значение у нас или нет еще
|
|||
29
Валидатор
17.02.14
✎
15:06
|
ап
|
|||
30
Валидатор
17.02.14
✎
15:14
|
Как получить строку, которую только добавили? а то текущие данные это строка, которая у нас выделена(
|
|||
31
DrLekter
17.02.14
✎
15:18
|
Если методом Добавить(), то это будет последняя строка ТЧ
|
|||
32
Валидатор
17.02.14
✎
15:20
|
(31) зачем мне последняя строка тч?
|
|||
33
ДенисЧ
17.02.14
✎
15:21
|
Попробуй на номер строки
|
|||
34
DrLekter
17.02.14
✎
16:27
|
(32) потому что это и будет та, которую только что добавили
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |