Общие сведения.
Обработка имеет гибкие настройки и позволяет выгружать практически любые данных из информационной базы (ИБ) во внешний файл формата .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С за дополнительной помощью.
Класс! Для УТ 10.3 есть такая?
Универсальная, качай 8.2
В версии для 8.3 используются функции: СтрРазделить(), СтрСоединить() ?
(3) Основное отличие версии для 8.3 от 8.2 — это НЕиспользование модальных окон в управляемых формах.
Класс. Возьму на заметку.
А можно ли выгружать штрих-код вместе с остатками?
(6) Можно, нужно просто изменить текст запроса в СКД, чтобы в выборку попадал и штрихкод (кнопка «Редактировать» рядом с полем «Объект для выгрузки»).
Добрый день.
Спасибо за обработку, но я не могу разобраться как сделать вывод остатков номенклатуры на розничном складе (1с 8.2 УТ 10.3) — код, наименование, характеристика (может быть несколько), количество, цена1, цена2. Но только той номенкл, которая была в документах (Поступление ТМЦ или Реализация тов и усл) на определенную дату (т.е выбор даты).
Большая просьба подробнее расписать где что как заполнять в обработке т.к. в программировании не очень…
что-то пытался свой запрос создать: виснет наглухо.
похоже это косяс с самой конфой при работе в режиме толстого клиента. А сама обработка классная.
Супер! Всё работает, даже на FTP выгружает. Есть ошибка при встраивании в конфигурацию: В модуле Формы, строка 230: переменная не определена ИспользуемоеИмяФайла. Не проходит проверку на ошибки модуля. Когда обработка внешняя – ошибки нет.
Использование СКД и выгрузка всех настроек в XML это гениально. Универсальность полная.
Записывает файл в кодировке UTF-8 с BOM. Чтобы убрать BOM, надо в модуле объекта исправить строку 951:
ФайлВыгрузки = Новый ЗаписьТекста(_ИмяФайлаВыгрузки, Кодировка, Символы.ПС, Истина, Символы.ПС);
Здравствуйте. Не подскажите, пытаюсь сохранить в файл выгрузку и пишет: ошибка доступа к файлу ‘222’ (это тот файл в который хочу выгрузить)
(7) Здравствуйте. А можете за вознаграждения для вашей обработки шаблон выгрузки сделать?
отличная обработка
можете мини-инструкцию добавить как выгружать картинки и присоединенные фалы ?
Здравствуйте.
Подскажите пожалуйста, как запретить выгрузке переносить поля, если выгружаемых данных много.
Пример: обилие текста в столбце комментарий (9ый). Часть текста переносится в первый столбец.
В клиент-серверном режиме 3 пример не работает, настройки не подгружаются. Обработка реально классная.