Народ вопрос) хочу сделать чтоб у меня обработка загрузки сотрудников из дбф файла работала.Например если попался сотрудник с одинаковым ИНН тогда чтобы она не создавала клона а дополняла уже существующий элемент справочника.Подскажите метод)
//********************************************************************************
******************
Перем Путь, ИмяФайла;
Перем ДБФ;
Функция ОткрытьБазу()
ДБФ = СоздатьОбъект("XBase");
Попытка
ДБФ.ОткрытьФайл(Путь+ИмяФайла,,0);
Исключение
Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла);
Возврат 0;
КонецПопытки;
Если ДБФ.Открыта() = 0 Тогда
Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла);
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции
//********************************************************************************
******************
Процедура Загрузить()
Если ОткрытьБазу()=0 Тогда
Возврат;
КонецЕсли;
ДБФ.КодоваяСтраница(1);
Сч=0;
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьДату(НачМесяца(ДатаВПериоде));
СпрРод=СоздатьОбъект("Справочник.Сотрудники");
;
// Цикл по записям ДБФ базы
Пока ДБФ.ВКонце()=0 Цикл
тРодитель = ПолучитьПустоеЗначение("Справочник.Сотрудники");
ЭтоГруппа = ДБФ.Group;
КодРодителя = ДБФ.CodeR;
Если КодРодителя<>0 Тогда
Если СпрРод.НайтиПоКоду(КодРодителя,0)=1 Тогда
тРодитель = СпрРод.ТекущийЭлемент();
СпрСотр.ИспользоватьРодителя(тРодитель);
Иначе
Сообщить("Не найден родитель с кодом "+ КодРодителя);
КонецЕсли;
Иначе
СпрСотр.ИспользоватьРодителя(тРодитель);
КонецЕсли;
Если СпрСотр.НайтиПоКоду(СокрЛП(ДБФ.Code),0)=0 Тогда
Если ЭтоГруппа = 1 Тогда
СпрСотр.НоваяГруппа();
СпрСотр.Новый();
Сообщить("пошла запись")
Иначе
СпрСотр.Новый();
КонецЕсли;
текИНН = СокрЛП(ДБФ.INN);
СпрСотр.Код =СокрЛП(ДБФ.Code);
СпрСотр.Наименование= СокрЛП(ДБФ.Name0);
Если ЭтоГруппа = 0 Тогда
СпрСотр.Имя = СокрЛП(ДБФ.Imya); //Имя
СпрСотр.Фамилия = СокрЛП(ДБФ.Famil); //Фамилия
СпрСотр.Отчество = СокрЛП(ДБФ.Otch); //Отчество
СпрСотр.Адрес = СокрЛП(ДБФ.Adres); //Адрес
СпрСотр.Телефон = СокрЛП(ДБФ.Pfone); //Телефон
Если ДБФ.Sex="М" Тогда
СпрСотр.Пол=Перечисление.Пол.М;
ИначеЕсли ДБФ.Sex="Ж" Тогда
СпрСотр.Пол=Перечисление.Пол.Ж;
КонецЕсли;
СпрСотр.Должность = СокрЛП(ДБФ.Dol); //Должность
СпрСотр.ДатаПриема = СокрЛП(ДБФ.Dat1); //Дата приема
СпрСотр.Оклад = СокрЛП(ДБФ.Okl);//Оклад
СпрСотр.Аванс =СокрЛП(ДБФ.Av); //аванс
//Паспортные данные
СпрСотр.ПаспортСерия = СокрЛП(ДБФ.Ser); //Серия
СпрСотр.ПаспортНомер = СокрЛП(ДБФ.Nom); //Номер
СпрСотр.ИНН=СокрЛП(ДБФ.INN);
КонецЕсли;
КонецЕсли;
СпрСотр.Записать();
Сч=Сч+1;
Сообщить(Строка(Сч)+"Добавлен элемент справочника - "+ДБФ.Name0+" ИНН: "+текИНН);
ДБФ.Следующая();
КонецЦикла;
ДБФ.ЗакрытьФайл();
СпрСотр="";
СпрСотрР="";
Сообщить("Загрузка справочника закончена.");
КонецПроцедуры
//********************************************************************************
*******************
Процедура Выбрать()
Если (ФС.ВыбратьФайл(0,ИмяФайла,Путь,"Выбор файла загрузки","DBF файлы|*.DBF")=0) Тогда
Путь="";
Возврат;
КонецЕсли;
КонецПроцедуры
Путь=КаталогИБ();
ДатаЗаписи='01.12.2006';