|   |   | 
| 
 | Загрузка документов из нескольких баз в 1 (Бухгалтерия) X Leshiy, Злопчинский, Eiffil123, orakool, Hawk_1c, AlexKimp, Vovik, JohnGilbert, Волшебник, runuts, Prog_man, Seriy_Volk, maxab72, Мультук, Наивный, Климов Сергей, Dmitrii, Новиков, BayJay, nick86, comp2006, Pprog151713, Крэкпэк, svol21, ldo6, DimR_71, Redaktor, skafandr, obs191, bobark, 2S, Сукпун, malikov, sergeev-ag-1977 | ☑ | ||
|---|---|---|---|---|
| 0
    
        K1RSAN 26.06.25✎ 09:17 | 
        Возникла такая задача, не могу пока понять как это реализовать.
 Есть 1 база, в которую надо загружать данные из нескольких других (конфигурация одинаковая, релиз будет поддерживаться одинаковый). Организации разные в "исходных" базах. Вопрос с дублями номенклатуры-контрагентов пока опустим. Желательно, чтобы из одной обработки по нажатию кнопки загружались документы за определенный период из выбранной базы. Такое можно реализовать? Куда копать? | |||
| 1
    
        Волшебник 26.06.25✎ 09:19 | 
        УРБД, т.е. план обмена с флагом "Распределенная"     | |||
| 2
    
        K1RSAN 26.06.25✎ 09:21 | 
        (1) Если базы уже давно существуют - их как-то можно "подружить" как распределенные? Тоже эта мысль возникла, но обычно база основная "мама" и имеет изначально все нужные документы, а от неё откалывают кусочки на распределенку. У нас уже есть несколько баз с разными организациями, дети есть, а мамы еще нет.     | |||
| 3
    
        2S 26.06.25✎ 09:27 | 
        (0) Сейчас технологии позволяют настраивать обмены как душе угодно     | |||
| 4
    
        K1RSAN 26.06.25✎ 09:32 | 
        (3) Через КД?
 Я работал пока только с КД2, он подойдет? | |||
| 5
    
        d4rkmesa гуру 26.06.25✎ 09:35 | 
        (0) Ну тут могут быть разные сочетания формат+транспорт. Формат КД2, ED или свой собственный в виде json, если базы одинаковые, можно типовой сериализацией пользоваться. Обмениваться можно через COM (устарело), http- или web-сервисы, брокеры сообщений или купить ESB, ту же 1С Шину (если есть бюджет). Вариантов может быть много. На ИС вчера буквально читал, был весьма удивлен, что многие используют КД2+Rabbit, правда, там у них под это своя конвертация данных разработана. Но это если прямо есть желание все сделать по одному стандарту и без видимого потолка в производительности транспорта.     | |||
| 6
    
        Волшебник 26.06.25✎ 09:37 | 
        (2) Конечно.     | |||
| 7
    
        Tarlich 26.06.25✎ 09:42 | 
        тут наверно больше вопрос даже не с самим вариантом обмена - а наверное как лучше синхронизировать ?! по гуиду конечно каша будет - но есть удаление дублей . контрагенты - ИНН КПП . номенклатуру - на сколько она вообще разна ? привести к общему коду или наименованию . конечно есть удаление дублей. ну и конечно по каждому спр принимать свое решение . что с историей и кол информации ? может что и ручками     | |||
| 8
    
        d4rkmesa гуру 26.06.25✎ 09:44 | 
        (4) Я когда-то так делал с КД2+web (если кратко, там веб-сервисы в базах источниках, которые отдают xml, и единственная обработка в приемнике)
 https://infostart.ru/1c/articles/203109/ Понятно, что сейчас такой подход устарел, но работает и достаточно просто делается, если есть опыт с КД2. Или вместо КД2 можно сериализовывать и по такому же принципу передавать, но если НСИ везде разные, то лучше все-таки КД2. | |||
| 9
    
        K1RSAN 26.06.25✎ 09:48 | 
        (7) С дублями да, будет каша. Либо унифицировать наименования, коды, создание всего изначально в "общей" базе, чтобы оно потом при синхронизации создавалось в дочках.
 Но на начальном этапе будет всё плохо, так как базы работают уже несколько лет, навести порядок там будет тяжело... | |||
| 10
    
        K1RSAN 26.06.25✎ 09:48 | 
        (8) Спасибо, посмотрю     | |||
| 11
    
        Tarlich 26.06.25✎ 09:49 | 
        (9) в этом и есть прелесть нашей работы -))     | |||
| 12
    
        2S 26.06.25✎ 09:53 | 
        (9) Как вариант добавить поле "УИД", писать туда уиды родительской базы и настроить сопоставление при загрузке. По такому принципу настраивали небольшие http-обмены для разношерстных баз.     | |||
| 13
    
        Мультук гуру 26.06.25✎ 10:00 | 
        (5) 
 Интересно у этих многих которые "КД2+Rabbit" какой бюджет на отдел 1С ? Сопоставимый с вопрошающим ? (0) >>релиз будет поддерживаться одинаковый) В каждой конфе куча флажочков. И наверняка в каждой они разные. (0) Как вариант ( для баз БП 3.0 ) 1) Настраиваем обмен через "СинхронизацияДанныхЧерезУниверсальныйФормат" с "Ручная синхронизация" 1.1) Думаем "а как склады то" ? 1.2) Выясняем, что документы переносятся "не как есть" а проводятся в целевой базе 1.3) Так как документы переносятся (регистрируются) по велению левой пятки, а меняются произвольно -- неизбежно наступит хаос 1.4) еще всякое думаем 2) Пишем обработку которые будет регать в "тех базах" документы по выбранному периоду -- через com -- через http -- через плоские файлы и прочие ездовые собаки 3) Пытаемся всё это запустить и обнаруживаем, что нужно было начать с остатков, ибо без остатков ничего не переносится 4) Пункт 3, только оказывается что забыли перенести учетную политику по "тем организациям" 5) Испытываем еще кучу попаболи и наконец это работает 6) Через 2-3 месяца удачного полета учредители решают разбежаться и начинается совсем другая история. P.S. Ах да. Выясняем,что всё это ради одного единственного отчета, который можно было переписать и ... не заниматься сами понимаете чем. | |||
| 14
    
        vicof 26.06.25✎ 10:04 | 
        (13) Спасибо, улыбнуло)     | |||
| 15
    
        K1RSAN 26.06.25✎ 10:12 | 
        (13) 
 П.С. - не удивлюсь ) | |||
| 16
    
        craxx 26.06.25✎ 10:22 | 
        (0) У меня был такой проект. 4 бухгалтерии сливал в одну.
 1. Проверить что у всех организаций префиксы уникальны в пределах все 4-х баз 2. проверить что номера документов не пересекаются. 3. Пилить правила обмена. У меня заняло примерно неделю. На КД2 4. правила пилить лучше полностью со всем движняком, чтоб потом не перепроводить. Короче недели на 2-3 развлечения. | |||
| 17
    
        Tarlich 26.06.25✎ 11:00 | 
        (0) вопрос автору - ВЫ больше испытываете техническую трудность или трудность донести до заказчика, с чем они столкнутся? как ни странно бюджет? если это хотят за "дошикак", вам надо быть готовым к не одной бессонной ночи -))  
 правильно отмечено - а для чего это все ? | |||
| 18
    
        X Leshiy 26.06.25✎ 10:59 | 
        (0) Десяток лет 200 баз в одну сливаются. Нормально настрой поля поиска и будет тебе счастье) Кд2, если что.     | |||
| 19
    
        K1RSAN 26.06.25✎ 12:06 | 
        (17) Ну я сразу подумал про КД2, но решил спросить у опытных людей, может есть другой вариант какой-нибудь, так как КД2 означает либо гемор с настройкой полей поиска, либо гемор по стандартизации данных.
 Редко попадаются такие задачи, поэтому не уверен был, что выбранный способ будет оптимальным. Бюджет просят от меня ) оценить стоимость и сроки. Не думаю, что доширак, но и не много миллионов | |||
| 20
    
        X Leshiy 26.06.25✎ 14:18 | 
        (19) Кд3, это натуральная диверсия. Вот поймал бы того, кто это придумал и канделябром по  бакенбардам.     | |||
| 21
    
        uno-group 26.06.25✎ 14:58 | 
        Обычно есть 2 варианта
 1. из 1 базы в другую документы перемещаются со сменой вида. Приходная становиться расходной и т.п. 2. Собирают все до кучи для консолидированной отчетности А вот тут есть куча вариантов, а нужно ли все сливать в 1 базу или проще построить отчет по нескольким базам. Нужно ли тупо сливать и повторять документы или слить данные нужные для отчетов а это далеко не одно и тоже. Нужно понимание, что и для чего делается, очень многие лишние телодвижение можно убрать и не делать. | |||
| 22
    
        X Leshiy 27.06.25✎ 09:38 | 
        (21) Время. Подключение по com к базе — это как открыть новую. Если баз десяток, то хрен с ним, проще подключиться и забрать данные. Если сотня, тут уж лучше слить то что надо. Кд2 как раз позволяет с движениями перенести доки.     | |||
| 23
    
        sergeev-ag-1977 27.06.25✎ 06:07 | 
        То что базы одинаковые это не значит что у них одинаковые настройки, к примеру того-же плана счетов. Поэтому по факту это перенос одной из них  в другую в лучшем случае, а затем разделение либо в РИБ, либо разделение и обмены в 3 базу.     | |||
| 24
    
        Eiffil123 27.06.25✎ 09:13 | 
        (0) сделать на КД 3 свой обмен     | |||
| 25
    
        Eiffil123 27.06.25✎ 09:13 | 
        (20) в чем именно диверсия?     | |||
| 26
    
        Климов Сергей 27.06.25✎ 10:17 | 
        (0) А какая-то консолидация нужна? Если нет, то технология фреш вам в руки. Одна база, каждая организация в своей области, никакой мороки с синхронизацией справочников и настроек.     | |||
| 27
    
        X Leshiy 27.06.25✎ 10:24 | 
        (25) Да потому что говно) Движения может переносить? Досвидания)     | |||
| 28
    
        Vovik 27.06.25✎ 10:41 | 
        Делал такое. Причем баз были 10ки, и УФ и не УФ разные конфиги и релизы. Все по ком соединениям. Что я только не переносил, лучше и удобнее решения для перебросок я не знаю, практика за больше чем 10 лет. Для каждого объекта (док, спр) одну функцию один раз прописываешь и все. Сопоставляешь как хочешь, по уидам, кодам, номерам...Легко правиться, легко отлаживаеться, легко перезаливается повторно - работает как часы.     | |||
| 29
    
        Vovik 27.06.25✎ 10:36 | 
        Вот пример функции:
 Функция ГТДИзУТ11_4(СпрКом) Спр = Справочники.НомераГТД; Если НЕ v8.ЗначениеЗаполнено(СпрКом) Тогда Возврат Спр.ПустаяСсылка(); КонецЕсли; СтрокаУИД = v8.string(СпрКом.УникальныйИдентификатор()); Идентификатор = Новый УникальныйИдентификатор(СтрокаУИД); СсылкаGUID = Спр.ПолучитьСсылку(Идентификатор); //Сообщить(Склад); Если Лев(СокрЛП(СсылкаGUID),20)="<Объект не найден> (" Тогда НайденнаяСсылка = Спр.НайтиПоКоду(СпрКом.Код); Если Не ЗначениеЗаполнено(НайденнаяСсылка) Тогда Если СпрКом.ЭтоГруппа Тогда ГТД = Спр.СоздатьГруппу(); Иначе ГТД = Спр.СоздатьЭлемент(); //ГТД.Код = ГТДКом.Артикул; //ГТД.Наименование = ГТДКом.Наименование; //Сообщить(НоменклатураКом.БазоваяЕдиницаИзмерения); ГТД.Комментарий = "#Автообмен: "+ТекущаяДата()+" - "+ПараметрыСеанса.АвторизованныйПользователь.Наименование; //Сообщить(Номенклатура.СтавкаНДС); //Сообщить(Номенклатура.ВидНоменклатуры); //Сообщить(Номенклатура.НоменклатурнаяГруппа); КонецЕсли; ГТД.УстановитьСсылкуНового(СсылкаGUID); //ГТД.ОбменДанными.Загрузка = Истина; ГТД.Код = СпрКом.Код; //ГТД.Наименование = ГТДКом.Наименование; ГТД.Родитель = ГТДИзУТ11_4(СпрКом.Родитель); //Попытка ГТД.Записать(); //Исключение //КонецПопытки; //Сообщить("+ГТД: "+ГТД.Код); НайденнаяСсылка=ГТД.Ссылка; КонецЕсли; Иначе НайденнаяСсылка=СсылкаGUID; //Проверка Если (НЕ СокрЛП(НайденнаяСсылка.Код)=СокрЛП(СпрКом.Код)) Тогда Сообщить(""+СпрКом.Код+" - возможно ошибки при сопоставлении ГТД!"); КонецЕсли; КонецЕсли; Возврат НайденнаяСсылка; КонецФункции | |||
| 30
    
        Vovik 27.06.25✎ 11:52 | 
        Документы переношу вместо синхронизации из УТ в БУХ так же. Вернее не я, а бухгалтера. Никто не долбит постоянно, что опять что-то слетело или какой-то косяк.     | |||
| 31
    
        Eiffil123 27.06.25✎ 11:50 | 
        (27) я сделал чтоб могло     | |||
| 32
    
        X Leshiy 27.06.25✎ 12:35 | 
        (31) Ну не спорю. А нахрена, если есть КД2? Простая и понятная, и по скорости +/-. поддерживай правила и нет парься. А не пили расширения в глобальном модуле.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |