| 
    
        
     
     | 
    
  | 
8.3 Справочник. Модуль объекта. Отказ записи и вывод сообщения | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Wefast    
     21.02.24 
            ✎
    13:16 
 | 
         
        Собственно у справочника отключен контроль уникальности.
 
        Хочу программно проверить уникальность по наименованию 1. В модуле объекта ПередЗаписью проверяю, и если данный элемент справочника не уникален нужно сообщить об этом пользователю и отказаться от записи. Если пишу ОбщегоНазначения.СообщитьПользователю("какой то текст",,,ИСТИНА); Или Текст = "какой то текст" ВызватьИсключение Текст; То пользователю выводится ошибка, что не смог записать и в тексте "путь" до строчки кода где это произошло. В общем не такую ошибку я хочу выдать пользователю. А обычную 2. Так же возможно нужно учесть, что записывать могут несколько человек, и нужно видимо блокировать весь справочник. Но звучит как что то избыточное. Смотрю как сделано что то подобное в других справочниках. И там никаких блокировок, и так же вызывается исключение либо сообщение пользователю.  | 
|||
| 
    1
    
        Волшебник    
     21.02.24 
            ✎
    13:22 
 | 
         
        Проверять надо в форме ПередЗаписью
 
        Пишите там: Сообщить("текст");     | 
|||
| 
    2
    
        Wefast    
     21.02.24 
            ✎
    13:25 
 | 
         
        (1) а если программно запись происходит?     
         | 
|||
| 
    3
    
        Волшебник    
     21.02.24 
            ✎
    13:26 
 | 
         
        (2) При программной записи контроля быть не должно     
         | 
|||
| 
    4
    
        Dmitrii    
     21.02.24 
            ✎
    13:56 
 | 
         
        (2) >> а если программно запись происходит?
 
        Если программно производится запись, то какая разница - что в тексте об ошибке? При программной записи объекта как раз таки будет немаловажным знать - в какой именно строке Вашей чудо-программы возникло исключение.  | 
|||
| 
    5
    
        vicof    
     21.02.24 
            ✎
    14:29 
 | 
         
        (1) Проверять надо в обработке проверки заполнения     
         | 
|||
| 
    6
    
        Волшебник    
     21.02.24 
            ✎
    14:31 
 | 
         
        (5) Да, это ещё более правильно     
         | 
|||
| 
    7
    
        sikuda    
     21.02.24 
            ✎
    14:33 
 | 
         
        (1) Да лучше контролирвать в форме.
 
        (3) Согласен не должно, но незабываем стандартный = ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) https://its.1c.ru/db/v8std/content/463/hdoc  | 
|||
| 
    8
    
        Valdis2007    
     22.02.24 
            ✎
    04:30 
 | 
         
        Рекомендация с ИТС -"...Поэтому для реквизитов, некорректные значения которых могут привести к рассогласованности данных в информационной базе, проверку корректности следует выполнять в обработчиках событий, возникающих в транзакции записи - ПередЗаписью..." 
 
        Не уникальность наименования, это рассогласованность данных в БД. Поэтому используй - ПередЗаписью  | 
|||
| 
    9
    
        Valdis2007    
     22.02.24 
            ✎
    04:33 
 | 
         
        Другими словами...ОбработкаПроверкиЗаполнения - проверка корректности в контексте конкретного объекта.
 
        ПередЗаписью - проверка корректности в конексте окружения  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |