Проверка ИНН при вводе нового контрагента
22.06.2011
11:19
#21
бывает, что задвоение (троение и т.д.) контриков так "достанет", что на все согласен!
Будем надеяться, что у них мысли и "задерживаются".

22.06.2011
11:23
#22
Ну я бы такой вариант рассматривал только в крайней необходимости, когда уже совсем нет возможности внести изменения в конфигурацию (одну подписку на событие и один общий модуль).
22.06.2011
12:16
#24
"Что-то я тут с Вами совсем запутался
<br> <br>Есть же реквизит - ИНН.<br>Он заполняется - и при записи нужно проверить его уникальность. По моему, суть в том, как его проверить.<br>Запросом получаем все ИНН-ы, это понятно. А вот как получить свежевведенное значение?<br> <br>По моему, примерно так:<br>Запрос = Новый запрос;<br>Запрос.Текст = .......<br>// тут мы получили все записанные ИНН , присвоив псевдоним, например, ИНН2<br> А дальше что-то вроде:<br>Если Справочники.ИНН = ВЫборка.ИНН2 Тогда<br>Сообщить("Запись невозможно, бла-бла-бла")<br>И отказ при записи<br>Иначе<br>записываем документ<br> КонецПроцедуры;<br> <br>Как Вам?"

23.06.2011
14:25
#28
"Вот реально работающий обработчик события "ПередЗаписью", обеспечивающий уникальность комбинации ИНН/КПП/ОКПО :<br> <br> <br><pre>Процедура XXX_ПриСозданииКонтрагентаПередЗаписью(Источник, Отказ) Экспорт<br> Если Источник.ЭтоГруппа тогда<br> возврат;<br> КонецЕсли;<br><br><br> //Проверка уникальности ИНН/КПП/ОКПО<br> Запрос = Новый Запрос;<br> Запрос.Текст = "ВЫБРАТЬ <br> | Контрагенты.Ссылка КАК Контрагент<br> |ИЗ<br> | Справочник.Контрагенты КАК Контрагенты<br> |ГДЕ<br> | Контрагенты.КодПоОКПО = &ВыбКодПоОКПО<br> | И Контрагенты.ИНН = &ВыбИНН<br> | И Контрагенты.КПП = &ВыбКПП<br> | И Контрагенты.Ссылка <> &ВыбКонтрагент";<br><br><br> Запрос.УстановитьПараметр("ВыбКодПоОКПО",Источник.КодПоОКПО);<br> Запрос.УстановитьПараметр("ВыбИНН",Источник.ИНН);<br> Запрос.УстановитьПараметр("ВыбКПП",Источник.КПП);<br> Запрос.УстановитьПараметр("ВыбКонтрагент",Источник.Ссылка);<br> Результат = Запрос.Выполнить();<br> Выборка = Результат.Выбрать();<br><br><br> ИННКППОКПОНеУникальный = Выборка.Следующий();</pre><br><br> <br> <br><pre><br><br> #Если Клиент Тогда<br> Если (ИННКППОКПОНеУникальный) и (Источник.ЭтоНовый()) тогда<br> Режим = РежимДиалогаВопрос.ДаНет;<br> Ответ = Вопрос("Контрагент с таким ИНН, КПП и ОКПО уже существует! Вы действительно хотите записать ещё один?",Режим,60,КодВозвратаДиалога.Нет);<br> Если Ответ = КодВозвратаДиалога.Нет тогда<br> отказ = истина;<br> возврат;<br> КонецЕсли;<br> КонецЕсли;<br> #КонецЕсли<br><br><br> Если ИННКППОКПОНеУникальный тогда<br> Если ПустаяСтрока(Источник.Код) Тогда<br> Источник.УстановитьНовыйКод();<br> КонецЕсли;<br> Источник.КодПоОКПО = Источник.Код;<br> КонецЕсли;<br> Если ПустаяСтрока(Источник.ИНН) И ПустаяСтрока(Источник.КПП) И ПустаяСтрока(Источник.КодПоОКПО) Тогда<br> Если ПустаяСтрока(Источник.Код) Тогда<br> Источник.УстановитьНовыйКод();<br> КонецЕсли;<br> Источник.КодПоОКПО = Источник.Код;<br> КонецЕсли;<br>КонецПроцедуры<br></pre>"
Читают тему
(гостей: 1)