gifts2017

Загрузка документов из УТ 10 в БП 3

Опубликовал Виктор Ким (victorkim64) в раздел Обработки - Обработка документов

Внешняя обработка для загрузки документов из УТ 10 в БП 3. Создана на управляемых формах, выполняется на стороне приемника в БП 3. Позволяет загружать документы интерактивно и документы, справочники, записи регистров в фоновом режиме.

Сокращения

УТ – конфигурация «Управление торговлей» релиз 10

БП – конфигурация «Бухгалтерия предприятия» релиз 3.0

КД – конвертация данных

УИД – уникальный идентификатор объекта

Мотивация

После обновления БП на 3.0.44 релиз наш обмен между не обновляемой УТ и БП, построенный на типовом плане обмена, стал непригодным. Время на восстановление обмена стало не определяемым, поскольку типовой обмен построен так, что код обмена должен совпадать в двух базах, а изменения в типовом обмене были значительны.

Задумка и основа

Хотел сделать как в КД интерактивный ввод алгоритмов и сопоставление реквизитов. Все это можно было и сделать, но для простоты реализации, доработок и отладки решил отказаться. 

Так как предыдущий обмен осуществлялся и был настроен с помощью типового плана обмена КД, то пришлось часть алгоритма и часть настроек заимствовать из типового плана обмена.

Обработка рабочая, используется для загрузки документов в нескольких базах. Обработка ориентирована для ИТ специалистов. Поддержку для пользователей не планирую, т.к. у всех свои нюансы. Код открыт, скачивайте, настраивайте под свои нужды.

Это мой подарочек сообществу «Инфостарт» ИТ специалистам. За символическую плату).

Что удалось

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

В типовом обмене, чтобы поправить алгоритм обмена, надо было:

  • Выгрузить план обмена из БП
  • Загрузить план обмен в базу конвертации данных
  • Выгрузить новую структуру данных УТ
  • Выгрузить новую структуру данных БП
  • Загрузить новую структуру УТ в план обмена
  • Загрузить новую структуру БП в план обмена
  • Найти и поправить код
  • Выгрузить план обмена 
  • Загрузить новый план обмена в УТ
  • Загрузить новый план обмена в БП

Теперь:

  • Выгрузить обработку, если нет копии
  • Открыть и отредактировать в конфигураторе
  • Загрузить обратно в базу БП

Загрузка отдельных объектов упростилась в разы. 

Часть настроек осуществляется интерактивно.

Удалось значительно упростить код загрузки объектов, обобщить логику получения реквизитов и сопоставления объектов:

  • Для получения значения реквизита любого типа использовать вызов одной обобщенной функции. ОбъектДокумента.Реквизит = ПолучитьЗначениеРеквизита (СОМСсылкаНаДокумент.Реквизит).  Реквизит может иметь один из трех типов объектов: перечисление, справочник, документ. Типы объектов могут быть любых видов определенных в коде программы.
  • Для определения соответствия значений перечислений использовать одну функция.
  • Для определения соответствия типов объектов использовать одну функция.
  • Для загрузки нового объекта определить всего лишь 2- 5 функции, в зависимости от типа объекта. Для поиска, фильтра, загрузки и настройки объектов после загрузки:
  • Добавлять<Тип объекта><ВидОбъекта> - фильтр для добавления в таблицу загрузки в интерактивном режиме.
  • Загружать<Тип объекта><ВидОбъекта> - фильтр для загрузки как в интерактивном так и фоновом режиме
  • Найти<Тип объекта><ВидОбъекта> - поиск объекта при загрузки
  • Загрузить<Тип объекта><ВидОбъекта> - сама загрузка объекта
  • ПослеЗагрузки<Тип объекта><ВидОбъекта> - действия после загрузки объекта

Пример для документа «Авансовый отчет»:

  • ДобавлятьДокументАвансовыйОтчет
  • ЗагружатьДокументАвансовыйОтчет
  • НайтиДокументАвансовыйОтчет
  • ЗагрузитьДокументАвансовыйОтчет
  • ПослеЗагрузкиДокументАвансовыйОтчет

Пример для справочника «Банки»:

  • ДобавлятьСправочникБанки
  • ЗагружатьСправочникБанки
  • НайтиСправочникБанки
  • ЗагрузитьСправочникБанки
  • ПослеЗагрузкиСправочникБанки

Пример для регистра сведений «Ответственные лица организаций»:

  • ЗагружатьОтветственныеЛицаОрганизаций
  • ЗагрузитьОтветственныеЛицаОрганизаций

В отличие от типового обмена следующие параметры настройки не настраиваются и заданы по умолчанию:

  • себестоимость не переносится;
  • сделки не загружаются;
  • аналитика по складам ведется.

Алгоритм загрузки. 

Поиск объектов

Соответствие объектов в БП объектам в УТ осуществляется по УИД, реквизитам и по регистру сведений «Соответствия объектов информационных баз».

Если ранее документы загружались типовым обменом, то для поиска объектов (элементов справочников и документов), дополнительно к поиску по реквизитам и по УИД объекта, можно добавить поиск по регистру сведений «Соответствия объектов информационных баз». Для этого необходимо ввести параметры узла обмена (тип обмена (имя обмена в конфигураторе) и код узла обмена) и проставить соответствующую галочку.

Создание новых объектов

Новые объекты в БП создаются с УИД объекта в УТ, для последующего поиска объектов по УИД. В регистр сведений «Соответствия объектов информационных баз» соответствие не проставляются (восстановление типового обмена не предусмотрено).

Статус объектов

Соответствие статусов объектов (пометка удаления проведение) установляется с помощью параметров.

Два вида режима загрузки

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

  1. Загрузка в интерактивном режиме.

В интерактивном режиме загружаться только выбранные документы. По мимо отбора по организации, контрагенту, периода, вида документов и отношения к бух. учету, в интерактивном режиме доступны два дополнительных критерия отбора:

  1. «Заполнить зарегистрированными изменениями» - добавляются документы, которые зарегистрированы в плане обмена как измененные. Требует ввода доп. параметров: тип обмена (имя обмена в конфигураторе) и код узла обмена.
  2. «Заполнить различными» - добавляются документы, которых нет в приемнике или если есть различие по сумме документа.

Реквизиты документов в интерактивном режиме загружаются если отсутствуют и не обновляются.

Для открытия обработки, у пользователя должна быть роль «Администратор системы».

Ведется лог последней загрузки, который доступен для просмотра на закладке «Лог загрузки».

Заложен алгоритм для загрузки справочников, но пока только в тестовом варианте. 

  1. Загрузка в фоновом режиме регламентным заданием.

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

Загрузка регламентным заданием основана на планах обмена, для задействования механизма регистрации изменения объектов. Для определения узла обмена надо указать тип обмена (имя обмена в конфигураторе) и код узла обмена. Для периода выборки загружаемых документов надо ввести «Количество последних дней загрузки». Количество дней включает текущею дату и последний день загрузки (Пример: тек. дата 9 надо загрузить с 2, тогда кол-во дней равно 8). Для платежных банкоских документов прибавляется еще один день (прописано в коде).

Настройки загрузки в фоновом режиме сохраняются в интерактивном режиме. Для удобства все параметры настройки загрузки размещены в одной закладке.

Ведется лог последней загрузки, который записывается в хранилище и доступен для просмотра на закладке «Лог загрузки» после восстановления параметров настройки загрузки фонового задания.

Версия 1.1

Для тех, кто загрузил обработку ранее, пишите в личку email, вышлю новую версию.   

Список доработок:

  • Запрет на выполнение рег. задания при сохранении обработки в справочник внешних обработок.
  • Отмена регистрации объектов, для которых не предусмотрена загрузка
  • Отлажена загрузка справочников "Номенклатура", "Контрагенты", добавлены средства для отбора элементов.
  • Добавлены кнопка для инверсии пометок и кнопка пометки различающихся объектов.
  • Для загрузки реквизитов документов, имеющих тип "Документ" введено ограничение по дате загружаемого документа (для предотвращения разрушения бух отчетности, при открытом периоде на изменение). Если дата документа значения реквизита больше или ровно даты загружаемого документа, то документ создается.
  • Для справочников, для которых предусмотрен ввод элементов в БП, отменен поиск по реквизитам и установки кода по источнику.
  • Для справочников определил обработку процедуры «ПослеЗагрузки»
  • Исправлены ошибки:
    • Не загружались записи регистра "Отвественные лица организаций" 
    • Не загрузался реквизит "Банк" в справочнике "Банковские счета"
    • Не загрузался реквизит "Вид контрагента" в справочнике "Контрагенты"
    • Не верно загружался справочник «Контрагенты» - зацикливание создания, еще не созданного элемента (добавил обработку процедуры «ПослеЗагрузки»).  

       Версия 1.2

Список доработок:

  • Отправка файла лога загрузки на электронную почту по нескольким адресам.
  • Исправлены не значительные ошибки. 

Для контроля скачиваний, последнею версию поместил в архив с паролём. После скачивания пишите свой e-mail  в личку, вышлю пароль на архив с новой версией.  

Скачать файлы

Наименование Файл Версия Размер
Внешняя обработка для загрузки документов из УТ 10 в БП 3 версии 1.0 и 1.2 1
.zip 199,16Kb
30.11.16
1
.zip 1.2 199,16Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Вадим Никонов (V.Nikonov) 16.11.16 12:02
Несколько уточнений: Как решена проблема перегрузки Закрытых периодов? Поддерживаются Закрытие периода в Приемнике?
2. Виктор Ким (victorkim64) 17.11.16 05:01
(1) V.Nikonov, Конечно поддерживается. Сперва грузите, потом закрываете.

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

Период выборки документов:

Для фонового режима период выборки загружаемых документов определяется реквизитом «Количество последних дней загрузки». Количество дней включает текущею дату и последний день загрузки (Пример: тек. дата 9 надо загрузить с 2, тогда кол-во дней равно 8). У нас стоит 2, при выполнении регламентного задания ночью, у нас грузиться последний день. Для платежных документов два последних дня (в коде добавляется еще один день).

Для интерактивного режима период выборки осуществляется двумя реквизитами начало периода и конец периода.

Для загрузки реквизитов документов, имеющих тип "Документ" (сделки, предоплаты) введено ограничение по дате загружаемого документа (для предотвращения разрушения бух отчетности, при открытом периоде на изменение). Если дата документа значения реквизита больше или ровно даты загружаемого документа, то документ реквизита создается, иначе только ссылка.

Регулируйте этими параметрами, чтобы не разрушить закрытые периоды. При загрузки документов в закрытый период, весь типовой функционал в БП по закрытию месяцев становится актуальным.
3. Виктор Ким (victorkim64) 21.11.16 14:51
Не понятно всего 393 просмотров, за месяц 33 а публикация существует меньше месяца... уже сомнения может и скачиваний больше, о которых я не знаю
Прикрепленные файлы:
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа