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

11.07.11

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Данный материал является продолжением начатой мною темы относительно использования обработки «Универсальный обмен данными в формате XML» при организации регламентного обмена между различными базами (http://infostart.ru/public/86109/ ).

Скачать исходный код

Наименование Файл Версия Размер
Печатный вариант статьи
.zip 359,94Kb
137
.zip 359,94Kb 137 Скачать

После построения простой схемы обмена всегда встает вопрос  относительно того, как регистрировать изменения в базе для обмена (в стандартном варианте для этого есть планы обмена, где определен состав объектов и способ их регистрации), в нашем варианте тоже возможна привязка к плану обмена и обработка позволяет это сделать. Также возможно создать свой план обмена и задействовать его, вот некий пример: http://www.kb.mista.ru/article.php?id=356 . Но я, не претендуя на уникальность, предлагаю свой вариант, идея которого, возможно, кому-либо и пригодится.

Итак…

Изменения будут регистрироваться в регистре сведений:

 

Также потребуется перечисление для установки текущих статусов документов: 

Напишем несколько функций в общем модуле (можно использовать имеющейся либо создать свой для этой цели). Там разместим помимо регламентных процедур загрузки и выгрузки описанных в предыдущей статье следующие функции:

//проверка статуса документа для принятия решения о обмену
Функция ПолучитьСтатусДокумента (Документ
) Экспорт
   
Запрос = Новый Запрос
;
   
Запрос.Текст
=
   
"ВЫБРАТЬ
    |   СтатусыДокументовДляВыгрузки.Статус
    |ИЗ
    |   РегистрСведений.СтатусыДокументовДляВыгрузки КАК СтатусыДокументовДляВыгрузки
    |ГДЕ
    |   СтатусыДокументовДляВыгрузки.Документ = &Документ"
;
   
Запрос.УстановитьПараметр("Документ",Документ
);
   
РезультатЗапроса = Запрос.Выполнить
();
    Если
РезультатЗапроса.Пустой
() Тогда
        Возврат Null;
    Иначе
        Возврат
РезультатЗапроса.Выгрузить()[0].Статус
;
    КонецЕсли;
КонецФункции

//установка нового статуса документа в системе обена
Процедура УстановитьСтатусДокумента (Документ, Статус
) Экспорт
    Если Не
ЗначениеЗаполнено(Документ) ИЛИ Не ЗначениеЗаполнено(Статус
) Тогда
        Возврат;
    КонецЕсли;

   
МенеджерЗначенияСвойствОбъектов = РегистрыСведений.СтатусыДокументовДляВыгрузки.СоздатьМенеджерЗаписи
();
   
МенеджерЗначенияСвойствОбъектов.Документ = Документ
;
   
МенеджерЗначенияСвойствОбъектов.Прочитать
();
   
МенеджерЗначенияСвойствОбъектов.Документ = Документ
;
   
МенеджерЗначенияСвойствОбъектов.Статус = Статус
;
   
МенеджерЗначенияСвойствОбъектов.Записать
();

КонецПроцедуры

//удаление документа из системы обмена
Процедура УдалитьСтатусДокумента (Документ
) Экспорт
    Если Не
ЗначениеЗаполнено(Документ
) Тогда
        Возврат;
    КонецЕсли;
   
МенеджерЗначенияСвойствОбъектов = РегистрыСведений.СтатусыДокументовДляВыгрузки.СоздатьМенеджерЗаписи
();
   
МенеджерЗначенияСвойствОбъектов.Документ = Документ
;
   
МенеджерЗначенияСвойствОбъектов.Прочитать
();
    Если
МенеджерЗначенияСвойствОбъектов.Выбран
() Тогда
       
МенеджерЗначенияСвойствОбъектов.Удалить
();
    КонецЕсли;

КонецПроцедуры

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

Если Ссылка.Дата > '20110525' Тогда
        Если
Ссылка.СкладОтправитель = Справочники.Склады.НайтиПоКоду("……")
            ИЛИ
Ссылка.СкладПолучатель = Справочники.Склады.НайтиПоКоду("…..") ТОГДА
               
Обмен.УстановитьСтатусДокумента (Ссылка, Перечисления.СтатусДокументов.НеВыгружено);
        КонецЕсли
КонецЕсли;

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

Начитали список нужных нам документов:

    Структура = Новый СписокЗначений;
   
Запрос = Новый Запрос();
   
Запрос.Текст =
       
"ВЫБРАТЬ
        |   СтатусыДокументовДляВыгрузки.Документ,
        |   СтатусыДокументовДляВыгрузки.Статус
        |ИЗ
        |   РегистрСведений.СтатусыДокументовДляВыгрузки КАК СтатусыДокументовДляВыгрузки

        |ГДЕ
        |   СтатусыДокументовДляВыгрузки.Статус = &Статус"
;

    Запрос.УстановитьПараметр("Статус", Перечисления.СтатусДокументов.НеВыгружено);
    Структура = Запрос.Выполнить().Выгрузить();

    ОтборДляПеремещения(ВременнаяТаблицаПравил, Структура);

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

    Если
Структура.Количество() > 0 ТОГДА
       
Обработка.ВыполнитьВыгрузку
();

А после выгрузки соответственно меняем статус документов.

        Для Каждого Док Из Структура Цикл
           
УстановитьСтатусДокумента (Док.документ, Перечисления.СтатусДокументов.Выгружено);
        КонецЦикла;
    КонецЕсли;

Теперь создаем регламентные задания и подключаем их к нашим процедурам загрузки и выгрузки

Настраиваем расписание и можно на этом пока остановиться…

Поле для вариаций довольно широкое поэтому пробуйте… Удачи.

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

50722 45650 руб.

04.08.2015    160252    368    268    

349

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    135521    730    291    

391

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20593    137    38    

93

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

38500 34650 руб.

15.04.2019    68810    179    139    

111

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    46742    199    64    

162

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231861    124    327    

296

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 руб.

10.07.2018    67737    41    123    

46

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

48278 43450 руб.

03.12.2020    34402    81    58    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. wiranata 286 08.07.11 17:26 Сейчас в теме
Данный материал является продолжением начатой мною темы относительно использования обработки «Универсальный обмен данными в формате XML» при организации регламентного обмена между различными базами (http://infostart.ru/public/86109/ ).


Перейти к публикации

+
1. ivanov660 4344 17.08.11 22:48 Сейчас в теме
Зачем изобретать колесо?
В 1С УПП, Бух и других уже реализован удобный инструмент регистрации изменений на основе правил сформированных в конфигурации "конвертация данных". Каждый раз менять конфу, когда что-то изменится и т.д. неэффективно.
+
2. wiranata 286 17.09.11 13:45 Сейчас в теме
(1)Это при условии что вы используете объект "План обмена" тогда вопрос регистрации не стоит (только регистрация объектов настраивается там не в "конвертации данных" и не в правилах обмена а в той же "конфе").

Я колесо не изобретал, читайте внимательно.
Данная публикация развитие предыдущей там иная концепция.
+
3. пользователь 13.01.12 15:42
Сообщение было скрыто модератором.
...
4. пользователь 18.06.12 16:20
Сообщение было скрыто модератором.
...
5. RailMen 824 07.11.14 01:42 Сейчас в теме
У меня на реальном предприятии реализована регистрация измененных объектов тоже через РС, а не план обмена ввиду некоторых нюансов. В РС все проще - не нужно реквизита "Статус" типа перечисления. При записи элементов (справочников или документов) в базу происходит проверка на совпадение записываемого объекта с хранимой в базе ссылкой. Если объект был изменен или создан новый, то делается запись в РС. Выгрузка объектов в базы приемники (их много ;) ) происходит в рег задании: каждые 5 минут делается запрос к РС, в котором хранятся ссылки на измененные объекты. Далее эти ссылки помещаем в отбор УниверсальногоОбменаДанными с прикрученными правилами обмена (они переписываются довольно часто ввиду развития всех конфигураций). Если выгрузка прошла успешно - то запись просто удаляем из РС. Если не успешно, то оставляем в РС до следующей попытки выгрузки данных. В РС есть реквизит - "Комментарии выгрузки", в который записываем описание ошибки при выгрузки. Вуаля!
st4rk; roofless; +2
6. wiranata 286 08.11.14 13:38 Сейчас в теме
Ну это писалось давно. Решений тут может быть масса в зависимости от специфики. И все это можно совершенствовать без предельно (зависит от полета фантазии и конкретной специфики).
+
Оставьте свое сообщение