Универсальная выгрузка данных в формате CSV

Общие сведения.

Обработка имеет гибкие настройки и позволяет выгружать практически любые данных из информационной базы (ИБ) во внешний файл формата .CSV. Имеется возможность выгрузки данных из таких объектов ИБ как справочники, документы и их табличных частей, регистры сведений, накопления и бухгалтерии. Так же можно создать свой произвольный запрос для выборки выгружаемых данных с использованием системы компоновки данных (СКД). А наличие возможности задавать произвольный алгоритм для отдельных реквизитов добавляет обработке ещё большую универсальность.

Создаваемые настройки можно сохранять во внешние файлы для дальнейшего использования.

Обработка работает как в режиме обычного приложения, так и в режиме управляемого приложения. Подходит для любой конфигурации и версии платформы от 8.1 и выше. Тестирование и реальная работа обработки производились на платформах 1С 8.1, 8.2 и 8.3 в конфигурациях УТ 10.3, УТ 11, ERP, КА 2.

Описание использования обработки.

Примечание. Информацию о работе с обработкой также можно найти во встроенной справке.

Для выгрузки указывается имя файла, в который будут выгружены данные, кодировка файла, разделитель и выбирается объект для выгрузки.

После чего, при необходимости, задаются параметры и/или отбор.

Далее необходимо указать состав реквизитов:
Приемник – имя реквизита в файла CSV;
Источник – имя реквизиты выборки данных: выбирается из списка на основании объекта для выгрузки

Также в поле Алгоритм возможно указать дополнительный произвольный алгоритм для определения выгружаемого значения. Например для наименования.

	 Если Источник.Номенклатура.ПометкаУдаления Тогда

	     Значение = Источник.Номенклатура.Наименование + " (пометка удаления)";

	 КонецЕсли;

Ниже приведен пример настройки выгрузки.

Созданные настройки можно сохранить во внешний файл и использовать их в дальнейших выгрузках. Т.о. нет необходимости производить настройки заново при каждой выгрузке данных.

Так же есть возможность отредактировать запрос выборки данных выбранного объекта для выгрузки или даже создать полностью произвольный запрос с необходимой выборкой с использованием схемы компоновки данных.

Ниже приведен пример запроса выгрузки данных о номенклатуре, её цене и количестве на складе для конфигурации "1С:Управление торговлей 11".
Для этого в поле "Объект для выгрузки" выбираем регистр накопления "Товары на складах.Остатки".

Нажимаем кнопку "Редактировать" и изменяем текст запроса таким образом, чтобы в выборку попадали еще и цены.

Добавим новый набор данных.

Установим связи.

Не забудем снять ограничение доступности параметра "ВидЦены", чтобы можно было установить его значение в настройках.

И нажмем "ОК" для сохранения настроек.

После окончания редактирования схемы компоновки данных зададим нужные параметры и, если это необходимо, отбор.

И, наконец, зададим состав реквизитов.

Использование обработки из внешнего кода.

Обработка может использоваться из внешнего кода. Например, из процедуры регламентного задания. При этом рекомендуется добавить обработку в состав конфигурации.

Примеры использования.

Пример 1. Выгрузка текущих цен.

 	 ОбработкаВыгрузки = Обработки.УниверсальнаяВыгрузкаДанныхВФорматеCSV.Создать();
	 ОбработкаВыгрузки.ИмяФайлаВыгрузки = "d:\обмен_данными\прайс_лист.csv";
	 ОбработкаВыгрузки.Кодировка = "windows-1251";
	 ОбработкаВыгрузки.Разделитель = ";";
	 ОбработкаВыгрузки.ОбъектДляВыгрузки = "РегистрСведений.ЦеныНоменклатуры.СрезПоследних"; 

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "product_id";
	 СтрокаРеквизита.Источник = "Номенклатура.Код"; 

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "product_name";
	 СтрокаРеквизита.Источник = "Номенклатура.Наименование"; 

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "price";
	 СтрокаРеквизита.Источник = "Цена"; 

	 ОбработкаВыгрузки.ВыгрузитьДанные(); 

Пример 2. Выгрузка остатков на заданную дату с отбором по складу.

 	 ОбработкаВыгрузки = Обработки.УниверсальнаяВыгрузкаДанныхВФорматеCSV.Создать();
	 ОбработкаВыгрузки.ИмяФайлаВыгрузки = "d:\обмен_данными\остатки_на_складах.csv";
	 ОбработкаВыгрузки.Кодировка = "windows-1251";
	 ОбработкаВыгрузки.Разделитель = ";";
	 ОбработкаВыгрузки.ОбъектДляВыгрузки = "РегистрНакопления.ТоварыНаСкладах.Остатки";

	 СхемаКомпоновкиДанных = ОбработкаВыгрузки.ИнициализироватьСхемуКомпоновкиДанных();
	 АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных);

	 КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
	 КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));

	 ПараметрПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
	 ПараметрПериод.Использование = Истина;
	 ПараметрПериод.Значение = Дата('20140801000000');
 
	 ОтборСклад = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	 ОтборСклад.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
	 ОтборСклад.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	 ОтборСклад.ПравоеЗначение = Справочники.Склады.НайтиПоНаименованию("Центральный склад");
	 ОтборСклад.Использование = Истина;

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "product_id";
	 СтрокаРеквизита.Источник = "Номенклатура.Код";

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "product_name";
	 СтрокаРеквизита.Источник = "Номенклатура.Наименование";

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "date";
	 СтрокаРеквизита.Алгоритм = "Значение = ТекущаяДата()";

	 СтрокаРеквизита = ОбработкаВыгрузки.СоставРеквизитов.Добавить();
	 СтрокаРеквизита.Приемник = "count";
	 СтрокаРеквизита.Источник = "ВНаличииОстаток";

	 ОбработкаВыгрузки.ВыгрузитьДанные(СхемаКомпоновкиДанных, КомпоновщикНастроек);

Пример 3. Выгрузка по созданным ранее настройкам.

	 ОбработкаВыгрузки = Обработки.УниверсальнаяВыгрузкаДанныхВФорматеCSV.Создать();
	 ОбработкаВыгрузки.ЗагрузитьНастройкиИзФайла("d:\обмен_данными\остатки_настройки.xml");
	 ОбработкаВыгрузки.ВыгрузитьДанные();

Внимание!

Для настройки сложной выборки данных потребуется знание языка запросов 1С и навыки использования системы компоновки данных (СКД)! Если у вас этих знаний нет, то вы можете обратится к своему программисту 1С за дополнительной помощью.

В КАТАЛОГ »