Сравнение остатков и оборотов регистров накопления и бухгалтерии двух баз через COM


Универсальная обработка для сравнения идентичности регистров без идентичности на уровне записей (например после свертки)

Не скажу, что очень простая обработка, и не скажу, что оригинальная (пока видел только одну такую, но там не полное совпадение функционала, да и кривовата она), но когда встал вопрос о свертке очень большой базы, то понял, что сравнивать регистры запарюсь. Поэтому написал сию обработку и выложил здесь — авось кому пригодится. Обработка не супер-мега-быстрая, но думаю написать что-то соответствующее по функционалу через SQL — ой как непросто.

Объекты сравниваются через UUID, порядок или полное равенство числа или строки.

 

Благодарности можно присылать на WM R274237232670

 

Подобная обработка:

//infostart.ru/projects/3974/

32 Comments

  1. GordonFreeman

    «При написании встретился с очень неприятным багом. При получении числовых данных через COM происходит искажение.» Эта фраза сразу много говорит о вас как о профессионале, гыгы

    Reply
  2. anig99

    и что это говорит, мне интересно? О Вас вообще ничего не говорит, поэтому Вас как бы и нет…совсем

    Reply
  3. GordonFreeman

    Умник, это не баг, а следствие научного формата числа при передаче через COM. И, да, правильно, это решается с помощью округления.

    Reply
  4. GordonFreeman

    И кстати, на ИТСе уже года 3 как есть статья на эту тему.

    Reply
  5. anig99

    (3) правильно описаный баг становится фичей….ну да ладно… на каком ИТС? для пользователей или партнеров?

    Reply
  6. artbear

    (0) Цитата: «Обработка не супер-мега-быстрая, но думаю написать что-то соответствующее по функционалу через SQL — ой как непросто.»

    Как раз в моей обработке http://infostart.ru/projects/3974/ подобная проблема решена 🙂 и работает она очень шустро 🙂

    Reply
  7. artbear

    (6+) Или ты подразумевал, что сверка данных напрямую в 2-х базах Скуля, без 1С ?

    Reply
  8. anig99

    (7) нет-нет… свертка это причина для проверки… У меня тупо через две COM и две таблицы значений. Будут плюсы или отзывы — найду время и на SQL проверку.

    Reply
  9. bolonov

    Спасибо большое

    Reply
  10. anig99

    (9) а плюс к спасибо будет вообще классно (:

    Reply
  11. Ish_2

    (6),(10) Я извиняюсь . Ничего не понял.

    Возьмем цитату : «Обработка не супер-мега-быстрая, но думаю написать что-то соответствующее по функционалу через SQL — ой как непросто.»

    Это что означает ? Ты собрался сравнивать две MSSQL-базы минуя 1с ? Используя только SQL ?

    «Как раз в моей обработке http://infostart.ru/projects/3974/ подобная проблема решена и работает она очень шустро «.

    Это ты о чем ? И что «шустро» ?

    В твоей обработке сравниваются регистры одной базы (файловой или SQL) . Так ?

    Тогда , что ты в ней создал средствами только TSQL , минуя 1с ?

    Reply
  12. Alraune

    А как посмотреть, какими именно документами обусловлены несовпадения?

    Reply
  13. anig99

    Итерационно выявить период возникновения несовпадения, посмотреть реквизиты и уже сравнить ручками…Хотя можно и дописать, чтобы ещё регистратор сравнивал в оборотах…Очень надо?

    Reply
  14. Alraune

    (13) Да нет, можно и так справиться, просто подумала, что где-то не поняла.

    Reply
  15. husky

    С версией 8.2 УПП дружит?

    Reply
  16. anig99

    (15) да. Только нужно заменить V81.COMConnector на V82.COMConnector

    Reply
  17. samamoiloff

    (16) Менять не надо. На форме надо поле восстановить для реквизита ВерсияПлатформыИнформационнойБазыДляПодключения, рекизиты подключения стандартные, только Вы зачем-то убрали. Сейчас актуально, 8.2 раскручивается…

    Reply
  18. Zen13

    АВТОРУ РЕСПЕКТ!

    Reply
  19. vechiy

    Подключаюсь из 2.0 в 1.6, получаю ошибку:

    При попытке подключения к информационной базе произошла ошибка:

    Ошибка при вызове конструктора (COMОбъект): Invalid class string: Invalid class string

    как лечить?

    Reply
  20. anig99

    (20) это зависит от платформы, а не конфигурации. Какая платформа стоит? Какие до этого стояли? Не стоит ли 8.1 и 8.2 одновременно?

    Reply
  21. Svetlana_K

    Отличная обработка. Спасибо пригодится. Пробую. Очень кстати.

    Reply
  22. makas

    судя по описанию эта обработка полезная вещица, возьму в свой улей:)

    Reply
  23. gull22

    Нужда заставляет, буду тестить на 8.2. Автору спасибо за обработку, из предложенных больше всех приглянулась!

    Reply
  24. anig99

    (25) у меня на 8.2 давно стоит — вроде работает без проблем.

    Reply
  25. gull22

    Проверил на КА. Работает. Вот бы еще фильтр по организациям добавить.

    Reply
  26. Gingema

    Ошибка

    При попытке подключения к информационной базе произошла ошибка:

    Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса

    Как решать?

    Reply
  27. anig99

    (28) Gingema, платформа какая? 8.1, 8.2, 8.3?

    Reply
  28. Gingema

    (29) 8.2

    предложил конвертировать, сделала

    Reply
  29. anig99

    (30) Gingema, угу. теперь нужно в коде обработки найти 8.1 и заменить на 8.2

    Reply
  30. buy_sale

    отличная штука. Работает и на БП 3.0 если внизу в модуле 81 на 83 поменять, но не отрабатывает изменение названий измерений. В 47 строке формы ошибка

    Табл2.Свернуть(СписокИзмерений,СписокРесурсов);

    Reply
  31. vis_tmp

    Спасибо, полезная обработка!

    Reply
  32. a-skripko

    Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *