Имя: Пароль:
1C
1C 7.7
v7: Контроль уникальности в справочнике
0 Asia2016
 
20.08.21
11:38
Создали справочник. Код, Наименование. Контроль уникальности распространяется только на код. Есть ли встроенные функции контроля уникальности на Наименование (строка 17 знаков)
1 ДенисЧ
 
20.08.21
11:39
Нет. Встроенных нет.
2 Злопчинский
 
20.08.21
11:43
(0) при интерактивной работе контроль уникальности по наименованию пишется довольно просто.
Например, у меня в карточке номенклатуры стоит контроль уникальности по артикулу, а в контрагентах по ИНН.
3 Builder
 
20.08.21
11:44
(9) Ничего не мешает сделать текстовый код и использовать его в качестве наименования.
И сделать его основным представлением.
4 ДенисЧ
 
20.08.21
11:44
(3) А что, в клюшкам уже код сделать можно в 100 символов? ))
5 Builder
 
20.08.21
11:45
(4) Ну у ТС строка 17 знаков вроде, че бы нет?
6 Bigbro
 
20.08.21
11:46
проще свой контроль воткнуть в при записи.
7 Asia2016
 
20.08.21
11:58
спасибо
8 Злопчинский
 
20.08.21
11:59
(3) фиг вам. длина кода максимум 24 символа, маловато.
9 Злопчинский
 
20.08.21
12:00
17 знаков да, влезет
10 Злопчинский
 
20.08.21
12:01
(6) японский лыжник.
надо будет "втыкать" во всех местах где программно создаются, всякие загрузки и обработки.
плохо что нет "менеджера объекта", код которого бы отрабатывал при записи любого вида, хоть интерактивно, хоть программно.
11 Asia2016
 
20.08.21
12:39
Процедура ПриЗаписи()
    Спр=СоздатьОбъект("Справочник.ИКПУ");
    Если ПустаяСтрока(Наименование)=0 Тогда
        Если Спр.ВыбратьЭлементыПоРеквизиту("Наименование",Наименование,0,0)=1 Тогда                        
            Если Код<>Спр.Код Тогда
                Предупреждение("ИКПУ существует!");
                СтатусВозврата(0);
                Возврат;
            КонецЕсли;
        КонецЕсли;
         КонецЕсли;
КонецПроцедуры
12 Asia2016
 
20.08.21
12:41
выдает ошибку
Если Спр.ВыбратьЭлементыПоРеквизиту("Наименование",Наименование,0,0)=1 Тогда                        
{Справочник.ИКПУ.ФормаСписка.ФормаСписка.Модуль(4)}: Неверное имя реквизита!
13 Ёпрст
 
20.08.21
12:49
(12) наимнование - служебный реквизит, для него нельзя выбратьпореквизиту/найтипореквизиту
14 Ёпрст
 
20.08.21
12:50
Можно тока найтипонаименованию
15 Asia2016
 
20.08.21
13:35
Спасибо. все получилось
16 Bigbro
 
20.08.21
14:00
(10) все что требует уникальности обычно вносят только в одном месте и есть ровно 1 человек который отвечает за данные.
но если надо где попало вводить грузить и тд - делать в глобальнике глпроверка() и в нее впихивать все необходимое.
не забывая ее использовать во всех местах.
обычно так делается.
17 1Сергей
 
20.08.21
15:09
>>...и есть ровно 1 человек который отвечает за данные...

смищно
18 Злопчинский
 
20.08.21
16:36
(17) ржака