// Запись данных справочника в DBF-файл: БД = Новый XBase; // проектируется структура таблицы, т.е. имена и типы полей БД.Поля.Добавить("Code","N",6,0); // числовое поле Код БД.Поля.Добавить("Name","S",30); // строковое поле Наименование // создание файла с указанной структурой БД.СоздатьФайл("C://1.dbf"); Выборка = Справочники.Клиенты.Выбрать(); Пока Выборка.Следующий() Цикл // создается новая пустая строка таблицы БД.Добавить(); // заполняем поля новой строки БД.Code = Выборка.Код; БД.Name = Выборка.Наименование; КонецЦикла; // зафиксировать изменения в файле БД.ЗакрытьФайл(); // Чтение данных из DBF-файла в справочник: БД = Новый XBase; БД.ОткрытьФайл("C://1.dbf"); // считываем файл построчно Пока БД.Следующая() Цикл // создаем новый элемент справочника Спр=Справочники.Клиенты.СоздатьЭлемент(); // переносим в реквизиты данные из текущей строки таблицы Спр.Код = БД.Сode; Спр.Наименование = БД.Name; Спр.Записать(); КонецЦикла; БД.ЗакрытьФайл();
ФайлОстатков = Новый XBase; ФайлОстатков.Кодировка = КодировкаXBase.OEM; ФайлОстатков.ОткрытьФайл(ПутьКТаблицеОстатков); ФайлОстатков.Первая(); Пока Не ФайлОстатков.ВКонце() Цикл КодКонтрагента = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("ZKPO")); Если КодКонтрагента = "" Тогда КодКонтрагента = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("IDENKOD")); КонецЕсли; НаименованиеКонтрагента = СокрЛП(СтрЗаменить(ФайлОстатков.ПолучитьЗначениеПоля("NAME"),"?","і")); Контрагент = ПолучитьКонтрагента(КодКонтрагента,НаименованиеКонтрагента); СимволСчета = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("SYMBOL")); ОстатокДебет = ФайлОстатков.ПолучитьЗначениеПоля("DB_PP"); ОстатокКредит = ФайлОстатков.ПолучитьЗначениеПоля("KR_PP"); Документ = Документы.КорректировкаДолга.СоздатьДокумент(); Документ.Организация = Организация; Документ.Дата = "20090630235959"; Документ.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.ВводНачальныхОстатков; Если ОстатокДебет > 0 Тогда Документ.КонтрагентДебитор = Контрагент; Документ.СуммыДолга.Очистить(); СтрокаСуммыДолга = Документ.СуммыДолга.Добавить(); СтрокаСуммыДолга.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская; СтрокаСуммыДолга.ДоговорКонтрагента = ПолучитьДоговор(Документ.КонтрагентДебитор); Если Лев(СимволСчета,3) = "361" Тогда СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Покупатель; Иначе СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Поставщик; КонецЕсли; СтрокаСуммыДолга.КратностьВзаиморасчетов = 1.00; СтрокаСуммыДолга.КурсВзаиморасчетов = 1.00; СтрокаСуммыДолга.Сумма = ОстатокДебет; СтрокаСуммыДолга.СуммаВзаиморасчетов = ОстатокДебет; СтрокаСуммыДолга.СтавкаНДС = Перечисления.СтавкиНДС.НДС20; СтрокаСуммыДолга.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СимволСчета); Иначе Документ.КонтрагентДебитор = Контрагент; Документ.СуммыДолга.Очистить(); СтрокаСуммыДолга = Документ.СуммыДолга.Добавить(); СтрокаСуммыДолга.ВидЗадолженности = Перечисления.ВидыЗадолженности.Кредиторская; СтрокаСуммыДолга.ДоговорКонтрагента = ПолучитьДоговор(Документ.КонтрагентДебитор); Если Лев(СимволСчета,3) = "361" Тогда СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Покупатель; Иначе СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Поставщик; КонецЕсли; СтрокаСуммыДолга.КратностьВзаиморасчетов = 1.00; СтрокаСуммыДолга.КурсВзаиморасчетов = 1.00; СтрокаСуммыДолга.Сумма = ОстатокКредит; СтрокаСуммыДолга.СуммаВзаиморасчетов = ОстатокКредит; СтрокаСуммыДолга.СтавкаНДС = Перечисления.СтавкиНДС.НДС20; СтрокаСуммыДолга.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СимволСчета); КонецЕсли; Документ.ВалютаДокумента = Валюта; Документ.СчетДт = ПланыСчетов.Хозрасчетный.Вспомогательный; Документ.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный; Документ.Записать(РежимЗаписиДокумента.Проведение); ФайлОстатков.Следующая(); КонецЦикла; ФайлОстатков.ЗакрытьФайл();