|
Дубли в табличной части | ☑ | ||
---|---|---|---|---|
0
VKRNA5
13.09.15
✎
20:06
|
Здравствуйте!
Подскажите, пожалуйста, как в табличной части документа, программно ограничить пользователю ввод значений, которые уже присутствуют в этой табличной части. К примеру, в колонке таблицы, значения 30 40 50 60, пользователь вводит число 50, система не должна давать ввести данное значение, пока пользователь не отредактирует число на другое, которого нет в табличной части. |
|||
1
PR третий
13.09.15
✎
20:11
|
(0) Программно
|
|||
2
Defender aka LINN
13.09.15
✎
20:12
|
Придется написать немного кода.
Или много, если промеж ушей масла маловато. Или заплатить денег тому, кто умеет, если промеж ушей только ниточка. |
|||
3
VKRNA5
13.09.15
✎
20:20
|
Заплатить денег за 2 строчки кода?)
Я сделал так, что при вводе значений в табличную часть, если значение повторяется, то строка удаляется, но это не корректно, как сделать так, чтобы строка не удалялась, но и не давала пользователю ввести не корректное значение в таблицу, пока он его не изменит? |
|||
4
1sanekmaloi1
13.09.15
✎
20:23
|
Так если знаешь что 2 строки, чего спрашиваешь?
|
|||
5
PR третий
13.09.15
✎
20:23
|
(3) Да не вопрос, напиши сам, нечего раскидываться деньгами
|
|||
6
VKRNA5
13.09.15
✎
20:26
|
Если бы знал как правильно это написать, не спрашивал бы советов.
|
|||
7
PR третий
13.09.15
✎
20:29
|
(6) Так если ты разбираться не хочешь, а хочешь готовый код, то почему тебя возмущает предложение заплатить за это?
|
|||
8
spectre1978
13.09.15
✎
20:32
|
У табличной части есть всяки-разны события. Вот их надо покурить и написать обработчик, который не даст закончить ввод строки, если введены значения которые уже были
|
|||
9
PR третий
13.09.15
✎
20:32
|
Вообще просто не давай закончить редактирование строкт ТЧ и все
|
|||
10
VKRNA5
13.09.15
✎
20:36
|
(9) Это я понимаю, но как это сделать программно, не придумал, можете привести пример?
|
|||
11
oslokot
13.09.15
✎
20:39
|
(0) Вообще-то в идеале, принято ограничивать пользователю выбор данных уже имеющихся в ТЧ.
И сделать это нужно на уровне параметра выбора для поля ввода. |
|||
12
VKRNA5
13.09.15
✎
20:45
|
(11)а можете подсказать новичку более подробно как это сделать?
|
|||
13
PR третий
13.09.15
✎
20:47
|
(10) А в чем проблема-то?
|
|||
14
oslokot
13.09.15
✎
20:51
|
(12) Если это выбор из имеющихся данных, например из справочника, то имеет смысл наложить на него отбор при интерактивном подборе. А если это число, то проверять ввод в событии, например, в ПриОкончанииРедактирования
|
|||
15
VKRNA5
13.09.15
✎
21:02
|
(14) Это число и У меня Выбрано событие ПередОкончаниемРедактирования
Я в цикле обхожу табличную часть, проверяю каждую строку табличной части на соответствие введенной строке, если строки совпадают, то Отказ Но когда в режиме предприятия пользователь вводит в таблицу значение. которые уже есть в табличной части, всё зависает и не даёт совершить больше никаких действий, в том числе и отредактировать данное число. |
|||
16
PR третий
13.09.15
✎
21:13
|
(15) Что-то не похоже на две строки кода, больше похоже на небольшую тележечку копрокода
|
|||
17
breezee
13.09.15
✎
22:21
|
А зачем накладывать? пусть пользователь хоть 10 раз вводит. Можно(нужно) же потом свернуть табличную часть. В том же запросе поставить группировку по нужному полю. Можно постановку задачи где такое необходимо?
|
|||
18
1Сергей
14.09.15
✎
07:38
|
(15) нажми Esc
|
|||
19
SiAl-chel
14.09.15
✎
07:47
|
(18) ESC в восьмерке не всегда не поможет, там вроде Ctrl+Break рулит, и то при условии прямых рук кодера.
(15) В цикле наложи условие Если СтрокаТЧ <> ТекущаяСтрокаТЧ Тогда ПыСы: Переменные в условии надо воспринимать абстрактно. |
|||
20
SeraFim
14.09.15
✎
07:48
|
Сделать проверку в обработке проведения не предлагали еще?
Предположим наколотили 500 строк в таблице. Пользователь тыкает 50, система не дает ничего сделать, просит ввести другое., тыкает 40, то же самое. А пользователь не знает, какие значения уже введены, пересматривать все 500 строк будет очень долго. Пока пользователь пытается угадать нужную цифирку, могут отключить свет/админ перезагрузит сервак и тд. А пользователь даже сохраниться не может. А так - хоть 500 одинаковых строк пусть введет, но сможет сохраниться, однако потом все-таки провести он нифига не сможет. |
|||
21
Wirtuozzz
14.09.15
✎
07:58
|
Свернуть ТЧ не предлагать?
|
|||
22
1Сергей
14.09.15
✎
07:59
|
(19) >>...не всегда не поможет...
http://timeskz.kz/uploads/posts/2015-04/1430387187_d09ad0bbd0b8d187d0bad0be_6.jpg |
|||
23
SiAl-chel
14.09.15
✎
08:04
|
(22) Ха-ха. "Ты такой умный, это что-то..." (Реклама из 1990-х).
|
|||
24
ЧеловекДуши
14.09.15
✎
08:18
|
(0) Отлавливать в "ПриИзменении". А "ПриНачалеРедактирования", запоминать значения для восстановления :)
|
|||
25
ЧеловекДуши
14.09.15
✎
08:19
|
(19) В 8.х таки вообще проблематично прервать процесс. Особенно на УФ :)
|
|||
26
ЧеловекДуши
14.09.15
✎
08:21
|
(20) >>> в обработке проведения
Откуда у вас такое маниакальное желание засорять лишними проверками и тормозными диалогами Модули, которые выполняются в Транзакции? :) |
|||
27
SeraFim
14.09.15
✎
08:54
|
(26) это маниакальное желание решить задачу сразу, просто и комплексно, дабы потом по 15 раз не возвращаться к ней.
Сейчас окажется, что: 1. Автор забыл сделать проверку при копировании строки. 2. Документ вводится на основании другого. То есть в другом документе (например, "ЗаказПокупателя") можно указывать 20 20 20, а в этом документе (скажем, "Продажа") - этого делать уже нельзя, а автоматом уже заполнилось. 3. Есть какие-то другие операции, которые программно заполняют документ. Какие-то обмены, обработки и тд. |
|||
28
Vladal
14.09.15
✎
10:57
|
(27) Тогда перед записью проверять. ЧТобы при первом вводе не было дублей.
(15), (19) В типовых есть процедура ОбщегоНазначения.ОтобратьСтрокиПоКритериям |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |