Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание исключения для ввода в поле "Номер"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Andrian
Хочу попросить помощи, в общем есть справочник "ДоговорыКонтрагентов" и надо провести проверку на заполнение "Номера"(Номер договора). Просто если два менеджера зайдут в документ "ЗаказКлиента" и поставят одинаковые номера, то будет не хорошо и хочется проверку поставить, что бы при ПриЗаписи проверяла объект.номер и поиск по справочнику по реквизиту и выдавало ошибку. Вот код, вроде выдает ошибку, но выдает даже на любой номер ,какой бы я не ставил, даже если этого номера совсем нет, все равно не дает провести
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    РезултатПоиска = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Номер",Объект.Номер).ПолучитьОбъект();
        Если Строка(РезултатПоиска.Номер) =  Строка.(Объект.Номер)  Тогда
           ТекстОшибки = НСтр("ru='ОТКАЗ.'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
            ТекстОшибки,
            Объект.Ссылка,
            "Объект.Номер",
            ,
            Отказ);
            КонецЕсли;  



КонецПроцедуры
Petre
1. ПриЗаписи ссылка на текущий объект уже существует, т. е. такой поиск всегда найдет как минимум себя.
2. Для разных организаций / контрагентов / дат может быть одинаковый номер в договоре.
Andrian
а куда тогда лучше закинуть текущее исключение, что бы он до записи проверил?
ПРосто на каждый заказ, один номер, номера не дублируются
Petre
Andrian @ Today, 14:53 необходимо зарегистрироваться для просмотра ссылки ,
Куда закинуть - зависит от многих факторов. Если проверки тяжелые, то следует избегать их в момент транзакции. Иначе - дело вкуса.
Тут речь о том, что необходимо построить нормальный запрос, внести туда все необходимые условия (в т. ч. и исключить из выборки ссылку на себя).
Andrian
Petre @ 15.06.18, 15:59 необходимо зарегистрироваться для просмотра ссылки ,
Разве обязательно делать запрос, если можно проверкой обойтись?
Дело в том, что тут и без запроса можно, просто не знаю, как обратиться ко всем элемента реквизита "Номер" справочника ЗаказыКонтрагентов и сравинть в Если
Vofka
Цитата(Andrian @ 19.06.18, 8:46) необходимо зарегистрироваться для просмотра ссылки
Разве обязательно делать запрос, если можно проверкой обойтись?

Запрос будет в любом случае, хочется вам этого или нет. Но в одном случае просто он будет как бы неявный (для вас), а в другом явный и более гибкий в своих настройках.
Andrian
Vofka @ Сегодня, 8:04 необходимо зарегистрироваться для просмотра ссылки ,
Хорошо, а на какое действие делать запрос?
Vofka
Я бы сделал это в ОбработкаПроверкиЗаполнения()
Andrian
Vofka @ Сегодня, 9:29 необходимо зарегистрироваться для просмотра ссылки ,
А как вообще сообразить этот отчет, я просто как исключение сделать, вроде представляю, а как отчет, я даже не могу представить(
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.