Имя: Пароль:
1C
 
Проверка ИНН контрагента?
0 Sandres
 
04.03.11
12:21
Всем привет! Уже который час  голову ломаю .делаю проверку ИНН чтоб не могли ввести контрагента с уже существующим ИНН вот такой код в обработчике ПередЗаписью
Если Не ЭтоНовый() Тогда
           РезультатПоиска = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", СокрЛП(ИНН));
           Если Не РезультатПоиска.Пустая() Тогда
               Сообщить("Контрагент с таким ИНН уже существует!");
               отказ=истина;
             
           ИначеЕсли
               ЭтоНовый() тогда
       РезультатПоиска = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", СокрЛП(ИНН));
           Если Не РезультатПоиска.Пустая() Тогда
               Сообщить("Контрагент с таким ИНН уже существует!");
               Отказ=истина;
Не могу понять как сделать так что-бы если я открываю контрагента и ничего не меняю ну или меняю наименования контрагента, то данные записывались в справочник. Сейчас вес равно проверят. Уверен что тут ничего сложного . Просто еще одну ветку в цикл и в ней указать что ИНН не проверяется. ?????
1 Amra
 
04.03.11
12:23
Если Не ЭтоНовый() Тогда
           РезультатПоиска = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", СокрЛП(ИНН));
           Если РезультатПоиска.Ссылка<>Ссылка Тогда
               Сообщить("Контрагент с таким ИНН уже существует!");
               отказ=истина;
2 Aleksey
 
04.03.11
12:25
Если Не ЭтоНовый() Тогда
  РезультатПоиска = ...
  Если Не РезультатПоиска.Пустая() Тогда
     Сообщить("Контрагент с таким ИНН уже существует!");
     отказ=истина;
  ИначеЕсли ЭтоНовый() тогда
???? И при каких условиях должна сработать эта ветка????
3 Dem1urg
 
04.03.11
12:26
(0) При открытии формы запоминай в переменную исходное значение ИНН. Перед записью сравнивай его с текущим. Если не совпадает - делай проверку.
4 Sandres
 
04.03.11
12:27
(2) Когда я открываю старого контрагента и заношу ему Инн который уже есть в базе
5 Aleksey
 
04.03.11
12:31
(4) Если контрагент старый , т.е. ты зашел в ветку, то при каких условиях в внутри ЭтоНовый() вернет Истина??

Если НЕ ЭтоНовый() тогда
  Если ЭтоНовый() тогда
     ну когда мы тут будем?
  КонецЕсли;
КонецЕсли;
6 Sandres
 
04.03.11
12:31
(1) На неравенство с какой ссылкой тут проверка?
7 Aleksey
 
04.03.11
12:31
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ЭтоНовый (IsNew)
Синтаксис:

ЭтоНовый()
Возвращаемое значение:

Тип: Булево. Истина - изменяется еще ни разу не записанный элемент; Ложь - элемент уже записан.
Описание:

Определяет, записан ли элемент в базу данных.
8 Sandres
 
04.03.11
12:35
(5) код отрабатывает когда добавляю контрагента и когда пытаюсь изменить ИНН уже у заведенного контрагента. Говорю же что не работает когда просто открыл поменял наименование у контрагента
9 ho0p
 
04.03.11
12:35
(0) Самописка ? в типовых это реализовано....
10 Sandres
 
04.03.11
12:39
(7) Сорри . ты прав.
11 Sandres
 
04.03.11
12:39
(7) Сейчас покажу как отрабатывает
12 Sandres
 
04.03.11
12:39
(9)  УТ
13 ho0p
 
04.03.11
12:48
(12) "Выполнять поиск дубля перед записью нового контрагента" - в настройках элемента справочника Пользователи (Другие настройки)
14 Sandres
 
04.03.11
13:02
Ок. Всем спасибо.
15 tan76
 
04.03.11
13:23
Процедура ПередЗаписью(Отказ)
   // Вставить содержимое обработчика.
   
   Если не ПустаяСтрока(ИНН) Тогда
       
       НайденныйКонтрагент = Справочники.контрагенты.НайтиПоРеквизиту("ИНН",ИНН);
       
       Если не НайденныйКонтрагент.Пустая() и не НайденныйКонтрагент = Ссылка Тогда
           Сообщить("Контрагент с ИНН "+ ИНН + " уже сушествует!!!"+Символы.ПС+"Запись невозможна.");
           Отказ = Истина;
       КонецЕсли;
       
   КонецЕсли;
   
   
КонецПроцедуры
16 Aleksey
 
04.03.11
13:40
Лучще запросом, и в него сразу передавай ИНН и то что ссылка не равно твоя ссылка.
17 zak555
 
04.03.11
13:43
(15) как быть с обособленными подразделениями ?
18 DeiMos
 
04.03.11
14:10
(0): А ничего, что может существовать мульён различных контрагентов с одинаковым ИНН?

Хоть бы на уникальность ИНН+КПП проверял бы...
19 Sandres
 
04.03.11
14:38
(18) Я об этом думал. Но от меня хотели именно так как я описывал. И как писал выше (13) то что доктор прописал.
20 zak555
 
04.03.11
16:59
(19) запрос делай
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс