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

11.07.11

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Печатный вариант статьи
.zip 359,94Kb
137
137 Скачать (1 SM) Купить за 1 850 руб.

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

Итак…

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

35000 руб.

23.07.2020    56075    257    73    

212

SALE! 10%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    145648    846    299    

438

SALE! 10%

Перенос данных 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 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    74194    198    155    

136

SALE! 10%

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

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

55778 50200 руб.

04.08.2015    170606    357    282    

390

SALE! 10%

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

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

53111 47800 руб.

03.12.2020    38300    108    70    

102

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

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

35000 руб.

15.12.2021    26078    186    56    

142

Перенос данных 1C Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12000 руб.

25.09.2016    82804    343    254    

292

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16260 руб.

18.02.2016    189100    614    534    

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


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

1. ivanov660 4715 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 829 07.11.14 01:42 Сейчас в теме
У меня на реальном предприятии реализована регистрация измененных объектов тоже через РС, а не план обмена ввиду некоторых нюансов. В РС все проще - не нужно реквизита "Статус" типа перечисления. При записи элементов (справочников или документов) в базу происходит проверка на совпадение записываемого объекта с хранимой в базе ссылкой. Если объект был изменен или создан новый, то делается запись в РС. Выгрузка объектов в базы приемники (их много ;) ) происходит в рег задании: каждые 5 минут делается запрос к РС, в котором хранятся ссылки на измененные объекты. Далее эти ссылки помещаем в отбор УниверсальногоОбменаДанными с прикрученными правилами обмена (они переписываются довольно часто ввиду развития всех конфигураций). Если выгрузка прошла успешно - то запись просто удаляем из РС. Если не успешно, то оставляем в РС до следующей попытки выгрузки данных. В РС есть реквизит - "Комментарии выгрузки", в который записываем описание ошибки при выгрузки. Вуаля!
st4rk; roofless; +2 Ответить
6. wiranata 286 08.11.14 13:38 Сейчас в теме
Ну это писалось давно. Решений тут может быть масса в зависимости от специфики. И все это можно совершенствовать без предельно (зависит от полета фантазии и конкретной специфики).
Оставьте свое сообщение