1С Предприятие 7.7 (сетевая версия) (7.70.025)
Підготував в Excel довідник Імена, складається з двох стовпчиків. В першому імена у другому приналежність до статі відповідно Ж або Ч.
У конфігурації створив Довідник Имена, у Наименовании зберігаються Імена + Реквізит Пол, який обирається із довідника Пол.
Довідник Пол у Наименовании зберігаються скорочені назви Ж або Ч відповідний код 1 або 2.
Імпортую за допомогою наступного коду:
Процедура ВыборФайла()
ИмяВыбрФайла="";
ИмяПутиКФайлу="";
Если ФС.ВыбратьФайл(0,ИмяВыбрФайла,ИмяПутиКФайлу,"","(*.xls)|*.xls","XLS")=0 Тогда
Форма.Закрыть();
Возврат;
КонецЕсли;
ФайлИмпорта=ИмяПутиКФайлу+ИмяВыбрФайла;
КонецПроцедуры
Процедура Выполнить()
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Open(ФайлИмпорта);
Лист = Книга.WorkSheets(НомерЛиста);
СтрокиОт=СтрокаОт;
СтрокиДо=СтрокаДо;
СпрИмена=СоздатьОбъект("Справочник."+ИмяСправ);
СпрПол=СоздатьОбъект("Справочник.Пол");
Для стр=СтрокиОт По СтрокиДо Цикл
Имя=СокрЛП(Эксель.Cells(стр,1).Value);
ПолИмени=СокрЛП(Эксель.Cells(стр,2).Value);
Если СпрПол.НайтиПоНаименованию(ПолИмени, 0, 1)=1 Тогда
СокрПол=СпрПол.Наименование; //КодПол=СпрПол.Код;
КонецЕсли;
Состояние(""+СтрокиОт+"/"+СтрокиДо+" "+Имя);
Если СпрИмена.НайтиПоНаименованию(Имя, 0, 1)=0 Тогда
//если элемент с таким наименованием не найден, то создаем его
СпрИмена.Новый();
СпрИмена.Наименование=Имя;
СпрИмена.Пол=СокрПол; //СпрИмена.Пол=КодПол;
СпрИмена.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Імена експортуються, поле Стать не заповнюється чи так чи інакше. Що треба присвоювати Код чи Нименование?
СокрПол=СпрПол.Наименование; //КодПол=СпрПол.Код;
.......
СпрИмена.Пол=СокрПол; //СпрИмена.Пол=КодПол;