1С бухгалтерия

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

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

Что-то я отвлекся от темы. Проблема у меня возникла, когда я стал принимать сообщение о удачной загрузке из периферийной базы в основную. Нужно получить номер сообщения и очистить регистрации с номерами сообщений меньше или равных полученному. Казалось бы все просто:

ПланыОбмена.УдалитьРегистрациюИзменений(Узел, НомерСообщения);

Но у меня никак не очищались записи о регистрации изменений и старые изменения вновь улетали в периферийную базу. Проверял и Узел и НомерСообщения - все правильно, Узел тот что надо и Номер именно тот, который присвоился при выгрузке, когда выполнялась команда:

ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);

Этот самый номер стоял в реквизите НомерОтправленногоСообщения того Узла с которым я работал.

Ошибку нашел только когда запросом стал смотреть на таблицы типа "Справочник.Номенклатура.Изменения". Обратил внимание, что при изменении элементов справочника, данные в эту таблицу записываются, но НомерСообщения у записей остается пустым. Пустым он остается и после приведенных выше строк с началом записи сообщения(не смотря на то, что в Узел номер сообщения проставляется). Появляются номера сообщений только после команды:

ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);

И вот когда у записей таблицы Справочник.Номенклатура.Изменения будут стоять номера сообщений, только тогда будет работать и очистка регистрации изменений по номеру сообщения.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".