RFS2
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору bxz вот весь код Процедура ПриИзмененииИНН() ВидЮрФизЛица = ВидКонтрагента.ПолучитьЗначение(ВидКонтрагента.ТекущаяСтрока()); // ИНН и длина ИНН. Если ВидЮрФизЛица <> "ФизЛица" Тогда ИНН = ИННЮрЛица; Длина = 20; Иначе ИНН = ИННФизЛица; Длина = 12; КонецЕсли; // ИНН может быть не указан. Длина = Метаданные.Справочник(ВидЮрФизЛица).Реквизит("ИНН").Длина; Если СтрДлина(СокрЛП(ИНН)) < Длина Тогда Возврат; КонецЕсли; // Список найденных элементов с таким же ИНН. Список = СоздатьОбъект("СписокЗначений"); Объект = СоздатьОбъект("Справочник."+ВидЮрФизЛица); Объект.ВыбратьЭлементыПоРеквизиту("ИНН", ИНН, 0, 1); // Поиск элементов с таким же ИНН. Пока Объект.ПолучитьЭлемент(1) = 1 Цикл Если Объект.ТекущийЭлемент() = ЮрФизЛицо Тогда Возврат; // элемент уже был записан Иначе Список.ДобавитьЗначение(Объект.ТекущийЭлемент()); КонецЕсли; КонецЦикла; // Элементы с таким же ИНН не найдены. Если Список.РазмерСписка() = 0 Тогда Возврат; // Найден один элемент с таким же ИНН. ИначеЕсли Список.РазмерСписка() = 1 Тогда Стр = "В справочнике """+Объект.ПредставлениеВида()+""" уже есть элемент с таким же ИНН! |Выбрать существующий элемент справочника?"; Если Вопрос(Стр, "Да+Нет", 60) = "Да" Тогда ЮрФизЛицо = Список.ПолучитьЗначение(1); ПриИзмененииЮрФизЛица(); // Автозаполнение наименования контрагента. Наименование = ЮрФизЛицо.Наименование; КонецЕсли; // Найдено несколько элементов с таким же ИНН. Иначе Стр = "В справочнике """+Объект.ПредставлениеВида()+""" уже есть элементы с таким же ИНН! |Выбрать один из существующих элементов справочника?"; Если Вопрос(Стр, "Да+Нет", 60) = "Да" Тогда Если Список.ВыбратьЗначение(ЮрФизЛицо, "Элементы с ИНН "+ИНН, 0, 60, 0) = 1 Тогда ПриИзмененииЮрФизЛица(); // Автозаполнение наименования контрагента. Наименование = ЮрФизЛицо.Наименование; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриИзмененииИНН() |