SQL Перенос данных V7.7

Позволяет быстро переносить данные между одинаковыми конфигурациями. В отличие от подобной (http://infostart.ru/public/14503/) позволяет переносить подчиненность документов и их ДВИЖЕНИЯ.
То есть перепроводить документы не нужно!
Также введена возможность для "нормализации" (проще говоря, сброса) реквизита журнала "IDDOC".

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

В отличие от подобной (//infostart.ru/public/14503/) позволяет переносить подчиненность документов и их ДВИЖЕНИЯ.
То есть перепроводить документы не нужно!

Переносить ОБЯЗАТЕЛЬНО в чистую SQL — базу. Это обязательно для Бухгалтерских и комплексных конфигураций!

В файле «ReadMe.txt» описан весь процесс.  

Также введена возможность для «нормализации» (проще говоря, сброса) реквизита журнала «IDDOC».

Мало кому потребуется, но все же есть.

При установке «Отладка» тексты выполняемых запросов пишутся в каталог «debug» в папке «Diff_v1.8.7», в эту же папку пишется лог выполнения «logfile.txt».

Всем удачной работы!

13 Comments

  1. logarifm

    Даже не знаю, что и сказать. У СКЛ есть крутая штука — SSIS называется, советую попробовать…

    Reply
  2. shoorlo

    (1) logarifm, Здравствуйте.

    Вы правы, у СКЛ есть не только это… Но

    1. Это нужно изучать и писать «скрипты», что отнимет какое-то время, если ранее с этим не сталкивались. Вы предлагаете, практически, «стрелять из пушки по воробьям»?

    2. Программулька делает все за несколько кликов мышкой. Это почти мастер переноса/обрезания данных. В зависимости от выбранных параметров.

    Надеюсь ответил на Ваше замечание.

    P.S.

    Эта програмка давненько выкладывалась в варианте без переноса движений с исходниками, но была удалена мной из — за «критики».

    Reply
  3. logarifm

    (2) А что мешает использовать конвертацию даных?

    Reply
  4. vcv

    (1) logarifm,

    У СКЛ есть крутая штука — SSIS называется, советую попробовать…

    Эта обработка позволяет «позволяет переносить подчиненность документов и их ДВИЖЕНИЯ». То есть смотрит на структуру данных в метаданных 1С, их зависимости и переносит. SSIS вряд ли вам удастся заставить смотреть в метаданные 1С. И поддерживать скрипты SSIS при изменении метаданных — задача ошибкоёмкая. Разве что сделать обработку 1С, которая готовит данные для SSIS…

    (3) logarifm,

    А что мешает использовать конвертацию даных?

    От объёмов данных зависит. Конвертация 7.7 тормозная.

    И не имеет возможности загрузки не типовой конфигурации в виде правил обмена.

    Reply
  5. shoorlo

    (3) logarifm, Здравствуйте.

    Я настаиваю на определении «быстро».

    Reply
  6. logarifm

    Не убидили…

    Reply
  7. vcv

    (6) logarifm, В чем вас не убедили?

    SSIS хорош и быстр. Но требует усилий на поддержку при обновлениях конфигурации 1С. И, по моему, далеко не так просто передать им из базы в базу документ с движениями. Как вы будете с помощью SSIS модифицировать различные таблицы итогов? В общем случае алгоритм миграции итогов такой:

    — начинаем транзакцию;

    — находим в базе назначения движения и итоги в добром десятке таблиц по движениям и измерениям, которые затрагивает передаваемый документ;

    — считаем разницу старых и новых движений;

    — модифицирует записи итогов на эту разницу.

    Это вам не набор записей перегнать один-в-один.

    Или вас не убедили в тормознутости Конфигурации данных 7.7? Уж поверьте, выгрузка/загрузка документа с несколькими тысячами движений по регистрам через КД может занимать минуты.

    Reply
  8. serpent

    Вопросик… «Также введена возможность для «нормализации»», Нормализацию обязательно делать после переноса или нет???

    Reply
  9. shoorlo
    Reply
  10. shoorlo

    (8) serpent, Здравствуйте.

    Нормализация делается в момент переноса документов если установлена псиса «Обновить IDDOC»

    В общем случае НЕНУЖНА !

    А нужна тогда когда у Вас в «_1SJOURN» максимальное значение поля «IDDOC» приближается к «ZZZZZZ «

    Reply
  11. shoorlo

    (7) vcv, Здравствуйте!

    Спасибо за косвенную поддержку.

    Вы пишите: » Как вы будете с помощью SSIS модифицировать различные таблицы итогов? »

    Дело в том, что как раз «програмка» тупо копирует таблицы или их части или части данных.

    Итоги она НЕ пересчитывает! Это возложено на 1С . После применения «програмки» обязательно делается выгрузка-загрузка данных.

    При этом, если точка актуальности итогов установлена на конец периода перенесенных документов, то пересчитываются итоги.

    Если точка актуальности до периода переноса документов — устанавливаем ТА на конец периода. И 1С пересчитает итоги.

    Так что товарищ «logarifm» прав что можно пользоваться и его рекомендациями.

    НО трудо затраты на это будут выше (по-моему).

    Немного посложнее алгоритм при «сбросе» IDDOC. Тогда приходится идти по метаданным, искать строковые реквизиты длиной 9, 13, 23

    Проверять их на вхождение IDDOC и затем обновлять.

    С уважением.

    Reply
  12. vcv

    (11)

    Дело в том, что как раз «програмка» тупо копирует таблицы или их части или части данных.

    А… Ну тогда хотя бы делать пересчет итогов в нужном периоде. Встречаются такие обработки.

    У меня лежит одна. Вот какого вида запросы формирует:

    SET XACT_ABORT ON
    BEGIN TRANSACTION
    exec _1sp__1ssystem_TLockX
    exec _1sp__1sjourn_TLockX
    exec _1sp_RG639_TLockX
    delete
    fr om rg639
    where period>={d ‘2016-04-01’}
    
    ins ert rg639
    sel ect
    {d ‘2016-04-01’},
    sp4066, sp641,
    sum(sp644),
    sum(sp642),
    sum(sp643)
    fr om (
    sele ct
    sp4066, sp641,
    sp644, sp642, sp643
    from rg639 rg
    wh ere period={d ‘2016-03-01’}
    uni on all
    sel ect
    sp4066, sp641,
    ra.sp644*(1-ra.debkred*2) As sp644,
    ra.sp642*(1-ra.debkred*2) As sp642,
    ra.sp643*(1-ra.debkred*2) As sp643
    fr om ra639 ra
    wh ere date_time_iddoc>’20160401     0     0   ‘ and date_time_iddoc<=’20160430     0     0   ‘
    ) as tmp
    group by sp4066, sp641
    having
    sum(sp644) <> 0 or
    sum(sp642) <> 0 or
    sum(sp643) <> 0
    
    COMMIT TRANSACTION
    upd ate _1susers se t netchgcn=netchgcn+1

    Показать

    Reply
  13. _Z1

    (12) Для регистров нет проблем написать пересчет итогов

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

    Reply

Leave a Comment

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