|
как организовать запрет создания элемента справочника с наименованием , существующим в спр | ☑ | ||
---|---|---|---|---|
0
alpha78
13.07.22
✎
11:24
|
Здравствуйте, скажите пожалуйста, как организовать запрет создания элемента справочника с наименованием элемента, который существует в справочнике (интерактивно или если нет то - программно), то есть чтоб была блокирновка задваивания Наименования элемента справочника. Спасибо.
|
|||
1
Kigo_Kigo
13.07.22
✎
11:27
|
В Форме менеждера
Процедура ПередЗаписью() Если Не ЭтоГруппа Тогда Если Справочники.Номенклатура.НайтиПоНаименованию(Наименование) Тогда Отказ = Истина |
|||
2
Kigo_Kigo
13.07.22
✎
11:28
|
Сообщить("Номенклатура с наименованием: " + Нименование + "уже существует")
|
|||
3
Kigo_Kigo
13.07.22
✎
11:29
|
тьфу , в модуле объекта конечно же
|
|||
4
Фрэнки
13.07.22
✎
11:34
|
(3) А если костыльно лепить, то можно обработчике события формы ПередЗаписью
|
|||
5
Мультук
гуру
13.07.22
✎
11:35
|
(0)
Программист -- нельзя одинаковые! Пользователь -- ок, нельзя так нельзя: Молоко. Молоко.. Мoлоко Mолоко |
|||
6
arsik
гуру
13.07.22
✎
11:36
|
(1) Ужас. Он себя найдет
|
|||
7
Мультук
гуру
13.07.22
✎
11:37
|
(6) Не найдет, его еще нет
|
|||
8
DimVad
13.07.22
✎
11:37
|
(1) Вот Вы создали элемент справочника с наименованием "Валенок".
Записали. Потом зашли снова и установили галочку какую-нибудь... :-) Опс, меня опередили (6) |
|||
9
arsik
гуру
13.07.22
✎
11:37
|
(7) Еще один. Или тренируйся на котятах.
|
|||
10
Фрэнки
13.07.22
✎
11:38
|
(7) Перезапись уже существующего элемента запрещена?
|
|||
11
Мультук
гуру
13.07.22
✎
11:38
|
(6) Но-но где в условии задачи "изменение" ? Написано - создание
|
|||
12
Kigo_Kigo
13.07.22
✎
11:38
|
(6) да еще надо вставить Не ЭтоНовый(), тогда не найдет :)
|
|||
13
arsik
гуру
13.07.22
✎
11:40
|
(11) Просто кто то уже сталкивался с подобными задачами, а кто то не подумал.
|
|||
14
DimVad
13.07.22
✎
11:40
|
(12) Т.е. я смогу спокойно изменить в старом элементе справочника наименование так, чтобы оно стало как у существующего ?
Умора... |
|||
15
alpha78
13.07.22
✎
11:40
|
Kigo_Kigo, премного благодарен, удачи
|
|||
16
Kigo_Kigo
13.07.22
✎
11:40
|
(11) вся проблема мисты, то что люди код написанный на коленке вомпринимают всерьез и не рассматривают, что люди дают пинок в нужном направлении, а дель сам пусть себе мозг ибет, как и что :)
|
|||
17
Aleksey
13.07.22
✎
11:40
|
А потом начнется - почему у меня при обмене не создается номенклатура
|
|||
18
Aleksey
13.07.22
✎
11:41
|
По сабжу, это реализовано в типовой УТ, возъми оттуда и скопипасть
|
|||
19
Kigo_Kigo
13.07.22
✎
11:42
|
(14) создания элемента справочника с наименованием элемента, который существует в справочнике, речи о созданных и переименованных нет, можно найти элемент и проверить на ссылку, вче проблема?
Читай (16) |
|||
20
6awkup_true
13.07.22
✎
11:42
|
можно запросом через ПОДОБНО %Наименование% дернуть. избежим добавления точек или доп символов.
|
|||
21
Aleksey
13.07.22
✎
11:44
|
(20) это если ставить точки в конце, а не в середине.
|
|||
22
DimVad
13.07.22
✎
11:44
|
Пишется функция проверки на дубль.
Проверка выполняется запросом. Если элемент не новый - то в запросе проверяется совпадение ссылки Функция вызывается из процедуры "ПередЗаписью" объекта но естественно уже после проверки на ОбменДанными.Загрузка. Усё. |
|||
23
DimVad
13.07.22
✎
11:47
|
(19) // вче проблема
Например в том, что НайтиПоНаименованию найдёт первый встречный. Который может быть "он же", а может - и другой элемент справочника. И работать такая провека будет "как повезёт". |
|||
24
6awkup_true
13.07.22
✎
11:49
|
(21) таки если точки в середине, то это уже другое наименование получается, не?
|
|||
25
Масянька
13.07.22
✎
11:50
|
(0) Дать права на работу со справочником (внесение новых, редактирование, удаление) одному-двум человекам. Плюс четкие правила по формированию наименования.
А все дописки - раз на раз не приходится. |
|||
26
DimVad
13.07.22
✎
12:11
|
На ОФ :
Процедура ПроверкаДубля(Отказ) Запрос = Новый Запрос; Если ЭтоНовый() Тогда Запрос.Текст = "ВЫБРАТЬ | 1 КАК Поле1 |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Наименование = &Наименование"; Иначе Запрос.Текст = "ВЫБРАТЬ | 1 КАК Поле1 |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Наименование = &Наименование | И Номенклатура.Ссылка <> &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); КонецЕсли; Запрос.УстановитьПараметр("Наименование", Наименование); Рез = Запрос.Выполнить(); Если НЕ Рез.Пустой() Тогда Отказ = Истина; #Если Клиент Тогда Сообщить("Дубль, мать Вашу", СтатусСообщения.ОченьВажное) #КонецЕсли КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |