|   |   | 
| 
 | Дубли в табличной части | ☑ | ||
|---|---|---|---|---|
| 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) В типовых есть процедура ОбщегоНазначения.ОтобратьСтрокиПоКритериям | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |