8.х ОБМЕН Выгрузить одно ООО из большой БД в узел РИБ

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем dimao, 15 июн 2018.

  1. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    Есть большая БД (около 200 гиг mssql) c несколькими десятками организаций (ООО, ИП итд).
    Нужно выделить одну из них и передать партнерам.
    из похожей, но гораздо меньшей БД легко выделается ООО через синхронизацию по организации. Потом отключаем от главного узла - все работает.
    Но в большом пациенте все сложнее: создается БД и когда результирующаяБД уже превышает 4гиг после суток молочения, появляется ошибка:
    "Не удалось зарегистрировать изменения на узлах плана обмена ПоОрганизации по причине: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(847)}: Значение не является значением объектного типа (ДополнительныеСвойства)
    Если Объект.ДополнительныеСвойства.Свойство("РегистрироватьНаУзлахПлановОбменаПриОбновленииИБ") Тогда"
    я не понимаю, как получилось, что Объект.ДополнительныеСвойства.Свойство("РегистрироватьНаУзлахПлановОбменаПриОбновленииИБ") не подходит под тип "ДополнительныеСвойства"? где мне искать проблему?

    Сейчас я поставил повторную выгрузку с отладкой и остановом по ошибке, но, думаю будет работать пару дней. Может гуру посоветуют, где поискать проблему?
    Может посоветуете, как иначе выделить одну организацию из такой большой БД?
    Я пытался на копии удалять отмеченные - операция не завершилась за 4 (четыре) дня - не хватило терпения, снял процесс.



    Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.59.54)
    1С:Предприятие 8.3 (8.3.10.2753) (пробовал и в более старой - те же грабли)
    основной функционал не переписан, обновляется нормально.
    Последнее редактирование: 15 июн 2018
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    7.886
    Симпатии:
    504
    Баллы:
    204
    Я как то делал подобное, но делал через обычную ЗагрузкуВыгрузкуXML с отбором по организации. Конечно была не такая мощная база)) Может попробовать по этапно?
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    Делается проще: создается копия БД, пишется скрпит для SQL, который выносит все в SQL, соблюдая некую ссылочную целостность.
    Я так чистил копии баз от 100+ организаций.

    Чистка от данных 100 организаций занимает в районе 1 часа на БД размером в 25ГБ, в базе 200ГБ - думаю, будет чуть побольше.
  4. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Спасибо. А подскажите, как поддержать эту ссылочную целостность? Я нашел обработку, которая сопоставляет объекты 1С и таблицы mssql. Теперь сначала вынести документы, с внешним ключем "Организация", а потом удалить организацию. Так? а потом сделать тестирование с удалением объектов с битыми ссылками?
    можно примерчик какой-то?

    ЗЫ: И еще, что делать с регистрами? сначала в 1С "распровести" документы? как удалять табличные части?
    Последнее редактирование: 18 июн 2018
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    в общем случае - так. Нужно удалять такие записи в таблицах, которые содержат ссылки на удаляемые объекты: грубо говоря, собираемся удалить подразделения организации, следовательно, нужно удалить все остальные записи, во всех остальных таблицах, где есть ссылки на удаляемые подразделения.

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

    Отправлено с моего MI 5s Plus через Tapatalk
  6. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Так, моей экспертизы не хватает на создание такого скрипта. Получается слишком сложно. ОСобенно в журнале операций - кучу движений нужно вычищать!Я сдался. Сделал простую обработку, которая просто тупо перебирая документы, где есть реквизит Организация и организация не та, что нужно оставить, распроводит документ и удаляет его. Но так медленно, что , например, отчеты о розничных продажах будет удалять месяц!

    "Я уже и так и этак, со словами и без слов" . Опять пробую сделать через РИБ. Теперь, пашет полтора дня и валится, с сообщением, что значение на является значением объектного типа (ОбменДанными). Сижу в отладчике - завтра-послезавтра будет результат, а в конце недели вообще сдача работы! Пока в сообщениях были ссылки на место в коде, где они возникают -получалось устранить ошибки. В этот раз -даже не знаю, где искать!
    Может подскажете где можно в коде игнорировать ошибки при создании начального образа?
  7. nsk1C
    Offline

    nsk1C Профессионал в 1С

    Регистрация:
    25 май 2016
    Сообщения:
    1.788
    Симпатии:
    175
    Баллы:
    104
    Версии - те же?
    Must-read https://bugboard.v8.1c.ru/project/bp3.html
  8. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Да, версии те-же. Читаю про "Публикуемые ошибки продукта "Бухгалтерия предприятия, редакция 3.0" версии 3.0.59.54"
    вроде бы нет похожих на мои. Там не обозначены ошибки, связанные с РИБ.
    Я не исключаю, что ошибка где-то в БД, но для такой большой БД проверка не завершается в течении трех дней!

    НО, в любом случае, СПАСИБО, что показали такой полезный ресурс!!! Я еще почитаю!
  9. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Сейчас, просто так, для "посмотреть что получится" , сделал пустую организацию и сделал узел по ней. Думал, что минут за 20 управится. Но! система показала, что выгрузать она хочет те же семи миллионов объектов (может разница в несколько десятков тысяч) объектов!Вот это номер! почему?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    Потому что так устроен типовой РИБ от 1С :)
  11. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Простите, пожалуйста. а где почитать про основы его внутренней анатомии? если уж я лезу в код (само собой на копии) то может смогу заставить ее игнорировать любые ошибки?
    А чего там на 7 миллионов? в плате обмена зарегистрирован только признак, что создается узел РИБ. Где посмотреть, чего она отправляет?

    Может какие-то регистры почистить?
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    она отправляет все, что попадает в отбор. Для того, чтобы понять, нужно ли выгружать тот или иной обьект в создаваемый узел, проверяютсч все обьекты центрального узла.

    Почитать...а х.з, думаю, на ИТС должна быть документация про обмены.
  13. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    То есть, система выводит общее количество объектов ДО ОТБОРА по подразделению? Тогда, может быть.
  14. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    А вот, если я правами доступа ограничу видимость ненужных организаций для человека, кто делает выгрузку?
    или помечу ненужные организации на удаление в справочнике организаций? Это может помочь уменьшить отбор? Чтобы сразу попадали только нужные организации?
  15. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    Нет. Выгрузка данных в новый узел происходит в привилегированном режиме, на сервере, ему до лампочки пометка на удаление, он их тоже поместит в узел.
  16. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    А вот бредовое предположение: если я физически (из sql) на копии удалю "лишние" записи в справочнике Организации? не будет ли система строить дерево документов не учитывая ненужные?
  17. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.347
    Симпатии:
    973
    Баллы:
    204
    Оно скорее по ошибке вылетит, т.к. нарушится ссылочная целостность
  18. TopicStarter Overlay
    dimao
    Offline

    dimao Опытный в 1С

    Регистрация:
    15 сен 2008
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    ок. Пока я кручу пять инстансов 1С для этой БД в каждой работает обработка удаления своего типа документов (в превилигированном режиме, без транзакций). Уже поудалялось половина от начального количества ненужных документов. Почистил регистр версий объектов, в модулях, где вылетали ошибки поставил Попытка-Исключение. Оборотка вроде соответствует оригинальной БД (мне кажется это есть грубая оценка, что данные не поломались).
    Попробую сформировать образ РИБ. О результатах отпишусь.

    PS: осталось 240000 из 600000 первоначальных "лишних" документов. Попробую сформировать образ РИБ. Может прокатит.
    Последнее редактирование: 5 июл 2018

Поделиться этой страницей