Datecs FP3530T + 1С:Предприятие
Каталог файлов
Меню

Категории раздела
DatecsFPVK (демо) [5]
Демо версия внешней компоненты для программы "1С:Предпрятие"
Другие программы для DatecsFP3530T (бесплатно) [4]
Программы для сервисного обслуживания Datecs FP3530T. Эти программы вы можете скачать также на www.service.systema.com.ua
Инструмент обмена данными (OLE) (бесплатно) [1]
С помощью этой универсальной обработки вы сможете быстро перенести данные из одной базы в другую, а затем проверит правильность переноса сравнив их.

Форма входа

Друзья сайта
  • Украинский клуб 1С

  • Инфостарт - все для 1С.

  • Клуб профессионалов 1С

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Приветствую Вас, Гость · RSS 29.04.2024, 20:22

    Главная » Файлы » Инструмент обмена данными (OLE) (бесплатно)

    Инструмент обмена данными 1.31.1.6 (OLE)
    [ Скачать с сервера (64.0 Kb) ] 23.05.2009, 00:31

    За основу к написанию этой обработки взята обработка "Универсальный OLE-перенос объектов между БД с идентичными конфигурациями" (wolfsoft) www.1partner.nnov.ru и www.infostart.ru/projects/1120/.

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

    Некоторые изменения оригинальной обработки:

    1. Добавлена возможность сравнить объекты базы источника и базы приемника:

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

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

      3. При сравнении документов, проверяется также существование в базе приемнике документов, которых нет на заданную дату в базе источнике.

    2. Выгрузка объектов

      1. Выгружаются не все объекты подряд, а только те которых либо нет в базе приемнике, либо реквизиты не соответствуют реквизитам этого же объекта в базе источнике. Все идентичные объекты остаются нетронутыми.

      2. После выгрузки Вашему вниманию предстает отчет обо всех изменениях, сделанных в базе приемнике (выгруженных новых объектах, измененных уже существующих, объектах сделанных не проведенными, удаленными, перепроведенными и т.д.) с указанием что именно изменилось (какой реквизит поменялся, как поменялось состояние документа (проведен, не проведен).

    3. Настройки:

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

      2. Есть возможность проводить документы после выгрузки только в определенном периоде. Полезно, например, при выгрузке большого числа новых документов, которые потом можно будет провести со сдвигом ТА.

    4. Изменен интерфейс

      1. Возможность выгрузки объектов после заполнения таблицы объектов (кнопка "+++ с выгрузкой"). А также возможность выгрузки объектов без заполнения таблицы.

      2. Возможность заполнения таблицы элементами справочника с фильтром по родителю, по владельцу, по группе владельцев.

    5. Другие изменения.



    Методология обмена данными



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

    Создавались/изменялись новые ТМЦ (а их всего около 10 000), новые цены (на каждый ТМЦ около 20 цен и значение цена — периодический элемент, который очень часто меняется) и многие другие справочники. Также оказалось, что достаточно много документов изменялись задним числом, переносились на другие даты, кроме того было создано много новых документов (1000 документов в день, примерно). И все это теперь надо перенести в свернутую базу, как можно более качественно и быстро.

    1. Настроим обработку:

      1. Прописать параметры подключение к приемнику (путь, пользователь, пароль).

      2. Указать имя файла для сохранения схемы переноса.

      3. На закладке «Настройка» - нажать на «Загрузить структуру».

      4. Просмотреть в таблице ниже правила обмена. Проверить/изменить ключи для справочников. Ключом справочника может быть любой реквизит с установленным флажком «Сортировка», а также Код или Наименование.

      5. Нажать на «сохранить схему переноса» и установить флажки на «Загрузить схему при открытии» и «Подключить приемник при открытии». Так мы избавимся от лишних действий при открытии/закрытии обработки.

      6. Если документов придется переносить много, то рекомендую установить флажки «Проводить документы», «Удалять непроведенные» и определить период новых документов (где их больше всего).
        При этом, те документы которые попадают в период новых не будут проводится после выгрузки. Флажок «Удалять непроведенные» позволяет помечать на удаление документы, которые попадают в период новых, но не проведены в базе источнике. Таким образом после выгрузки можно будет быстро провести все непомеченые документы за период новых документов со сдвигом ТА.

      7. На панели инструментов обработки сохраняем настройку с установленным флажком «Использовать при открытии».

      8. На закладке «Выгрузка» подключить приемник.

    2. Выгрузка документов за период свертки минус несколько дней.

      1. На закладке «Выгрузка» установить период переноса документов и период переноса периодических реквизитов справочников. Не обязательно указывать обе границы периода.

      2. Вид документа — выбрать - <<все>> и нажать «+++ с выгрузкой». Можно нажать просто «+++», а потом «Выгрузить». Тогда есть возможность указать какие именно мы хотим выгружать документы, а какие нет. Учтите, что после выгрузки таблица с документами не очищается. Это надо делать вручную (кнопка ХХХ).

      3. Выгрузка объекта:

        1. Документы в базе приемнике ищутся по номеру в том периоде нумератора, в котором находится документ в базе источника. Справочники - по ключу заданному в схеме переноса.

        2. Если документ не найден, то создается новый, если найден, то обработка начинает перебор всех реквизитов на предмет различий в них.

        3. Если дата документа в базе приемнике отличается от даты в базе источнике, то документ в базе приемнике делается не проведенным и изменяется дата и время этого документа. Далее если документ попадает в период действия флажка «Проводить документы», то этот документ проведется.

        4. Если объект ссылается на документ, справочник или операцию, то производится выгрузка значения этого реквизита. Получаем рекурсию. Еще в оригинальной обработке была встроена защита от «бесконечной» рекурсии. Потенциально существует опасность бесконечной рекурсии только в случае, если значение ключа элемента справочника замыкается на этот же элемент (в последующих версиях попробую устранить эту проблему).
          При этом, в вашей базе могут быть выгружены даже документы годичной давности, даже если они не попадают в период выгрузки. Это происходит если есть какая-то прямая или косвенная ссылка на них с тех объектов, которые вы хотите выгрузить. Однако если объекты одинаковы в обеих базах, то никаких действий над ними производится не будет и выгрузка пройдет быстро.

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

    3. Сравнение документов - с помощью закладки «сравнение» можно убедится, что все данные перенеслись правильно и исправить, в случае если это не так.

      1. Выбор объектов для сравнения производится аналогично как и на закладке «Выгрузка».

      2. После нажатия кнопки «Сравнить» появляется отчет с результатами. Колонка «состояние» отражает состояние объекта в базе источника и в базе применике. Галочка — документ проведен, крестик — объект помечен на удаление, пустая ячейка — объект записан.

      3. Можно перенести выборочный объект в базу приемник прямо из отчета по нажатию на кнопку «Перенести в приемник». При этом вам будет предоставлен отчет об сделанных изменениях, но в таблице с результатами сравнения изменений не будет (!).

    4. Перенесение справочников

    5. Сравнение справочников.

    6. Сравнение итогов по регистрам и/или бух. счетам.



    Общие замечания по эксплуатации обработки

    1. Перенос значений тип «число». Поскольку перенос значений построен посредством ole есть следующие ограничение: переносится только 15 цифр в числе не считая знака (+/-) и дробной точки. Остальные числа после запятой обрезаются. Причем 1.87 может передать 1.86999999999999. В обработке сравнение происходит с учетом этого.

    2. При подключении базы приемника обработка может надолго «зависнуть» выкинув окно «Подключиться/Повторить». В большинстве случаев надо просто подождать. OLE сервер автоматически начал реиндексацию базы приемника. После окончания (когда винчестера перестанут шуметь и лампочки на блоке мигать) можно нажать одну из этих кнопок.

    3. Не следует сразу же после выгрузки/сравнении выходить из обработки. Практика показала, что надо минутку подождать. Когда я выходил сразу же — в база приемника требовала реиндексации. Возможно это только у меня.

    4. У меня иногда появляется «Неизвестная ошибка» в строке, где используется какой либо метод ole объекта. Возможно это из-за использования большого числа внешних компонент. В таком случае я повторяю выгрузку или выхожу и вновь вхожу в 1С.

    !!! Общие замечания по функциональности программы !!!

    В этом разделе буду перечислять все недостатки обработки, которые надеюсь будут выявлены и со временем ликвидированы.

    1. В отчетах о сравнении и выгрузке значения агрегатных типов данных приемника выводятся просто как ”OLE”.[1.31.1.6]

    2. При сравнении документов, проверка существования в базе приемнике документов отсутствующих в базе источнике проводится строго на дату документа в базе приемнике.[1.31.1.2]

    3. При сравнении справочников не проверяется присутствие в базе приемнике элементов, отсутствующих в базе источнике, а также лишних значений периодических реквизитов в базе приемнике.[1.31.1.6]

    4. Если в базе приемника в периодическом реквизите на некоторую дату есть значение введенное вручную и значение введенное документом, то, значение введенное вручную не будет найдено. [1.31.1.6]

    5. При установленном флажке «Проводить документы» результаты проведения не попадают в отчет о выгрузке, а только выводятся в окне сообщений.[1.31.1.4]

    6. Потенциально существует опасность бесконечной рекурсии при переборе реквизитов справочников только в случае, если значение ключа элемента справочника замыкается на этот же элемент (в последующих версиях попробую устранить эту проблему).

    7. Возможен случай, если при записи объекта происходит ошибка и объект не будет записан. В этом случае в отчет о выгрузке сообщение об ошибке не попадет. (Чтобы исключить данную ситуацию необходимо производить сравнение баз).

    История

    [1.31.1.2] 08.05.2009

    !!! Не переносилась время документов как новых, так и найденных в приемнике при установленном флажке «Только необходимое».

    !!! Не удалялись лишние строки документов и проводки операций в базе приемнике, которых нет в базе источнике

    *** При включенном флажке «Проводить документы» обработка делает непровденные в базе источнике документы такими же и в базе приемнике.

    *** При сравнении документов, проверка существования в базе приемнике документов отсутствующих в базе источнике проводится в периоде нумератора.

    [1.31.1.3] 08.05.2009

    *** Изменен алгоритм вывода отчета о выгрузке. Отчет стал более понятным и наглядным.

    [1.31.1.4]

    +++ Добавлен флажок на закладку «Настройка» - «Помечать на удаление не проведенные». При выгрузке позволяет пометить на удаление в базе приемнике те документы которые в базе источнике не проведены. Полезно при отключенном флажке - «Проводить документы», чтобы потом не запутаться, какие надо проводить, а какие нет.

    !!! Иногда не переносились реквизиты типа «Счет». Исправлено.

    *** Удален флажок «Только необходимые». Теперь в любом случае переносится будут только измененные объекты.

    +++ Добавлен реквизит «Период новых документов». Документы с этой даты включительно считаются новыми. При установленном флажке «проводить документы» будут проводится только старые документы. При установленном флажке «Удалять не проведенные», будут удалятся только старые документы.

    *** Если в документе был изменен какой-то реквизит, то документ будет перепроведен (если он попадает под действие флажка «Проводить документы»).

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

    !!! В отчет о выгрузке строки с реквизитами объекта, могли быть как ниже, так и выше строки с наименованием объекта. Исправлено.

    *** Проведенные документы, у которых была изменена дата и/или время, больше не будут оставаться после этого изменения непроведнными (если они попадают по действие флажка «Проводить документы»).

    *** Если документ в ходе выгрузки был проведен, перепроведен (после замены некоторых реквизитов), сделан не проведенным, удален или восстановлен, то результат этого будет показан в отчете о выгрузке. Причем, если строка выделена красным, то действие не было произведено.

    *** Изменено описание.

    [1.31.1.5] 13.05.09

    !!! При установленном флажке «Помечать на удаление непроведенные новые» старые документы не помечались на удаление/не отменялись с удаления вообще. Исправлено.

    !!! В некоторых случаях не переносились реквизиты типа «Счет».

    [1.31.1.6] 22.05.09

    +++ Периодические реквизиты справочников полностью синхронизируются (т.е. Из базы приемника удаляются значения на даты, которых нет в базе источнике и добавляются те, которых нет в базе приемнике). При этом учитывается также, что на одну дату могут присутствовать значение введенное вручную и несколько значений введенные документами.

    +++ В отчетах агрегатные объекты из базы приемника выводятся не как ”OLE”, а в виде [владелец] наименование — для справочников и ВидДокумента НомерДокумента ДатаДокумента для документов.

    !!! При выборе ключа справочника на закладке «Настройка» можно было выбрать реквизит без флага «сортировка», что вызовет ошибку при сравнении или выгрузке.

    *** Убрал все лишние сообщения из табло. Теперь в табло сообщений будет появляться только сообщения об ошибках.

    *** Изменено описание.

    *** Много других мелких изменений и исправлений ошибок.

    Благодарности

    1. Wolfsoft - +

    Категория: Инструмент обмена данными (OLE) (бесплатно) | Добавил: Андрей
    Просмотров: 10498 | Загрузок: 812 | Комментарии: 6
    Всего комментариев: 3
    3 luhshonse  
    0
    Мда наверное я туплю но ничего не понял


    ____________________
    Купить часы копии в Москве - http://chasu.ru

    2 AnnorgeCakCak  
    0
    Этот пост — одно из немногих исключений, когда читаешь с интересом и что-то для себя выносишь. Спасибо Вам. Добавлю в избранноеhttp://voronezh.recikl.ru/ - . :)

    1 Tenthunty  
    0
    http://www.sarvajal.com - viagra

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Copyright 1SService © 2024