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

11.07.11

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

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

Файлы

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

Наименование Скачано Купить файл
Печатный вариант статьи
.zip 359,94Kb
137 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

Итак…

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

58000 руб.

04.08.2015    187487    445    302    

452

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

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 руб.

15.12.2021    34177    259    64    

194

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    160725    966    318    

482

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    188220    359    289    

418

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

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

50600 руб.

21.05.2019    58057    81    131    

73

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

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

58000 руб.

15.04.2019    84020    225    175    

161

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

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62789    82    132    

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


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

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

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