HelpF.pro

Пример загрузки остатков в документ 1С из DBF файла

Код 1C v 8.х
 ФайлОстатков = Новый 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;
		СтрокаСуммыДолга.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СимволСчета);
	КонецЕсли;
	Документ.ВалютаДокумента = Валюта;
	Документ.СчетДт = ПланыСчетов.Хозрасчетный.Вспомогательный;
	Документ.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
	Документ.Записать(РежимЗаписиДокумента.Проведение);
	ФайлОстатков.Следующая();
КонецЦикла;
ФайлОстатков.ЗакрытьФайл();   

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/461.html