Как програмно реализовать уникальность поля в табличной части? #528998


#0 by Капюшон
Мне нужно, чтобы в табличной части документа, небыло строчек с одинаковым значением "номенклатура". для этого я на поле "номенклатура" повесил следующий обработчик Но этого оказалось недостаточно. ведь при копировании строки и добавлении новой с пустым полем "номенклатура", условие уникальности может нарушиться. Посоветуйте какие ещё обработчики надо повесить на табличную часть?
#1 by dimoff
Зачем вешать ещё обработчики?
#2 by Рэйв
Синтаксис: ПередОкончаниемРедактирования(<Новая строка>, <Отмена редактирования>, <Отказ>) Параметры: <Новая строка> Тип: Булево. Установлен в Истина, если строка была добавлена или скопирована. <Отмена редактирования> Тип: Булево. Истина, если произошла отмена редактирования. <Отказ> Тип: Булево. Признак отказа от выполнения действия. Значение по умолчанию: Ложь Описание: Вызывается перед окончанием редактирования строки. Проверяешь наличие выбранной номенклатуры и если есть Отказ=Истина;
#3 by Defender aka LINN
Лучше перед записью проверять
#4 by Капюшон
перед записью документа?
#5 by Defender aka LINN
Ну, что у тебя там
#6 by Капюшон
а это не срабатывает. он в любом случае сам себя находит
#7 by OFF
найти строки?
#8 by Рэйв
Пробегайся перебором и исключай тек строку.
#9 by Капюшон
вариант
#10 by lxs
смысл? Что с не выходит? Обработчик находит сам себя? Поставь условие на результат поиска, и будет тебе счастье.
#11 by lxs
"Обработчик находит сам себя" - имел ввиду новую строку по введенному только что значению))
#12 by Капюшон
какое условие? чтоб номер найденной строки небыл равен текущей7
#13 by lxs
на количество найденных строк. Если больше 1, значит твое уже не уникально. Логично?
#14 by pwei
перед записью объекта: скопировать табчасть в тз (одна колонка номенклатура), добавить колонку счетчик. заполнить счетчик единичками. свернуть номенклатуру с суммированием счетчика. там где двойка - дубль
#15 by Капюшон
найти не находит более одного значения. НайтиСтроки только придется юзать
#16 by Капюшон
вот как будет правильно    Если Элемент.ТекущиеДанные.Номенклатура.Пустая=Истина Тогда
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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