Дубли в табличной части #753086


#0 by VKRNA5
Здравствуйте! Подскажите, пожалуйста, как в табличной части документа, программно ограничить пользователю ввод значений, которые уже присутствуют в этой табличной части. К примеру, в колонке таблицы, значения 30 40 50 60, пользователь вводит число 50, система не должна давать ввести данное значение, пока пользователь не отредактирует число на другое, которого нет в табличной части.
#1 by PR третий
Программно
#2 by Defender aka LINN
Придется написать немного кода. Или много, если промеж ушей масла маловато. Или заплатить денег тому, кто умеет, если промеж ушей только ниточка.
#3 by VKRNA5
Заплатить денег за 2 строчки кода?) Я сделал так, что при вводе значений в табличную часть, если значение повторяется, то строка удаляется, но это не корректно, как сделать так, чтобы строка не удалялась, но и не давала пользователю ввести не корректное значение в таблицу, пока он его не изменит?
#4 by 1sanekmaloi1
Так если знаешь что 2 строки, чего спрашиваешь?
#5 by PR третий
Да не вопрос, напиши сам, нечего раскидываться деньгами
#6 by VKRNA5
Если бы знал как правильно это написать, не спрашивал бы советов.
#7 by PR третий
Так если ты разбираться не хочешь, а хочешь готовый код, то почему тебя возмущает предложение заплатить за это?
#8 by spectre1978
У табличной части есть всяки-разны события. Вот их надо покурить и написать обработчик, который не даст закончить ввод строки, если введены значения которые уже были
#9 by PR третий
Вообще просто не давай закончить редактирование строкт ТЧ и все
#10 by VKRNA5
Это я понимаю, но как это сделать программно, не придумал, можете привести пример?
#11 by oslokot
Вообще-то в идеале, принято ограничивать пользователю выбор данных уже имеющихся в ТЧ. И сделать это нужно на уровне параметра выбора для поля ввода.
#12 by VKRNA5
а можете подсказать новичку более подробно как это сделать?
#13 by PR третий
А в чем проблема-то?
#14 by oslokot
Если это выбор из имеющихся данных, например из справочника, то имеет смысл наложить на него отбор при интерактивном подборе. А если это число, то проверять ввод в событии, например, в ПриОкончанииРедактирования
#15 by VKRNA5
Это число и У меня Выбрано событие ПередОкончаниемРедактирования Я в цикле обхожу табличную часть, проверяю каждую строку табличной части на соответствие введенной строке, если строки совпадают, то Отказ Но когда в режиме предприятия пользователь вводит в таблицу значение. которые уже есть в табличной части, всё зависает и не даёт совершить больше никаких действий, в том числе и отредактировать данное число.
#16 by PR третий
Что-то не похоже на две строки кода, больше похоже на небольшую тележечку копрокода
#17 by breezee
А зачем накладывать? пусть пользователь хоть 10 раз вводит. Можно(нужно) же потом свернуть табличную часть. В том же запросе поставить группировку по нужному полю. Можно постановку задачи где такое необходимо?
#18 by 1Сергей
нажми Esc
#19 by SiAl-chel
ESC в восьмерке не всегда не поможет, там вроде Ctrl+Break рулит, и то при условии прямых рук кодера. В цикле наложи условие Если СтрокаТЧ <> ТекущаяСтрокаТЧ Тогда ПыСы: Переменные в условии надо воспринимать абстрактно.
#20 by SeraFim
Сделать проверку в обработке проведения не предлагали еще? Предположим наколотили 500 строк в таблице. Пользователь тыкает 50, система не дает ничего сделать, просит ввести другое., тыкает 40, то же самое. А пользователь не знает, какие значения уже введены, пересматривать все 500 строк будет очень долго. Пока пользователь пытается угадать нужную цифирку, могут отключить свет/админ перезагрузит сервак и тд. А пользователь даже сохраниться не может. А так - хоть 500 одинаковых строк пусть введет, но сможет сохраниться, однако потом все-таки провести он нифига не сможет.
#21 by Wirtuozzz
Свернуть ТЧ не предлагать?
#22 by 1Сергей
>>...не всегда не поможет...
#23 by SiAl-chel
Ха-ха. "Ты такой умный, это что-то..." (Реклама из 1990-х).
#24 by ЧеловекДуши
Отлавливать в "ПриИзменении". А "ПриНачалеРедактирования", запоминать значения для восстановления :)
#25 by ЧеловекДуши
В 8.х таки вообще проблематично прервать процесс. Особенно на УФ :)
#26 by ЧеловекДуши
>>> в обработке проведения Откуда у вас такое маниакальное желание засорять лишними проверками и тормозными диалогами Модули, которые выполняются в Транзакции? :)
#27 by SeraFim
это маниакальное желание решить задачу сразу, просто и комплексно, дабы потом по 15 раз не возвращаться к ней. Сейчас окажется, что: 1. Автор забыл сделать проверку при копировании строки. 2. Документ вводится на основании другого. То есть в другом документе (например, "ЗаказПокупателя") можно указывать 20 20 20, а в этом документе (скажем, "Продажа") - этого делать уже нельзя, а автоматом уже заполнилось. 3. Есть какие-то другие операции, которые программно заполняют документ. Какие-то обмены, обработки и тд.
#28 by Vladal
Тогда перед записью проверять. ЧТобы при первом вводе не было дублей. , В типовых есть процедура ОбщегоНазначения.ОтобратьСтрокиПоКритериям
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С