Здравствуйте.
Нужно из 8 ки выгрузить справочники номеклатура и подразделения в DBF файл.
Сделал обработку.
Код 1C v 8.2 УП Процедура КнопкаВыполнитьНажатие(Кнопка)
Если НГ.Пустая() Тогда
Предупреждение("Выберите группу!");
Возврат;
КонецЕсли;
спр=справочники.Номенклатура.ВыбратьИерархически(НГ);
B = Новый XBase;
B.Поля.Добавить("CODE","S",11);
B.Поля.Добавить("NAME","S",100);
B.Поля.Добавить("ED","S",100);
B.Кодировка = КодировкаXBase.OEM;
B.СоздатьФайл(ИФ);
B.АвтоСохранение = Истина;
Пока спр.Следующий() Цикл
Если спр.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
Если спр.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
B.Добавить();
B.NAME = СокрЛП(спр.Наименование);
B.CODE = СокрЛП(спр.Код);
B.ED = СокрЛП(спр.БазоваяЕдиницаИзмерения.Наименование);
КонецЦикла;
B.ЗакрытьФайл();
Сообщить("ОК!");
КонецПроцедуры
Процедура ПриОткрытии()
ИФ = "C:\SP.DBF";
КонецПроцедуры
А теперь из этого файла немогу загрузить в 7 ку
код в 7.7
Код 1C v 7.x Процедура Сформировать()
ПутьДБ = "C:\SP.DBF";
ДБФ = СоздатьОбъект("XBase");
// Определение полей и индексов новой БД
ДБФ.ДобавитьПоле("CODE", "S", 11 ,0);
ДБФ.ДобавитьПоле("NAME", "S", 100 ,0);
ДБФ.ДобавитьПоле("ED", "S", 100 ,0);
//ДБФ.ДобавитьПоле("D", "S", 30 ,0);
//ДБФ.ДобавитьПоле("E", "S", 30 ,0);
//ДБФ.ДобавитьПоле("F", "S", 30 ,0);
//ДБФ.ДобавитьПоле("G", "S", 30 ,0);
//
// Теперь физически создаем базу
ДБФ.СоздатьФайл(ПутьДБ);
Если ДБФ.Открыта() = 1 Тогда
// 1 строка
ДБФ.Добавить();
ДБФ.CODE = "";
ДБФ.Записать();
// 2 строка
ДБФ.Добавить();
ДБФ.NAME = "";
ДБФ.ED = "";
ДБФ.Записать();
// 3 строка
ДБФ.Добавить();
ДБФ.A = "";
ДБФ.B = "";
ДБФ.Записать();
// 4 строка
//ДБФ.Добавить();
//ДБФ.A = "";
//ДБФ.B = "";
//ДБФ.C = "";
//ДБФ.Записать();
// 5 строка
// ДБФ.Добавить();
// ДБФ.A = "";
//
// ДБФ.C = "";
//
// ДБФ.Записать();
// 6 строка
ДБФ.Добавить();
ДБФ.A = "";
ДБФ.B = "";
ДБФ.C = "";
//ДБФ.D = "";
//ДБФ.E = "";
//ДБФ.F = "";
//ДБФ.G = "";
ДБФ.Записать();
////Пока 1 = 1 Цикл
//
//// i строка
//ДБФ.Добавить();
//ДБФ.A = "";
//ДБФ.B = "";
//ДБФ.C = "";
//ДБФ.D = "";
//ДБФ.E = "";
//ДБФ.F = "";
//ДБФ.Записать();
//
//
////Если ДБФ.Следующая() = 0 Тогда
//// Возврат;
////КонецЕсли;
////КонецЦикла;
Иначе
Предупреждение("НЕ смогли открыть Базу!", 2);
КонецЕсли;
//ДБФ.Записать();
Если ДБФ.Открыта() = 1 Тогда
ДБФ.ЗакрытьФайл();
КонецЕсли;
КонецПроцедуры
Изменено 27.09.11 13:29:06