Установка даты запрета изменений из центральной базы при обмене с РИБ

Вопрос задал Ольга К. (Нижнекамск)

Ответственный за ответ: Шаврова Ирина (★9.92/10)

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

Все комментарии (20)

  1. Добрый вечер, Ольга!
    Вопрос принят в глубокую проработку.
    Для ответа на ваш вопрос мне нужно подготовить пример и проанализировать программный код в части обмена. Постараюсь подготовить ответ и разместить его здесь в понедельник, 21.09.2020

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

  2. Приложение

    Ольга, добрый вечер!
    Настроила я полный обмен, давайте покажу, что получилось.

    Сначала немножко информации по самому обмену, чтобы вы немножко понимали, как это реализовано в 1С. 🙂

    РИБ-обмен или Полный обмен работает в одну сторону. От центральной базы — к распределенной.
    Обмен осуществляется по специальным правилам обмена, которые можно выгрузить из настройки синхронизации и посмотреть.

  3. Приложение

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

  4. Приложение

    Есть специальная программа на 1С — Конвертация данных 3.0, она позволяет загрузить правила колнвертации и посмотреть, учитывается ли при обмене интересующий нас объект.

  5. Приложение

    Объект, который нас интересует — регистр сведений Даты запрета изменений.

    У меня вначале было подозрение, что он в обмене не рассматривается: наибольшее внимание разработчиками увсегда деляется справочникам и документам при обменах.

    Но нет! Все на месте — есть такой регистр в обмене и он, по идее, должен работать.

  6. Приложение

    Поэтому после этого я решила проверить 6егло работу практикой. 🙂

    Настроила Полный обмен, дата запрета изменений и в Центральной и в распределенной базе после настройки РИБ установились одинаковыми: 30.08.2020

  7. Это нормально, так и должно быть, вторая база полностью повторяет данные Центральной.

    Теперь я в Центральной базе открывают период 2019 года и январь 2020, вношу два документа ПТУ. Снова возвращаю период на место — 30.08.2020.
    Запускаю синхронизацию от Центральной к Распределенной и обратно…

    Результат: данные, действительно переносятся, несмотря на выставленные запреты.
    Программа автоматически меняет дату запрета (не показывая ее в форме) при загрузке данных так, чтобы обмен прошел, и данные в обеих базах были идентичны.

  8. Приложение

    И, к сожалению, сделано это на уровне Конфигурации.
    Если бы на уровне Правил регистрации, можно было бы их доработать и загрузить. А вот с Конфигурацией так поступить не получится.

    Вот это место в 1С (см. рисунок): в случае обмена программа попадает в процедуру ОбновитьВерсиюДатЗапретаИзмененияПриЗагрузкеДанных() и принудительно сбрасывает дату запрета при выполнении обмена.

    Сделано это разработчиками специально, иначе базы будут не идентичны, а это противоречит заложенному в этот обмен смыслу.
    Если убрать это место в Конфигурации, данные в запретный период не будут загружаться, но это уже будет не РИБ.

    PS: Если вам нужно, чтобы какие-то данные в одной из баз не трогались, возможно, можно подумать о том, чтобы делать отдельные базы, не РИБ, и загружать туда данные выборочно, например по обработкне Выгрузка и загрузка данных.xml. Эта обработка есть на ИТС. Есть еще более удачные варианты на Инфостарте, можете поискать.
    Ссылок на них мы не даем — это чужое авторское право. Но найти можно.)

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

  9. Приложение

    Вот это будет выглядеть как-то так.

  10. Приложение

    Еще один момент. Если вы заметили, в настройке синхронизации есть флаг выставления даты запрета при обмене. Но для РИБ обмена он не работает. По выше изложенным причинам.

    Поэтому, чтобы вам не менять Конфигурацию (очень нежелательно), можно попробовать просто не выгружать какие-то данные при обмене.

  11. Приложение

    Это можно сделать через отмену регистрации по одиночному объекту, например, так.

    Открыть Состав отправляемых данных. В окне данных найти объект, которые НЕ должен выгружаться в распределенную базу.
    Установить флаг напротив него и вызвать команду Отменить регистрацию — Одиночного объекта.

  12. Приложение

    После подтверждения отмены регистрации, в состав выгружаемых данных документ не войдет.

  13. Приложение

    Проверить это можно по специальной кнопке в меню, я на рисунке отметила.

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

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

  14. Приложение

    На всякий случай, привожу файл выгрузки, который можно смотреть по указанной выше кнопке (это я внесла изменения в документ поступления).

  15. Все это есть в файлах выгрузки, которые можно даже править в редакторе Блокнот, например. Я знала виртуозов, который удаляли данные к загрузке прямо оттуда.))
    Но они хорошо разбирались в структуре файлов XML

  16. Приложение

    Можно регистрировать по кнопке Зарегистрировать только то, что хотите передать. Нажимаете кнопку, в окне выбираете нужное: в правом окне эти объекты добавляются.
    Только они и будут участвовать в обмене.

  17. Приложение

    Нажимаете кнопку просмотра данных на обмен: именно 2 выбранные мной СФ.

    Вот, наверно, все, что можно было по этому вопросу сказать — сказано.)

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

    Когда все будет получаться, можно использовать этот прием уже в рабочей базе без опасения что-то испортить. А первое время старайтесь делайте копии баз почаще. Все-таки обмен — не такое уж простое дело.

  18. Вы проделали просто грандиозную работу.
    Спасибо огромное!
    Обязательно потестирую сначала на копиях.

    1. Удачи, Ольга! 🙂

Комментарии закрыты.