Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Удаление записей регистрации изменений при обмене по расписанию.  (Прочитано 15810 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AndrewM
Новенький

ru
Offline Offline

« : 05-04-2012 10:32 » 

Реализую оффлайн-обмен из "Управления строительной организацией" (это УПП с добавленным строительным функционалом) в "Бухгалтерию предприятия КОРП 2.0" через ftp по расписанию с помощью "Сервис/Прочие обмены данными/Настройка выполнения обмена". Сейчас у меня из источника выгружается файл, а в базе-приёмнике через ту же стандартную обработку он загружается.
Что надо:
Мне надо удалять записи регистрации изменений при выполнении обработки автоматического обмена по расписанию, чтобы одни и те же объекты не выгружались лишний раз. Сейчас эта обработка не очищает записи регистрации.

Что я сделал:
Нашёл обработку "Обмен данными XML", которая выполняет этот обмен по расписанию и в функцию "ВыполнитьВыгрузку()" вставил одну строку при условии успешной выгрузки:
Код:
Если УспешнаяВыгрузка Тогда
   ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбмена);
КонецЕсли;
Однако это плохой вариант, т.к. в таком случае записи регистрации удаляются сразу после выгрузки. А это не правильно, они должны выгружаться только после получения подтверждения о получении от принимающей стороны. То есть принимающая база после успешной загрузки должна выгрузить файл с подтверждением, который потом перед следующей выгрузкой должен быть прочитан базой-источником.

Вопросы:
Можно ли реализовать удаление записей регистрации изменений при получении подтверждения от принимающей стороны стандартными средствами конфигурации, а точнее обработкой, которая вызывается через "Сервис/Прочие обмены данными/Настройка выполнения обмена"?
Если да, подскажите, как это сделать.
Не хочется изобретать велосипед и дописывать код в этой стандартной обработке, если есть возможность реализовать это в ней стандартными средствами.
Буду благодарен за любую помощь. Улыбаюсь
Записан
AndrewM
Новенький

ru
Offline Offline

« Ответ #1 : 06-04-2012 04:05 » 

Вопрос закрыт.
Как сделал:
В конфигурации базы-источника создал план обмена с авторегистрацией.
В конфигурации базы-приёмника создал точно такой же план, но без авторегистрации.
Далее и в базе-источнике, и в базе-приёмнике настроил и загрузку, и выгрузку по одному и тому же созданному мной правилу с выполнением по расписанию (через "Сервис/Прочие обмены данными/Настройка выполнения обмена").

Теперь:
База-источник выгружает изменения в xml-файл, т.к. в ней настроена авторегистрация. База-приёмник загружает изменения из этого файла, но записей регистрации изменений не ведёт, поэтому после загрузки сразу же выгружает файл-пустышку, в котором хранится номер отправленного сообщения и номер последнего принятого.
В следующем цикле загрузок база-источник грузит эту пустышку и затирает регистрацию изменений по номеру сообщения, хранящемуся в файле. Соответственно в следующей выгрузке база-источник вышлет только актуальные изменения.

Единственные изменения в конфигурации, которые потребовались, - это добавление нового плана обмена в базу-источник (с авторегистрацией) и в базу-приёмник (без авторегистрации).
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 26-04-2012 07:37 » new

ИМХО решение абсолютно верное: идеально согласуется с методологией обмена.
AndrewM, спасибо за подробное описание - думаю многим пригодится...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines