Процедура Выполнить()
ДатаОбр = РабочаяДата();
ДБФ = СоздатьОбъект("Xbase");
Табл=СоздатьОбъект("ТаблицаЗначений");
Табл.НоваяКолонка("КодФак","Строка",2,0,"Код факультета",7);
Табл.НоваяКолонка("КратНаимен","Строка",15,,"Краткое наименование",15);
Табл.НоваяКолонка("Наименование","Строка",25,,"Полное наименование",25);
Табл.НоваяКолонка("КратНаименБел","Строка",15,,"Краткое наименование на белорусском языке",15);
Табл.НоваяКолонка("ПолноеНаименБел","Строка",25,,"Полное наименование на белорусском языке",25);
ИмяФайла="FACULTS.DBF";
ИмяПути = СокрЛП(КаталогИБ())+"perenos\";
ПутьДБ=ИмяПути + ИмяФайла;
Если ФС.СуществуетФайл(ПутьДБ)=1 тогда
Сообщить("Файл существует");
ДБФ.ОткрытьФайл(ПутьДБ);
ДБФ.Первая();
Пока ДБФ.ВКонце()=0 Цикл
Сообщить("Записываем в таблицу значений");
Табл.НоваяСтрока();
Табл.КодФак =СокрЛП(ДБФ.ПолучитьЗначениеПоля(1));
Табл.КратНаимен = СокрЛП(ДБФ.ПолучитьЗначениеПоля(2));
Табл.Наименование = СокрЛП(ДБФ.ПолучитьЗначениеПоля(3));
Табл.КратНаименБел = СокрЛП(ДБФ.ПолучитьЗначениеПоля(4));
Табл.ПолноеНаименБел = СокрЛП(ДБФ.ПолучитьЗначениеПоля(5));
ДБФ.Следующая();
КонецЦикла;
//Табл.Сортировать("Наименование");
Таб=СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
Ном=0;
СпрФакультеты = СоздатьОбъект("Справочник.Факультеты"); // справочник владелец
//СпрФакультеты.ПорядокНаименований();
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() > 0 Цикл
Если СпрФакультеты.НайтиПоРеквизиту("КодФак",Табл.КодФак,1)=1 тогда
Сообщить("Запись факультета"""+Табл.Наименование+""" с кодом"""+Табл.КодФак+""" уже существует.");
Продолжить;
Иначе
Сообщить("ЗаноситьДанные");
СпрФакультеты.Новый();
СпрФакультеты.ИспользоватьДату(ДатаОбр);
СпрФакультеты.КодФак =СокрЛП(Табл.КодФак);
СпрФакультеты.КратНаимен = СокрЛП(Табл.КратНаимен);
СпрФакультеты.Наименование = СокрЛП(Табл.Наименование);
СпрФакультеты.КратНаименБел = СокрЛП(Табл.КратНаименБел);
СпрФакультеты.ПолноеНаименБел = СокрЛП(Табл.ПолноеНаименБел);
Ном=Ном+1;
Сообщить("Записали в справочник");
СпрФакультеты.Записать();
Таб.ВывестиСекцию("Факультеты");
КонецЕсли;
КонецЦикла;
// Таб.Показать();
Иначе
Сообщить ("Файла с факультетами в папке """+ИмяПути +""" не существует!!!");
СтатусВозврата(0);
КонецЕсли;
ДБФ.ЗакрытьФайл();
/////////ДОБАВЛЕНИЕ ЗАПИСЕЙ В СПРАВОЧНИК "ГРУППЫ" (подчиненный справочник )
ДБФ1 = СоздатьОбъект("Xbase");
Табл1=СоздатьОбъект("ТаблицаЗначений");
Табл1.НоваяКолонка("КодГруппы","Строка",5,0,"Код группы",7);
Табл1.НоваяКолонка("ФормаОбучения","Строка",1,,"Формы обучения",5);
Табл1.НоваяКолонка("КодКвалификации","Строка",3,,"Код квалификации",5);
Табл1.НоваяКолонка("ГодГруппы","Число",4,,"Год группы",5);
Табл1.НоваяКолонка("Наименование","Строка",10,,"Наименование группы",10);
Табл1.НоваяКолонка("ЧислоСтудентов","Число",2,,"Число студентов в группе",3);
Табл1.НоваяКолонка("ФамСтаросты","Строка",25,,"Фамилия и инициалы старосты",25);
Табл1.НоваяКолонка("КодФакультета","Строка",2,0,"Код факультета",7);
ИмяФайла="УчГруппы.DBF";
ИмяПути = СокрЛП(КаталогИБ())+"perenos\";
ПутьДБ=ИмяПути + ИмяФайла;
Если ФС.СуществуетФайл(ПутьДБ)=1 тогда
Сообщить("Файл существует");
ДБФ.ОткрытьФайл(ПутьДБ);
ДБФ.Первая();
Пока ДБФ.ВКонце()=0 Цикл
Сообщить("Записываем в таблицу значений учебную группу");
Табл1.НоваяСтрока();
Табл1.КодГруппы = СокрЛП(ДБФ.ПолучитьЗначениеПоля(1));
Табл1.ФормаОбучения = СокрЛП(ДБФ.ПолучитьЗначениеПоля(2));
Табл1.КодКвалификации = СокрЛП(ДБФ.ПолучитьЗначениеПоля(3));
Табл1.ГодГруппы = СокрЛП(ДБФ.ПолучитьЗначениеПоля(4));
Табл1.Наименование = СокрЛП(ДБФ.ПолучитьЗначениеПоля(5));
Табл1.ЧислоСтудентов = СокрЛП(ДБФ.ПолучитьЗначениеПоля(6));
Табл1.ФамСтаросты = СокрЛП(ДБФ.ПолучитьЗначениеПоля(7));
Табл1.КодФакультета = СокрЛП(ДБФ.ПолучитьЗначениеПоля(8));
ДБФ.Следующая();
КонецЦикла;
Ном1=0;
СпрУчебГруппы = СоздатьОбъект("Справочник.Группы");
// СпрУчебГруппы.Родитель(СпрФакультеты);
СпрФакультеты.ВыбратьЭлементы();
Пока СпрФакультеты.ПолучитьЭлемент()=1 Цикл
СпрУчебГруппы.ИспользоватьВладельца(СпрФакультеты.ТекущийЭлемент());
Табл1.ВыбратьСтроки();
Пока Табл1.ПолучитьСтроку() > 0 Цикл
Если СпрФакультеты.КодФак = Табл1.КодФакультета тогда
Если СпрУчебГруппы.НайтиПоРеквизиту("КодГруппы",Табл1.КодГруппы,0)=1 тогда
Сообщить("Запись группы"""+Табл1.Наименование+""" с кодом"""+Табл1.КодГруппы+""" уже существует.");
Продолжить;
Иначе
Сообщить("ЗаноситьДанные учебных групп");
СпрУчебГруппы.Новый();
// СпрУчебГруппы.Владелец = СпрФакультеты.ТекущийЭлемент();
СпрУчебГруппы.ИспользоватьДату(ДатаОбр);
СпрУчебГруппы.КодГруппы =Табл1.КодГруппы;
СпрУчебГруппы.ФормаОбучения =Табл1.ФормаОбучения;
СпрУчебГруппы.Квалификация = Табл1.КодКвалификации;
СпрУчебГруппы.ГодНачала = Табл1.ГодГруппы;
СпрУчебГруппы.Наименование = Табл1.Наименование;
СпрУчебГруппы.ЧислоСтудентов = Табл1.ЧислоСтудентов;
СпрУчебГруппы.Староста = Табл1.ФамСтаросты;
СпрУчебГруппы.КодФакультета = Табл1.КодФакультета;
Ном1=Ном1+1;
Сообщить("Записали в справочник учебную группу");
СпрФакультеты.Записать();
Таб.ВывестиСекцию("Группы");
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Иначе
Сообщить ("Файла УчебныеГруппы в папке """+ИмяПути +""" не существует!!!");
СтатусВозврата(0);
КонецЕсли;
ДБФ1.ЗакрытьФайл();
Таб.Показать();
КонецПроцедуры