Автоматизация обмена между базами используя обработку "Универсальный обмен данными в формате XML"

В основу данной публикации положены найденные мною материалы по созданию обмена между двумя базами с использованием обработки "Универсальный обмен данными в формате XML". Но предлагается вариант автоматизации решения задачи, которая позволяет выполнять обмен неквалифицированным пользователям, либо по регламенту. Скажем, такой обмен применим, если вы не можете по ряду причин использовать РБД, либо у вас совсем разные конфигурации баз (случаи бывают разные, а хочется максимально настраиваемой гибкости).

Вначале, безусловно, воспользуемся конфигурацией «Конвертация данных», чтобы создать необходимые нам правила обмена (как — это отдельная тема).

Итак, собственно сама ВЫГРУЗКА: 

 Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
 
Обработка.РежимОбмена = «Выгрузка»;
 
Обработка.ВыводВОкноСообщенийИнформационныхСообщений = Истина;

При необходимости можно задать период выгрузки (как пример):

 Обработка.ДатаНачала  = ТекущаяДата();
 
Обработка.ДатаОкончания   = ТекущаяДата();

 Обработка.ИмяФайлаПравилОбмена = «D:ПравилаОбменаДанными.xml»;

 Источник = ЭтотОбъект.Ссылка;
 ИмяФайла = Строка(ТипЗнч(Источник)) + » » + Строка(Источник.Номер);
 
Обработка.ИмяФайлаОбмена = «D:E»+ Источник +«.xml»;
 

 Обработка.ЗагрузитьПравилаОбмена(); 

Основные параметры мы определили, теперь надо настроить отбор. Если в этом нет необходимости, то просто запускаете выгрузку:

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

Настройка ОТБОРА:
Тут надо обратить внимание на массив «ВременнаяТаблицаПравил.Строки[1]» и в частности на индекс массива строк,
1 — это ветка «Справочники». Ну и так далее по аналогии              

ВременнаяТаблицаПравил = Обработка.ТаблицаПравилВыгрузки.Скопировать();
 Для Каждого
СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[1].Строки Цикл
    
Наименование = СтрокаУровня2.Имя;
     Если
Наименование <> «ПеремещениеТоваров00001» Тогда
        
СтрокаУровня2.Включить = 0;
     КонецЕсли;
 КонецЦикла;
 Для Каждого
СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[2].Строки Цикл
    
Наименование = СтрокаУровня2.Имя;
     Если
Наименование <> «ПеремещениеТоваров00001» Тогда
        
СтрокаУровня2.Включить = 0;
     КонецЕсли;
 КонецЦикла;

Здесь вы определяете искомое правило выгрузки, которое нужно оставить включенным на определенной ветке (сами можете варьировать чего и сколько):

 Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
   
Наименование = СтрокаУровня2.Имя;
    Если
Наименование = «ПеремещениеТоваров00001» Тогда
       
СтрокаУровня2.Включить = 1;
    Иначе
       
СтрокаУровня2.Включить = 0;
    КонецЕсли;
 КонецЦикла;
 
Обработка.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();

Теперь настраиваем ОТБОР, смысл которого в том, чтобы передать в нашу выгрузку ссылку на документ(ты) который(е) хотим выгрузить:

Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
 
Наименование = СтрокаУровня2.Имя;
  Если
Наименование = «ПеремещениеТоваров00001» Тогда
 
ТекущееПВД = СтрокаУровня2;

     Построитель = Новый ПостроительОтчета;
     Если
ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда

         Построитель.Текст =
        
«ВЫБРАТЬ Разрешенные _.* ИЗ » + ТекущееПВД.ИмяОбъектаДляЗапроса + » КАК _
          |
          |
          |{ГДЕ _.Ссылка.* КАК »
+ СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, «.», «_») + «}»;
     КонецЕсли;

     Отбор = Построитель.Отбор;

     Если Отбор.Найти(«Документ_ПеремещениеТоваров») = Неопределено Тогда
       
Отбор.Добавить(«Документ_ПеремещениеТоваров»);
     КонецЕсли;

     Массив = Новый Массив;
    
Массив.Добавить(Тип(«ДокументСсылка.ПеремещениеТоваров»));
    
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );

     Отбор[«Документ_ПеремещениеТоваров»].Использование = Истина;
    
Отбор[«Документ_ПеремещениеТоваров»].Значение = ЭтотОбъект.Ссылка;
    
Отбор[«Документ_ПеремещениеТоваров»].ВидСравнения = ВидСравнения.Равно;

     ДоступностьПостроителя = Истина;
     Если
Построитель.Отбор.Количество() > 0 Тогда
         
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
        
ТекущееПВД.ИспользоватьОтбор    = ИСТИНА;
     КонецЕсли;
  КонецЕсли;
КонецЦикла;

Обработка.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();

Ну и, собственно, запускаем саму выгрузку и получаем файл для загрузки:

  Обработка.АрхивироватьФайл = Истина;
  Обработка.ВыполнитьВыгрузку();

Далее процесс загрузки:
Он довольно прост

МассивФайлов = НайтиФайлы(«D:E», «*.zip»);
Для Каждого
Стм Из МассивФайлов Цикл
ТекстВопроса = «Загрузить — » + Стм.ПолноеИмя;
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да);
    Если
Ответ = КодВозвратаДиалога.Да Тогда
       
Обработка  = Обработки.УниверсальныйОбменДаннымиXML.Создать();
       
Обработка.ИмяФайлаОбмена = Стм.ПолноеИмя;
       
Обработка.РежимОбмена    = «Загрузка»;
       
Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
       
Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
       
Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
       
Обработка.ВыполнитьЗагрузку();
       
УдалитьФайлы(Стм.ПолноеИмя);
    КонецЕсли;
КонецЦикла;

Расширение .zip для файлов обмена пусть вас не смущает, обработка самостоятельно упакует .xml файл в архив:

 Обработка.АрхивироватьФайл = Истина;

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

Вот примерно так можно поступить.

Продолжение темы :

//infostart.ru/public/87057/

39 Comments

  1. samamoiloff
    Отбор[«Документ_ПеремещениеТоваров»].Значение = ЭтотОбъект.Ссылка;

    Пример выгрузки из документа получается?

    Reply
  2. wiranata

    Завтра выложу пример (обработку).

    (1)Не совсем понял в чем вопрос, если вы имеете ввиду вигрузку только табличной части документа (скажем товары) в другой документ либо такой же но с обработкой этих данных — то это надо описывать в обработчиках событий в Конвертации данных (когда будите писать правила обмена). Я только показал как сделать некий регламент обмена а не запрограммировать его логику (это отдельная тема).

    Reply
  3. ARL

    Информация удобная, автору благодарность.

    Мне потребовалось выгружать по плану обмена. Поэтому немного добавлю:

    НашУзел = ПланыОбмена.ХХХХ.НайтиПоКоду(«2»);

    УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.Строки, НашУзел);

    Процедуру УстановитьУзелОбменаУСтрокДерева просто копируем из формы обработки.

    Reply
  4. plevakin
    (1)Не совсем понял в чем вопрос

    Насколько я понял данный пример в отборе отбирает только один документ, что на практике бывает редко. Попробовал изменить строки на

    Отбор[«Документ_РеализацияТоваровУслуг»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_РеализацияТоваровУслуг»].Значение = Массив;

    где Массив это мой программно создаваемый список значений заполненный ссылками на документ. Ничего не получилось.

    Завтра выложу пример (обработку).

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

    Reply
  5. ARL

    (4) Отбор[«Документ_РеализацияТоваровУслуг»].Значение = Массив.Скопировать();

    где Массив имеет тип СписокЗначений.

    Reply
  6. plevakin
     Отбор = Построитель.Отбор;
    
    Если Отбор.Найти(«Документ_РеализацияТоваровУслуг») = Неопределено Тогда
    Отбор.Добавить(«Документ_РеализацияТоваровУслуг»);
    КонецЕсли;
    
    Массив = Новый СписокЗначений;
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(начПериода,КонПериода);
    Пока Выборка.Следующий() Цикл
    Массив.Добавить(Выборка.Ссылка);
    КонецЦикла;
    
    Отбор[«Документ_РеализацияТоваровУслуг»].Использование = Истина;
    Отбор[«Документ_РеализацияТоваровУслуг»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_РеализацияТоваровУслуг»].Значение = Массив.Скопировать();
    
    

    Показать

    После этих строк смотрю в отладчике отбор и вижу

    Выгружено объектов 0.

    Reply
  7. wiranata

    (6) Как я понял проблема настроить отбор в варианте «ВСписке» программно… обработку не буду ради это писать… но где то так:

    Структура = Новый СписокЗначений;

    Запрос = Новый Запрос();

    Запрос.Текст =

    «ВЫБРАТЬ

    | ПеремещениеТоваров.Ссылка,

    | ПеремещениеТоваров.Дата

    |ИЗ

    | Документ.ПеремещениеТоваров КАК ПеремещениеТоваров

    |ГДЕ

    | ПеремещениеТоваров.Дата МЕЖДУ &датаНачала И &датаКонца»;

    Запрос.УстановитьПараметр(«ДатаНачала», НачалоМесяца(ТекущаяДата()));

    Запрос.УстановитьПараметр(«ДатаКонца», ТекущаяДата());

    Структура = Запрос.Выполнить().Выгрузить();

    Отбор[«Документ_ПеремещениеТоваров»].Использование = Истина;

    Отбор[«Документ_ПеремещениеТоваров»].ВидСравнения = ВидСравнения.ВСписке;//Равно;

    Отбор[«Документ_ПеремещениеТоваров»].Значение.ЗагрузитьЗначения(Структура.ВыгрузитьКолонку(«Ссылка»));//Источник;

    Вот так список значений заполняется, я детально не встраивал в обработку но вызвав форму обработки видел что список значений заполнился ссылками, по ошибке ничего не вывалилось.

    Reply
  8. mirkomp

    Данная методика будет работать с выгрузкой из базы в которой две организации (ИП и ООО)? конф УТ ред 11 (управляемое приложение)

    Reply
  9. xaker1C

    спасибо очень помогло правда пришлось с легка модифицировать

    Reply
  10. wiranata

    (8) Данная методика будет работать не зависимо от форм отганизационно-правовой формы. Но на версии УТ 11 я ее не тестировал за неимением (Конфигурации где будет работать написаны в заголовке).

    Reply
  11. Paul_Nevada

    Привет! Спасибо за тему — очень актуальная для меня оказалась. Такой вопрос — можно ли этот «кусок» развить до полуавтоматического общения двух идентичных БД via e-mail?

    Reply
  12. wiranata

    (11) Привет! количества вариантов (автоматического, например как у меня по регламенту… много, надо будет дописать схему реализации) ограниченно лишь функционалом самой 1С. Там есть возможность авто пересылки сообщений и их автоматического приема и обработки НО! данная обработка «вытаскивает» весь объект вместе с подчиненными ссылками и в итоге мы получаем файл где то на 60 метров (и это в архиве!).

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

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

    Reply
  13. Maks888

    Хочу поблагодарить автора! Очень и очень замечательную вещь выложили! Буквально меня спасли =) очень сократил время на разработку! + 10 !!!

    Reply
  14. нинас

    Спасибо за статью.

    Reply
  15. binex

    Я не пойму зачем нужно копировать ТаблицуПравилВыгрузки? Почему бы сразу в неё изменения не вносить?

    Reply
  16. wiranata

    (17) Публикация не подвергалась оптимизации если вам так удобнее то почему нет.. тут лишь изложена одна из идей обмена а не обработки данных в процессе этого обмена.

    Reply
  17. binex

    Спасибо! Статья помогла.

    Reply
  18. galyausik1

    Спасибо! Очень полезная статейка

    Reply
  19. alon

    Обработка.ВыполнитьЗагрузку();

    УдалитьФайлы(Стм.ПолноеИмя);

    У вас не возникает ошибки совместного доступа к файлу в последней строке?

    Reply
  20. wiranata

    (21)Нет не возникает, а должно?

    Reply
  21. uri1978

    Спасибо за статью. Подтолкнули на мысль, использовал в работе. Очень пригодилось.

    Reply
  22. Al777

    Спасибо за статью! Как раз возникла необходимость постоянной перегрузки документов из одной базы в другую через универсальный отчет.

    Reply
  23. dyak84

    Спасибо буду пробовать, интересная статья

    Reply
  24. Steelvan

    …применим если вы не можите…

    *можЕте

    Reply
  25. orfos

    А как настроить отбор только по справочникам (у)??

    Reply
  26. lion11

    Можете подсказать, как сделать то же самое, но только в УФ? Есть внешняя обработка на УФ с кнопкой выгрузить, по нажатию на которую нужно выгрузить по правилу обмена используя обработку УниверсальныйОбменДаннымиXML на УФ, например, в БП3.

    Не актуально, разобрался.

    Reply
  27. nef744

    Спасибо! Очень помогло!

    Reply
  28. Гость

    Всё работает, но возникает проблема с добавлением отбора на регистр сведений, у кого нибудь есть пример кода?

    Reply
  29. oleganatolievich

    (7) еще дело может быть в отсутствии галочки у корневых разделов ПВД (Справочники, Документы), при установленной галке в строках этих разделов.

    Reply
  30. AlekSo

    (30) Гость,

    Вряд ли кто нибудь теперь уже ответит.

    Тоже бьюсь над этим — как отобрать независимые регистры сведений?

    В частности нужно отобрать по периоду или по дате ключевого документа.

    Reply
  31. AlekSo

    Если кому ещё интересно.

    В самой обработке универсального обмена в модуле формы есть процедура НастроитьПостроитель().

    Оттуда можно выдернуть нужные строки.

    коротко вот пример для независимого периодического регистра сведений:

    Функция УстановитьОтборПериодическимРС(ВнешняяОбработкаОбмена, ИмяРегистра)
    СтрокаГруппыДокументов = ВнешняяОбработкаОбмена.ТаблицаПравилВыгрузки.Строки.Найти(«РегистрыСведений»);
    СтрокаПВД = СтрокаГруппыДокументов.Строки.Найти(ИмяРегистра);
    
    ИмяПВД = СтрокаПВД.ИмяОбъектаДляЗапросаРегистра;
    
    Построитель.Текст = «ВЫБРАТЬ Разрешенные
    |   *,
    | NULL КАК Активность,
    | NULL КАК Регистратор,
    |  NULL КАК НомерСтроки
    |
    |ИЗ «+ИмяПВД;
    
    Построитель.ЗаполнитьНастройки();
    
    ЭлемОтбора = Построитель.Отбор.Добавить(«Период»);
    Если ЭлемОтбора = Неопределено Тогда
    Сообщить(«Не удалось настроить ОТбор по документам»);
    КонецЕсли;
    
    ЭлемОтбора.ВидСравнения  = ВидСравнения.ИнтервалВключаяГраницы;
    ЭлемОтбора.ЗначениеС     = НачПериода;
    ЭлемОтбора.ЗначениеПо    = КонПериода;
    ЭлемОтбора.Использование = Истина;
    
    СтрокаПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    СтрокаПВД.ИспользоватьОтбор    = ИСТИНА;
    
    Возврат Истина;
    КонецФункции
    

    Показать

    Здесь важно брать именно ИмяОбъектаДляЗапросаРегистра.

    Reply
  32. 88wau24ru
    Для Каждого СтрокаУровня1 Из ТаблицаПравилВыгрузки.Строки Цикл
    Для Каждого СтрокаУровня2 Из ТаблицаПравилВыгрузки.Строки[0].Строки Цикл
    Наименование =  СтрокаУровня2.Имя;
    Если Наименование = «ВозвратТоваровОтПокупателя» Тогда
    Построитель = Новый ПостроительОтчета;
    Если СтрокаУровня2.ИмяОбъектаДляЗапроса <> Неопределено Тогда
    Построитель.Текст =
    «ВЫБРАТЬ Разрешенные _.* ИЗ » + СтрокаУровня2.ИмяОбъектаДляЗапроса + » КАК _
    |{ГДЕ _.Ссылка.* КАК » + СтрЗаменить(СтрокаУровня2.ИмяОбъектаДляЗапроса, «.», «_») + «}»;
    КонецЕсли;
    Отбор = Построитель.Отбор;
    Если Отбор.Найти(«Документ_ВозвратТоваровОтПокупателя») = Неопределено Тогда
    Отбор.Добавить(«Документ_ВозвратТоваровОтПокупателя»);
    КонецЕсли;
    СписокДокументов = Новый СписокЗначений;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].Использование = Истина;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].Значение  = СписокДокументов;
    ДоступностьПостроителя = Истина;
    Если Построитель.Отбор.Количество() > 0 Тогда
    СтрокаУровня2.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    СтрокаУровня2.ИспользоватьОтбор    = Ложь;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;

    Показать

    Работает, Спасибо! А нет возможности добавить реквизит в отбор?

    Примерно следущее?

    Отбор[«Документ_ВозвратТоваровОтПокупателя.Организация»].Использование = Истина;
    Отбор[«Документ_ВозвратТоваровОтПокупателя.Организация»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_ВозвратТоваровОтПокупателя.Организация»].Значение  = ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияКОРП.НайтиПоКоду(«002»).Организации.ВыгрузитьКолонку(«Организация»);
    Reply
  33. 88wau24ru
    Если Отбор.Найти(«Документ_ВозвратТоваровОтПокупателя.Организация») = Неопределено Тогда
    Отбор.Добавить(«Документ_ВозвратТоваровОтПокупателя.Организация»);
    КонецЕсли;

    Отбор добавляется но при

    Отбор[«Документ_ВозвратТоваровОтПокупателя.Организация»].Использование    = Истина;

    выводится ошибка

    Reply
  34. Butuff

    (33) а есть пример выгрузки только измененных записей регистра сведений? (не периодического и без регистратора)

    Reply
  35. 88wau24ru
    Для Каждого СтрокаУровня1 Из ТаблицаПравилВыгрузки.Строки Цикл
    Для Каждого СтрокаУровня2 Из ТаблицаПравилВыгрузки.Строки[0].Строки Цикл
    Наименование =  СтрокаУровня2.Имя;
    Если Наименование = «ВозвратТоваровОтПокупателя» Тогда
    Построитель = Новый ПостроительОтчета;
    Если СтрокаУровня2.ИмяОбъектаДляЗапроса <> Неопределено Тогда
    Построитель.Текст =
    «ВЫБРАТЬ Разрешенные _.* ИЗ » + СтрокаУровня2.ИмяОбъектаДляЗапроса + » КАК _
    |{ГДЕ _.Ссылка.* КАК » + СтрЗаменить(СтрокаУровня2.ИмяОбъектаДляЗапроса, «.», «_») + «}»;
    КонецЕсли;
    Отбор = Построитель.Отбор;
    Если Отбор.Найти(«Документ_ВозвратТоваровОтПокупателя») = Неопределено Тогда
    Отбор.Добавить(«Документ_ВозвратТоваровОтПокупателя»);
    Отбор.Добавить(«Документ_ВозвратТоваровОтПокупателя.Организация», «ОсновнаяОрганизация»);
    КонецЕсли;
    СписокДокументов = Новый СписокЗначений;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].Использование = Истина;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_ВозвратТоваровОтПокупателя»].Значение  = СписокДокументов;
    ОсновнаяОрганизация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, «ОсновнаяОрганизация»);;
    Отбор[«ОсновнаяОрганизация»].Использование = Истина;
    Отбор[«ОсновнаяОрганизация»].ВидСравнения = ВидСравнения.Равно;
    Отбор[«ОсновнаяОрганизация»].Значение  = РеглОрганизация;
    ДоступностьПостроителя = Истина;
    Если Построитель.Отбор.Количество() > 0 Тогда
    СтрокаУровня2.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    СтрокаУровня2.ИспользоватьОтбор    = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    

    Показать

    Вот так работает, мож пригодится кому…

    Reply
  36. PhoenixAOD

    Доброго времени суток. Спасибо за статью, но у меня возникла проблема.

    Если Отбор.Найти(«Документ_РеализацияТоваровУслуг») = Неопределено Тогда
    Отбор.Добавить(«Документ_РеализацияТоваровУслуг»);
    КонецЕсли;
    
    Структура = Новый СписокЗначений;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    «ВЫБРАТЬ
    | РеализацияТоваровУслугИзменения.Ссылка КАК Ссылка
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Изменения КАК РеализацияТоваровУслугИзменения
    |ГДЕ
    | РеализацияТоваровУслугИзменения.Узел = &Узел
    | И РеализацияТоваровУслугИзменения.Ссылка.Менеджер В(&СпАвтор)
    | И РеализацияТоваровУслугИзменения.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания»;
    
    
    Запрос.УстановитьПараметр(«Узел», ПланыОбмена.ОбменСКА2.НайтиПоКоду(«77777»));
    Запрос.УстановитьПараметр(«СпАвтор», СпАвтор);
    Запрос.УстановитьПараметр(«ДатаНачала», НачалоДня(Объект.ДатаНачала));
    Запрос.УстановитьПараметр(«ДатаОкончания», КонецДня(Объект.ДатаОкончания));
    Структура = Запрос.Выполнить().Выгрузить();
    
    
    Отбор[«Документ_РеализацияТоваровУслуг»].Использование = Истина;
    Отбор[«Документ_РеализацияТоваровУслуг»].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[«Документ_РеализацияТоваровУслуг»].Значение.ЗагрузитьЗначения(Структура.ВыгрузитьКолонку(«Ссылка»));

    Показать

    Сделал вот так, но почему то попадют все документы «СпАвтор» почему то не отрабатывается условие. Не подскажете в чем дело?

    Reply
  37. user639784_kuz_val87

    Добрый день! может кто-нибудь выложить код полностью рабочей обработки? у меня почему-то только справочники выгружаются, документы никак не могу выгрузить, как ни пытался… буду очень благодарен)

    Reply
  38. user639784_kuz_val87
    Reply
  39. arz

    Доброго дня. В серверном варианте на линуксе ( скорее всего на виндоус так же будет) загрузка файла блокировала файл обмена. Помогло удаление файла, причем только функцией из самой обработки.

    Обработка.ВыполнитьЗагрузку();
    Обработка.УдалитьВременныеФайлы(Путь +»выгрузка.xml»);
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *