Skip to content

Instantly share code, notes, and snippets.

@Albus
Last active December 23, 2022 02:21
Show Gist options
  • Save Albus/dd434cbaac904eb315bf1bd73176532e to your computer and use it in GitHub Desktop.
Save Albus/dd434cbaac904eb315bf1bd73176532e to your computer and use it in GitHub Desktop.
// имена полей будут обрезаны (10 символов)
ТЗ = Новый Запрос("ВЫБРАТЬ КПК.Номер КАК Number, КПК.Дата КАК Date, КПК.Организация КАК Organization, КПК.Клиент КАК Client, КПК.Контрагент КАК Contragent ИЗ Документ.КоммерческоеПредложениеКлиенту КАК КПК");
ТЗ = ТЗ.Выполнить().Выгрузить();
ДБФ = Новый XBase; ДБФ.Кодировка = КодировкаXBase.OEM;
Для Каждого Колонка ИЗ ТЗ.Колонки Цикл
Если Колонка.ТипЗначения.СодержитТип(Тип("Число")) Тогда
Тип = "N"; Длина = Колонка.ТипЗначения.КвалификаторыЧисла.Разрядность;
Точность = Колонка.ТипЗначения.КвалификаторыЧисла.РазрядностьДробнойЧасти;
Если Длина = 0 Тогда Длина = 15; Точность = 3 КонецЕсли;
ИначеЕсли Колонка.ТипЗначения.СодержитТип(Тип("Дата")) Тогда
Тип = "D"; Длина = 0; Точность = 0;
ИначеЕсли Колонка.ТипЗначения.СодержитТип(Тип("Булево")) Тогда
Тип = "L"; Длина = 0; Точность = 0;
Иначе Тип = "S"; Длина = Колонка.ТипЗначения.КвалификаторыСтроки.Длина; Точность = 0;
Если Длина = 0 Тогда Длина = 100 КонецЕсли; Точность = 0;
КонецЕсли; ДБФ.поля.Добавить(Колонка.Имя, Тип, Длина, Точность);
КонецЦикла;
ДБФ.СоздатьФайл(КаталогДокументов()+"\test.dbf");
Для Каждого Стр ИЗ ТЗ Цикл
ДБФ.Добавить(); ЗаполнитьЗначенияСвойств(ДБФ, Стр); ДБФ.Записать();
КонецЦикла; ДБФ.ЗакрытьФайл();
@Albus
Copy link
Author

Albus commented Dec 23, 2022

Снимок экрана 2022-12-23 в 05 20 28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment