Обмен между базами через XML (создается ФабрикаXDTO) В процедурах выгрузки/загрузки создается ФабрикаXDTO из схемы, которая хранится в макете как файл. Файл настроек схемы надо использовать один и тот же в обработках Загрузки/Выгрузки
Из Фабрики создается объект, его заполняю выгружаемыми данными
Фабрику сохраняю в XML. В процедуре загрузки из читаю фабрику из XML и пробегаю по объектам
Очень удобно!
Код 1C v 8.х Функция СоздатьФайлСхемы()
ФайлСхемы = Новый Файл( КаталогВременныхФайлов( ) + "schema.xsd" ) ;
Если ФайлСхемы. Существует( ) Тогда
УдалитьФайлы( ФайлСхемы. ПолноеИмя) ;
КонецЕсли ;
Ссылка = ПолучитьМакет( "schema_xsd" ) ;
Ссылка. Записать( ФайлСхемы. ПолноеИмя) ;
Возврат ФайлСхемы. ПолноеИмя;
КонецФункции
Функция ВыгрузитьДокументы()
ФайлыXSD = Новый Массив( ) ;
ФайлыXSD. Добавить( СоздатьФайлСхемы( ) ) ;
Фабрика = СоздатьФабрикуXDTO( ФайлыXSD) ;
ФайлОбмена = Фабрика. Создать( Фабрика. Тип( "http://anton.fly7.ru" , "ФайлОбмена" ) ) ;
Пока Выборка. Следующий( ) Цикл
Документ = Фабрика. Создать( Фабрика. Тип( "http://anton.fly7.ru" , "Документ" ) ) ;
Документ. ID = Строка( Док. УникальныйИдентификатор( ) ) ;
Документ. ВидДокумента = Док. Метаданные( ) . Имя;
Документ. Дата = Док. Дата;
Документ. Номер = Док. Номер;
Документ. Статус = ? ( Док. Проведен, "Проведен" , ? ( Док. ПометкаУдаления, "ПометкаУдаления" , "НеПроведен" ) ) ;
Документ. Комментарий = Док. Комментарий;
КонецЦикла
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML( "UTF-8" , "1.0" , Ложь ) ;
МойXML = Новый ЗаписьXML;
МойXML. ОткрытьФайл( ИмяФайла, ПараметрыЗаписиXML) ;
МойXML. ЗаписатьОбъявлениеXML( ) ;
Фабрика. ЗаписатьXML( МойXML, ФайлОбмена) ;
МойXML. Закрыть( ) ;
ОбщегоНазначенияКлиентСервер. СообщитьПользователю( "Создан файл обмена " + ИмяФайла) ;
КонецФункции
Процедура ЗагрузитьДокументы()
ФайлыXSD = Новый Массив( ) ;
ФайлыXSD. Добавить( СоздатьФайлСхемы( ) ) ;
Фабрика = СоздатьФабрикуXDTO( ФайлыXSD) ;
ФайлОбмена = Фабрика. Создать( Фабрика. Тип( "http://anton.fly7.ru" , "ФайлОбмена" ) ) ;
ОбменXML = Новый ЧтениеXML;
ОбменXML. ОткрытьФайл( ИмяФайла) ;
ФайлОбмена = Фабрика. ПрочитатьXML( ОбменXML, Фабрика. Тип( "http://anton.fly7.ru" , "ФайлОбмена" ) ) ;
Для Каждого Документ Из ФайлОбмена. Документ Цикл
ОбработкаПрерыванияПользователя( ) ;
Если Документ. ВидДокумента = "ПоступлениеТоваров" И
ЗначениеЗаполнено( Поставщик) И
Документ. Контрагент. ИНН Поставщик. ИНН Тогда
КонецЕсли ;
КонецЦикла
ФайлОбмена = "" ;
ОбменXML. Закрыть( ) ;
УдалитьФайлы( ИмяФайла) ;
КонецПроцедуры
Файл схемы примерно такой (разукрашка съела скобки, но смысл должен быть понятен ))
Код xs:schema xmlns:tns="http://anton.fly7.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://anton.fly7.ru" attributeFormDefault="unqualified" elementFormDefault="qualified">
xs:complexType name="ФайлОбмена">
xs:sequence>
xs:element name="Документ" type="tns:Документ" nillable="true" maxOccurs="unbounded"/>
xs:sequence>
xs:complexType>
xs:complexType name="Документ">
xs:sequence>
xs:element name="ID" type="xs:string"/>
xs:element name="ВидДокумента" type="xs:string"/>
xs:element name="Статус" type="xs:string"/>
xs:element name="Дата" type="xs:dateTime"/>
xs:element name="Номер" type="xs:string"/>
xs:element name="Контрагент" type="tns:Контрагент"/>
xs:element name="Свойства" type="tns:ТаблицаСвойства" nillable="true" minOccurs="0"/>
xs:sequence>
xs:complexType>
xs:complexType name="Контрагент">
xs:sequence>
xs:element name="ID" type="xs:string"/>
xs:element name="Наименование" type="xs:string"/>
xs:element name="ИНН" type="xs:string"/>
xs:sequence>
xs:complexType>
xs:complexType name="ТаблицаСвойства">
xs:sequence>
xs:element name="СтрокаСвойства" type="tns:СтрокаСвойство" nillable="true" maxOccurs="unbounded"/>
xs:sequence>
xs:complexType>
xs:complexType name="СтрокаСвойство">
xs:sequence>
xs:element name="Наименование" type="xs:string" nillable="true"/>
xs:element name="Значение" type="xs:string" nillable="true"/>
xs:sequence>
xs:complexType>
xs:schema>
Автор:
Абазин Антон Категория:
WEB-сервисы, WS-ссылки, XDTO-пакеты Подключение к web-сервису и получение от него описание типа Подключается к 1с82 web-сервису, получает от него описание типа
Создает переменную этого типа, Создает файл (dbf обмена).
Помещает файл в переменную и отдает на web-сервис для обработки, получает от него результат обработки
Код 1C v 8.х Определение = Новый WSОпределения( Server, User, Pass) ;
Прокси = Новый WSПрокси( Определение, "http://www.anton.fly7.ru" , "Obmen" , "ObmenSoap" ) ;
Прокси. Пользователь = User;
Прокси. Пароль = Pass;
Тип = Прокси. ФабрикаXDTO. Тип( "http://www.anton.fly7.ru" , "ФайлОбмена" ) ;
ФайлОбмена = Прокси. ФабрикаXDTO. Создать( Тип) ;
Файл = Новый Файл( КаталогВременныхФайлов( ) + "dat.dbf" ) ; i= 1 ;
Пока Файл. Существует( ) Цикл
Файл = Новый Файл( КаталогВременныхФайлов( ) + "dat" + i + ".dbf" ) ;
i= i+ 1 ;
КонецЦикла ;
ДБ = Новый XBase;
ЗаполнитьПоляДБ( ДБ, ТабСвойств) ;
ДБ. СоздатьФайл( Файл. ПолноеИмя) ;
ДБ. АвтоСохранение = Истина ;
ДБ. Добавить( ) ;
ДБ. Artik = Номенклатура. Артикул;
ДБ. Name = Строка( Номенклатура) ;
ДБ. NomGrup = Строка( Номенклатура. ТипНоменклатуры) ;
ДБ. VidNom = Строка( Номенклатура. ВидНоменклатуры) ;
ДБ. Group = ПолучитьГруппу( Номенклатура) ;
ДБ. Strana = "" ;
ДБ. Pol = "" ;
ДБ. Записать( ) ;
ДБ. ЗакрытьФайл( ) ;
ФайлДвоичныеДанные = Новый ДвоичныеДанные( Файл. ПолноеИмя) ;
ФайлаХранилищеЗначения = Новый ХранилищеЗначения( ФайлДвоичныеДанные, Новый СжатиеДанных( 9 ) ) ;
ФайлОбмена. ТипФайла = 1 ;
ФайлОбмена. ИмяФайла = "data_" + СокрЛП( СсылкаНаОбъект. Номер) + ".dbf" ;
ФайлОбмена. Данные = ФайлаХранилищеЗначения. Получить( ) ;
УдалитьФайлы( Файл. ПолноеИмя) ;
Результат = Прокси. LoadDocs( ФайлОбмена) ;
Если ЗначениеЗаполнено( Результат) Тогда
ОбщегоНазначенияКлиентСервер. СообщитьПользователю( Результат) ;
КонецЕсли ;
Автор:
Абазин Антон Категория:
WEB-сервисы, WS-ссылки, XDTO-пакеты Создать, заменить, записать файл в Хранилище Значения Код 1C v 8.х Функция СоздатьФайлВХранилище(ЛокПолноеИмяФайла,ЛокНаименованиеЭлемента) Экспорт
Попытка
ЛокХранилище = Новый ХранилищеЗначения( Новый ДвоичныеДанные( ЛокПолноеИмяФайла) ) ;
Исключение
Возврат Null ;
КонецПопытки ;
ЛокСправочникХЗН = Справочники. ХранилищеДополнительнойИнформации. СоздатьЭлемент( ) ;
ЛокСправочникХЗН. Наименование = ЛокНаименованиеЭлемента;
ЛокСправочникХЗН. Хранилище = ЛокХранилище;
Попытка
ЛокСправочникХЗН. Записать( ) ;
Возврат ЛокСправочникХЗН;
Исключение
Возврат Null ;
КонецПопытки ;
КонецФункции
Функция ЗаменаФайлаВХранилище(ЛокПолноеИмяФайла,ЛокНаименованиеЭлемента) Экспорт
Попытка
ЛокХранилище = Новый ХранилищеЗначения( Новый ДвоичныеДанные( ЛокПолноеИмяФайла) ) ;
Исключение
Возврат Null ;
КонецПопытки ;
ЛокСправочникХЗНСсылка = Справочники. ХранилищеДополнительнойИнформации. НайтиПоНаименованию( ЛокНаименованиеЭлемента) ;
Если ЛокСправочникХЗНСсылка. Пустая( ) Тогда
Возврат Null ;
КонецЕсли ;
ЛокСправочникХЗН = ЛокСправочникХЗНСсылка. ПолучитьОбъект( ) ;
ЛокСправочникХЗН. Хранилище = ЛокХранилище;
Попытка
ЛокСправочникХЗН. Записать( ) ;
Возврат ЛокСправочникХЗН;
Исключение
Возврат Null ;
КонецПопытки ;
КонецФункции
Функция ЗаписатьФайлИзХранилища(ЛокПолноеИмяФайла,ЛокНаименованиеЭлемента) Экспорт
Попытка
ЛокСпр = Справочники. ХранилищеДополнительнойИнформации. НайтиПоНаименованию( ЛокНаименованиеЭлемента) ;
ЛокСпр. Хранилище. Получить( ) . Записать( ЛокПолноеИмяФайла) ;
Возврат Истина ;
Исключение
Возврат Ложь ;
КонецПопытки ;
КонецФункции
Функция СоздатьВременныйФайлИзХранилища(ЛокНаименованиеЭлемента,ЛокРасширение)
ЛокПолноеИмяФайла = КаталогВременныхФайлов( ) + ПолучитьИмяВременногоФайла( ЛокРасширение) ;
Если ЗаписатьФайлИзХранилища( ЛокПолноеИмяФайла, ЛокНаименованиеЭлемента) Тогда
Возврат ЛокПолноеИмяФайла;
Иначе
Возврат Null ;
КонецЕсли ;
КонецФункции
Категория:
Работа с Хранилищем Значений Выгрузка / Загрузка данных посредством DBF файлов? DBF-файл – это файл, в котором данные хранятся в виде таблицы (Database format). Работа с этими файлами происходит по принципу курсора, т.е. по одной строке. Для работы с DBF-файлами существует тип данных XBase. Несмотря на то, что формат DBF считается уже устаревшим, может возникнуть необходимость работы с файлами данного формата, особенно, если вы перегружаете данные из какой-нибудь старой программы!
Код 1C v 8.х
БД = Новый XBase;
БД. Поля. Добавить( "Code" , "N" , 6 , 0 ) ;
БД. Поля. Добавить( "Name" , "S" , 30 ) ;
БД. СоздатьФайл( "C://1.dbf" ) ;
Выборка = Справочники. Клиенты. Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
БД. Добавить( ) ;
БД. Code = Выборка. Код;
БД. Name = Выборка. Наименование;
КонецЦикла ;
БД. ЗакрытьФайл( ) ;
БД = Новый XBase;
БД. ОткрытьФайл( "C://1.dbf" ) ;
Пока БД. Следующая( ) Цикл
Спр= Справочники. Клиенты. СоздатьЭлемент( ) ;
Спр. Код = БД. Сode;
Спр. Наименование = БД. Name;
Спр. Записать( ) ;
КонецЦикла ;
БД. ЗакрытьФайл( ) ;
Код 1C v 8.х
БД = Новый XBase;
БД. Поля. Добавить( "CODE" , "S" , 5 ) ;
БД. Поля. Добавить( "NAME" , "S" , 40 ) ;
БД. СоздатьФайл( Путь + "start.dbf" , Путь + "index.cdx" ) ;
БД. Индексы. Добавить( "IDXCODE" , "CODE" ) ;
ФлИБД = БД. СоздатьИндексныйФайл( Путь + "index.cdx" ) ;
БД. АвтоСохранение = Истина ;
Выборка = Справочники. Номенклатура. ВыбратьИерархически( ) ;
Пока Выборка. Следующий( ) Цикл
БД. Добавить( ) ;
БД. CODE = Выборка. Код;
БД. NAME = Выборка. Наименование;
КонецЦикла ;
БД. ЗакрытьФайл( ) ;
БД = Новый XBase;
БД. ОткрытьФайл( Путь + "start.dbf" , Путь + "index.cdx" ) ;
БД. ТекущийИндекс = БД. Индексы. IDXCODE;
Пока БД. Следующая( ) Цикл
Сообщить( БД. CODE) ;
Сообщить( БД. NAME) ;
КонецЦикла ;
БД. ЗакрытьФайл( ) ;
Код 1C v 7.x
НачВремя = _GetPerformanceCounter( ) ;
ДБФ = СоздатьОбъект( "XBASE" ) ;
ДБФ. ДобавитьПоле( "IsGroup" , "N" , 1 , 0 ) ;
ДБФ. ДобавитьПоле( "Level" , "N" , 1 , 0 ) ;
ДБФ. ДобавитьПоле( "ParentCode" , "S" , 8 , 0 ) ;
ДБФ. ДобавитьПоле( "Code" , "S" , 8 , 0 ) ;
ДБФ. ДобавитьПоле( "Descr" , "S" , 60 , 0 ) ;
ДБФ. КодоваяСтраница( 0 ) ;
ДБФ. СоздатьФайл( "c:\export.dbf" ) ;
ТЗ. ВыбратьСтроки( ) ;
Пока ТЗ. ПолучитьСтроку( ) = 1 Цикл
ДБФ. Добавить( ) ;
ДБФ. IsGroup= ТЗ. ЭтоГруппа;
ДБФ. Level= ТЗ. Уровень;
ДБФ. ParentCode = ТЗ. КодРодителя;
ДБФ. Code= ТЗ. Код;
ДБФ. Descr= СокрЛП( ТЗ. Наименование) ;
ДБФ. Записать( ) ;
КонецЦикла ;
ДБФ. ЗакрытьФайл( ) ;
КонВремя = _GetPerformanceCounter( ) ;
Длительность = Окр( ( КонВремя- НачВремя) / 1000 , 3 ) ;
Сообщить( "Время выгрузки в DBF файл: " + Длительность+ " с" ) ;
НачВремя = _GetPerformanceCounter( ) ;
ДБФ = СоздатьОбъект( "XBASE" ) ;
ДБФ. КодоваяСтраница( 0 ) ;
ДБФ. ОткрытьФайл( "c:\export.dbf" ) ;
Если ДБФ. Открыта( ) = 0 Тогда
Сообщить( "Файл DBF не открыт !" , "!" ) ;
Возврат ;
КонецЕсли ;
КолСтр = ДБФ. КоличествоЗаписей( ) ;
н= 0 ;
ДБФ. Первая( ) ;
ПризнакГруппы = ДБФ. IsGroup;
ТекУровень = ДБФ. Level;
ТекКодРодителя = ДБФ. ParentCode;
ТекКод = ДБФ. Code;
ТекНаименоване = ДБФ. Descr;
н = н+ 1 ;
Состояние( "В файле прочитано записей " + н+ " из " + КолСтр) ;
Пока ДБФ. Следующая( ) = 1 Цикл
ПризнакГруппы = ДБФ. IsGroup;
ТекУровень = ДБФ. Level;
ТекКодРодителя = ДБФ. ParentCode;
ТекКод = ДБФ. Code;
ТекНаименоване = ДБФ. Descr;
н = н+ 1 ;
Состояние( "В файле прочитано записей " + н+ " из " + КолСтр) ;
КонецЦикла ;
ДБФ. ЗакрытьФайл( ) ;
КонВремя = _GetPerformanceCounter( ) ;
Длительность = Окр( ( КонВремя- НачВремя) / 1000 , 3 ) ;
Сообщить( "Время чтения DBF файла: " + Длительность+ " с" ) ;
Категория:
JSON, XML, TXT, CSV, DBF Поиск в DBF файле по индексу Код 1C v 7.x ДБФ= СоздатьОбъект( "XBase" ) ;
ДБФ. ДобавитьПоле( "DATE" , "D" , 0 , 0 ) ;
Дбф. ДобавитьИндекс( "INDEX" , "DTOS(DATE)" , 0 , 0 , "<" ) ;
ДБФ. СоздатьФайл( "c:\test.dbf" , "c:\test.cdx" ) ;
Для ТекДата= '01.09 . 05 ' По '10.09 . 05 ' Цикл
Дбф. Добавить( ) ;
Дбф. DATE= ТекДата;
ДБФ. Записать( ) ;
КонецЦикла ;
ДБФ. ТекущийИндекс( "INDEX" ) ;
Для ТекДата= '01.09 . 05 ' По '10.09 . 05 ' Цикл
ДБФ. Ключ. DATE = ТекДата;
Если ДБФ. НайтиПоКлючу( 0 ) = 1 Тогда
Сообщить( ТекДата) ;
КонецЕсли ;
КонецЦикла ;
ДБФ. ЗакрытьФайл( ) ;
Категория:
JSON, XML, TXT, CSV, DBF Экспорт печатных форм и любых данных из 1С в BMP, JPEG, PCX, PDF, PNG и TIFF. Оптимальным решением является установка
Bullzip PDF Printer . После установки в системе появляется виртуальный принтер, с помощью которого можно "печатать" в файл pdf из любого приложения. Программа бесплатная, работает в терминале и имеет поддержку русского языка.
После установки, можно печатать напрямую используя код:
Код 1C v 8.х
Процедура СоздатьФайлПДФ(Таб, ИмяФайла)
Попытка
ПДФПринтер = Новый ComObject( «Bullzip. PDFPrinterSettings») ;
ПДФПринтер. SetValue( «output», ИмяФайла) ;
ПДФПринтер. SetValue( «ShowSaveAS», «never») ;
ПДФПринтер. SetValue( «ShowProgress», «no») ;
ПДФПринтер. SetValue( «ShowProgressFinished», «no») ;
ПДФПринтер. SetValue( «ShowSettings», «never») ;
ПДФПринтер. SetValue( «ShowPDF», «no») ;
ПДФПринтер. SetValue( «ConfirmOverwrite», »no») ;
ПДФПринтер. WriteSettings( ) ;
Таб. Автомасштаб = Истина ;
Таб. ИмяПринтера = «Bullzip PDF Printer»; Таб. Напечатать( Истина ) ;
PDFФайл = Новый Файл( ИмяФайла) ;
Пока НЕ PDFФайл. Существует( ) Цикл
ОбработкаПрерыванияПользователя( ) ;
КонецЦикла ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
Сообщить( «Скорее всего необходимо установить или переустановить «»Bullzip PDF Printer») ;
КонецПопытки ;
Таб. ИмяПринтера = ПолучитьПринтерПоУмолчанию( ) ;
КонецПроцедуры
Здесь функция
ПолучитьПринтерПоУмолчанию() нужна для того чтобы вернуть печатной форме принтер по умолчанию, т.к. если напечатать без предварительного просмотра то печать пойдет на виртуальный PDF принтер BullzipPDFPrinter.
Код 1C v 8.х
Функция ПолучитьПринтерПоУмолчанию()
Скрипт = Новый ComObject( «MSScriptControl. ScriptControl») ;
Скрипт. Language = «vbscript»;
Скрипт. AddCode( »
|Function GetDefaultPrinter()
|GetDefaultPrinter=vbNullString
|Set objWMIService=GetObject(«»winmgmts:»" _
|& «»{impersonationLevel=impersonate}!\\.\root\cimv2″»)
|Set colInstalledPrinters=objWMIService.ExecQuery _
|(«»S_elect * from Win32_Printer»")
|For Each objPrinter in colInstalledPrinters
|If objPrinter.Attributes and 4 Then
|GetDefaultPrinter=objPrinter.Name
|Exit For
|End If
|Next
|End Function»);
Возврат СокрЛП( Скрипт. run( «GetDefaultPrinter») ) ;
КонецФункции
Печать в PDF используя bioPDF Категория:
Администрирование ДБФ, работа с Индекс, Ключ Код 1C v 8.х ФайлНаДиске = Новый Файл( ИмяФайла) ;
Если НЕ ( ФайлНаДиске. Существует( ) ) Тогда
Предупреждение( "Файл с таким именем не существует " + ИмяФайла) ;
Возврат ;
КонецЕсли ;
ДБФ = Новый xBase;
ДБФ. Кодировка = КодировкаXBase. OEM;
ДБФ. ОткрытьФайл( ИмяФайла) ;
Если ДБФ. Открыта( ) = 0 Тогда
Предупреждение( "Неудалось открыть файл. Возможно он занят другим приложением!" ) ;
Возврат ;
КонецЕсли ;
ДБФ. Индексы. Добавить( "IDX_vE" , "VAL(EXTENSION)" , Ложь , Ложь , "PREFLEN1>0" ) ;
ДБФ. СоздатьИндексныйФайл( ИмяИндекса) ;
ДБФ. ТекущийИндекс = ДБФ. Индексы. IDX_vE;
ДБФ. Ключ. EXTENSION = "1002" ;
Если ДБФ. НайтиПоКлючу( "=" ) = Истина Тогда
ТекЗапись= ДБФ. НомерЗаписи( ) ;
Пока СокрЛП( ДБФ. EXTENSION) = "1002" Цикл
Сообщить( "-" + ДБФ. EXTENSION + " - " + ДБФ. НомерЗаписи( ) + "-" ) ;
ДБФ. Следующая( ) ;
КонецЦикла ;
Иначе
Сообщить( "Нет записи!" ) ;
КонецЕсли ;
ДБФ. ЗакрытьФайл( ) ;
УдалитьФайлы( ИмяИндекса) ;
Код 1C v 8.х
ФайлБД= КаталогИмя+ "Spr_podr." ;
xБД= Новый Файл( ФайлБД+ "dbf" ) ;
Если xБД. Существует( ) Тогда
УдалитьФайлы( ФайлБД, "*" ) ;
КонецЕсли ;
xБД = Новый XBase;
xБД. Поля. Добавить( "Id" , "S" , 5 ) ;
xБД. Поля. Добавить( "Name" , "S" , 25 ) ;
xБД. СоздатьФайл( ФайлБД+ "dbf" ) ;
ИндВр= "Id" ;
xБД. индексы. Добавить( "Id" , ИндВр, Истина ) ;
ИБД = xБД. СоздатьИндексныйФайл( ФайлБД+ "cdx" ) ;
xБД. АвтоСохранение= Истина ;
xБД. ЗакрытьФайл( ) ;
xБД. ОткрытьФайл( ФайлБД+ "dbf" , ФайлБД+ "cdx" ) ;
xБД. ТекущийИндекс = xБД. индексы. Id;
Выборка= Справочники. Подразделения. Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
xБД. Добавить( ) ;
xБД. ID= Выборка. Код;
xБД. Name= Выборка. Наименование;
xБД. Записать( ) ;
КонецЦикла ;
xБД. ЗакрытьФайл( ) ;
xБД. ОткрытьФайл( ФайлБД+ "dbf" , ФайлБД+ "cdx" ) ;
xБД. ТекущийИндекс = xБД. индексы. Id;
Если xБД. Найти( "00003" , ">=" ) Тогда
Сообщить( xБД. ID+ " - " + xБД. NAME) ;
Пока xБД. Следующая( ) Цикл
Сообщить( xБД. ID+ " - " + xБД. NAME) ;
КонецЦикла ;
КонецЕсли ;
xБД. ЗакрытьФайл( ) ;
Категория:
JSON, XML, TXT, CSV, DBF