powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Проверка уникальности наименования
20 сообщений из 20, страница 1 из 1
Проверка уникальности наименования
    #39256529
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Есть справочник Бренд. Нужно запретить менеджерам записывать дубли. В данный момент перед записью выполняется только удаление лишних символов:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Функция ПроверитьНаименованиеНоменклатуры (НомНаим)
	Наим = НомНаим;
	Наим = СтрЗаменить(Наим,"¶","");
	Наим = СокрЛП (Наим);
	Возврат Наим;
КонецФункции 


&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
	Объект.Наименование =  ПроверитьНаименованиеНоменклатуры (Объект.Наименование)
КонецПроцедуры



Мне нужно запретить запись дублей брендов в справочник Бренды.
Нашел примерный образец:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
&НаСервере
	Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
		Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   Бренд.Наименование
    |ИЗ
    |   Справочник.Бренд КАК Бренд
    |ГДЕ
    |   Бренд.Наименование = &Наименование";
    
    ИсходнаяСтрока=Объект.Наименование;
    
	//Запрос.УстановитьПараметр("Наименование",ФункцияНаименование.УдалениеНезначимыхСимволов(ИсходнаяСтрока));            
	Результат=Запрос.Выполнить().Выбрать();
    
    Если Результат.Количество()>0 тогда
        Отказ=Истина;
        Сообщить("Бренд с таким названием уже существует");
    Иначе
        Отказ=Ложь; 
    КонецЕсли;
КонецПроцедуры


Не подскажете, как бы мне это связать, чтобы в дополнение к вышеупомянутой процедуре (Процедура НаименованиеПриИзменении(Элемент)) выполнялась еще и проверка уникальности наименования. Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256542
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
убрать ПроверитьНаименованиеНоменклатуры на сервер. или общ. модуль

не должно в событиях изменения реквизитов гуя быть ничего что может понадобиться вызывать со стороны сервера -- разные обсчеты/пересчеты. они должны только вызываться из событий
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256548
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функцию ПроверитьНаименованиеНоменклатуры переношу в общий модуль, добавляю Экспорт?
Вызываю ее из модуля справочника Бренд (Процедура НаименованиеПриИзменении).
Куда прилепить проверку уникальности? Заранее извиняюсь за дилетантские вопросы. Можно подробнее объяснить? Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256549
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander4321Куда прилепить проверку уникальности?

зачем ее куда то лепить? вы ее уже запихали в событие, она забиндена на запись в форме на стороне сервера

http://infostart.ru/public/153748/
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256555
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, спасибо! Сейчас почитаю.
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256890
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем вот, что получилось (название функции заменил на ПроверитьНаименованиеБренда):
В модуле формы:
Код: sql
1.
2.
3.
4.
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
	Объект.Наименование =  ПроверитьНаименованиеБренда (Объект.Наименование)
КонецПроцедуры


В общем модуле:
Код: sql
1.
2.
3.
4.
5.
6.
7.
Функция ПроверитьНаименованиеБренда (НомНаим)   Экспорт
	Наим = НомНаим;
	Наим = СтрЗаменить(Наим,"¶","");
	Наим = СокрЛП (Наим);
	//Наим = Врег(Лев(Наим,1)) + нрег(Сред(Наим,2));
	Возврат Наим;
КонецФункции 


Это все нормально отрабатывается, данная функция не проверяет наличие дублей.
Далее в модуле формы:
Код: sql
1.
2.
3.
4.
&НаКлиенте
Процедура НаименованиеСоздание(Элемент, СтандартнаяОбработка)
	НаименованиеСозданиеНаСервере(Объект.Наименование);
КонецПроцедуры


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
&НаСервере
Процедура НаименованиеСозданиеНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   Бренд.Наименование
    |ИЗ
    |   Справочник.Бренд КАК Бренд
    |ГДЕ
    |   Бренд.Наименование = &Наименование";
    
    ИсходнаяСтрока=Объект.Наименование;
    
	//Запрос.УстановитьПараметр("Наименование",ФункцияНаименование.УдалениеНезначимыхСимволов(ИсходнаяСтрока));            
	Результат=Запрос.Выполнить().Выбрать();
    
    Если Результат.Количество()>0 тогда
        Отказ=Истина;
        Сообщить("Бренд с таким названием уже существует");
    Иначе
        Отказ=Ложь; 
    КонецЕсли;  
КонецПроцедуры


При проверке на ошибке выдает
Код: sql
1.
2.
{Справочник.Бренд.Форма.ФормаЭлемента.Форма(10,2)}: Недостаточно фактических параметров (НаименованиеСозданиеНаСервере)
	<<?>>НаименованиеСозданиеНаСервере(Объект.Наименование); (Проверка: Тонкий клиент)


Проверить работоспособность не могу до исправления этой ошибки. Не подскажете, что поправить? Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256895
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вызов НаименованиеСозданиеНаСервере(Объект.Наименование);

сигнатура НаименованиеСозданиеНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)


ничего не смущает?
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256968
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С сожалением вынужден признать, что не смущает. Понятно, что это от незнания. Поэтому и спрашиваю. Что там не так? Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256995
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander4321,

количество параметров в описании процедуры и в вызове этой процедуры разное
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256997
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил строку в процедуру на сервере
Код: sql
1.
Запрос.УстановитьПараметр("Наименование",ИсходнаяСтрока);


Получилось:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
&НаСервере
Процедура НаименованиеСозданиеНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |   Бренд.Наименование
    |ИЗ
    |   Справочник.Бренд КАК Бренд
    |ГДЕ
    |   Бренд.Наименование = &Наименование";
    
    ИсходнаяСтрока=Объект.Наименование;
    
	
	Запрос.УстановитьПараметр("Наименование",ИсходнаяСтрока);
	Результат=Запрос.Выполнить().Выбрать();
    
    Если Результат.Количество()>0 тогда
        Отказ=Истина;
        Сообщить("Бренд с таким названием уже существует");
    Иначе
        Отказ=Ложь; 
    КонецЕсли;  
КонецПроцедуры


Проблема, как я понял в передаваемых параметрах?
Из модуля формы передаю на сервер Объект.Наименование
Код: sql
1.
НаименованиеСозданиеНаСервере(Объект.Наименование);


А параметры процедуры на сервере
Код: sql
1.
НаименованиеСозданиеНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)


Где неправильные параметры: на сервере или на клиенте? Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39256999
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tvm,
не видел ваше сообщение, пока ответ писал. Нужно добавить передаваемые с клиента параметры? Какие? Или наоборот на сервере какие-нибудь убрать? Данный код нашел в интернете. Спасибо!
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257014
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слушайте, вы хоть для приличия какие-то буквары почитайте по 1с... или там наморщите ум и вспомните школьный паскаль... когда сигнатура с вызовом не совпадает - ну детская ошибка ведь

если для вас сие тайна за 7 печатями - может программирование это не ваше?

забадали уже откровенные "кухарки в правительстве"
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257016
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 1с и так порог вхождения низкий. еще тут не хватало гугло-копи-паста-программистов
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257019
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последний выдох ГПЖ,
Во первых, я не в правительстве.
Во вторых, на кухне не работаю.
В третьих, я же не просил лично Вас мне отвечать. Форум - место общее. Нет так нет. Я программировать и не собираюсь - все что я делаю, так это пытаюсь привести в нужную кондицию нашу рабочую конфигурацию.
Да, еще... Я с протянутой рукой тут не стою, чтобы кого-то задалбывать. Свои вопросы я сам в состоянии решить: если не подскажут на форуме, сам не додумаюсь, не найду ответа в интернете - в конце концов всегда можно заплатить деньги и вопрос будет решен.
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257057
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander4321, в конце концов всегда можно заплатить деньги и вопрос будет решен. Не обижайтесь пожалуйста, это не сарказм, но в вашем случае это единественный разумный варинат. Потому что время потраченное вами на решение этой проблемы будет стоить дороже, чем оплата услуги. По той причине что у вас нет ни малейшего понятия о программировании в 1С.
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257072
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerПо той причине что у вас нет ни малейшего понятия о программировании в 1С.

"1с" тут лишнее


alexander4321 Я программировать и не собираюсь - все что я делаю, так это пытаюсь привести в нужную кондицию нашу рабочую конфигурацию .

оставьте небо к птицам а сами обратитесь к стульям.

каждый должен заниматься своим делом.

в качестве пробы пера ваши изыскания и код еще туда сюда все проходят фазу "г.внокода", но в рабочей базе в продакшене этим потугам не место
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257297
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все работает. На удивление украинец из Киева смог мне одним предложением по русски объяснить то, что русские друг другу не смогли объяснить:
"А может просто вставьте текст в процедуру ПриЗаписиНаСервере?"
Без выпендрежа, без заумных рассуждений.
P.S.... Там что-то было сказано о моей квалификации. Так я и не претендовал на особые познания. В правилах форума я не нашел требований обязательной квалификации в программировании при регистрации на данном форуме, а также при отправке сообщений. А вот цитата из правил данного форума:
Код: sql
1.
2.
Запрещается:
публикация грубых, оскорбляющих и унижающих сообщений...


Это я про высказывания "Последний выдох ГПЖ " про стулья, про "г.внокод", про потуги и т.д.
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257309
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"г.внокод" тут это не унижение - это просто факт. медицинский

ПриЗаписиНаСервере - это уже после записи но до завершения транзакции. зачем вы субд напрягаете глупостями типа отката транзакций, когда ее можно было не делать?
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257320
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последний выдох ГПЖ,
у Вас есть медицинское образование?
...
Рейтинг: 0 / 0
Проверка уникальности наименования
    #39257328
alexander4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последний выдох ГПЖ,
последнее мое сообщение было было лишним. Извиняюсь. Только сейчас дошло, что основная Ваша мысль в последнем Вашем сообщении заключалась в том, что есть более правильный способ организовать проверку дублей. Только я все равно сейчас не пойму, как по другому организовать проверку, а так, вроде бы, все работает. Придется пока что так все оставить. В любом случае спасибо за любую помощь. Еще раз приношу извинения, если что не так написал.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Проверка уникальности наименования
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]