| 
    
            
         
         | 
    
    
  | 
СКД - работа с 2мя базами универсально | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        kittystark    
     21.12.15 
            ✎
    18:49 
 | 
         
        жили были с одной базой 1С, в которой велось несколько организаций и сводная аналитическая отчетность замечательно формировалась отчетами на СКД из единой базы
 
        прилетела задача от руководства: базы разъединить - для каждой организации отдельная база, и все - вопрос дальше однозначно не обсуждается, но нужна сводная отчетность ---------------------------- ОТСТУПЛЕНИЕ BEG метода доработки РУКАМИ одного конкретного существующего отчета СКД для получения той же сводной аналитики опробована: - добавляем в наборы данных "набор данных - объект" и указываем его поля - руками же добавляем табличную часть "отчета-объекта" (в том самом окне где кнопка "Открыть схему компоновки данных" ), в нее сопоставляем соответствующее количество реквизитов - на вкладке связей досвязываем эти внешние данные - в ПриКомпоновкеДанных через СОМ-объект V8x.Application коннектимся к базе, выполняем запрос на "удаленной" базе, прогружаем результат в табличную часть - процессор инициализируем с "внешними данными" компонуем и вуаля - отчет готов, работает!!! ----------------------------- ОТСТУПЛЕНИЕ END не хочется почти сотню отчетов руками переводить на эти рельсы, а написать что-то более-менее универсальное для работы с 2-мя базами у меня на самом деле возникают сомнения только по поводу программного добавления табличных частей "отчета-объекта", но все же спрошу ВОПРОС 1: с технической точки зрения есть ли возможность ПРОГРАММНО добавить в схему компоновки необходимое количество "копий" оригинальных наборов (работающих с одной базой), так чтобы эти копии были полноценными "наборами-объектами" с теми же полями и им ПРОГРАММНО подобавлять табличные части "отчета-объекта" с необходимыми реквизитами ? ВОПРОС 2: есть ли возможность ПРОГРАММНО добавить новую связь на вкладку "связи наборов данных" ?  | 
|||
| 
    1
    
        Fragster    
     гуру 
    21.12.15 
            ✎
    18:52 
 | 
         
        консолидация засасывает в себя данные из кучи источнико, а потом по готовым данным в пределах одной базы делается отчет. также программно можно прокинуть схему и выполнить отчет в удаленной базе, получить обратно табличный документ, если настройки схемы подходят для удаленной базы.     
         | 
|||
| 
    2
    
        kittystark    
     21.12.15 
            ✎
    18:56 
 | 
         
        (1) и сколько денег и времени на внедрение надо будет вбухать на эту консолидацию ?     
         | 
|||
| 
    3
    
        Fragster    
     гуру 
    21.12.15 
            ✎
    19:01 
 | 
         
        (2) много. но точечно скомуниздить подход ничего не мешает.     
         | 
|||
| 
    4
    
        kittystark    
     21.12.15 
            ✎
    19:13 
 | 
         
        (1) если предположить, что конфы 2 баз абсолютно одинаковые, плюс через план обмена добиваемся "синхронизации" основных справочников (типа Номенклатура и все с ней связанные, Контрагенты и т.д.) только в одну сторону - из основной базы во 2-ю, во 2-ой запрет на заведение/редактирование
 
        возможен ли вариант проброса схемы на 2-ю базу и ее исполнения там, но возврата не табдока, а чего-то-там-пока-не-понятного, что на лету можно подхватить и подсунуть к "основным" данным первой базы при компоновке ? т.к. табдок вчистую не "просуммируешь" функциями СКД, прописанными в выражениях ресурсов может что-то типа со 2-ой базы возвращать ЗначениеВСтрокуВнутр от РезультатаСкомпонованногоВ_ТЗ, а на стороне первой базы ЗначениеИзСтрокиВнутр ?  | 
|||
| 
    5
    
        kittystark    
     22.12.15 
            ✎
    15:30 
 | 
         
        UP     
         | 
|||
| 
    6
    
        Лефмихалыч    
     22.12.15 
            ✎
    15:34 
 | 
         
        (0) программно можно и то, и это, но это порожняк. Нужна консолидированная отчетность - консолидируйте данные в отдельном месте, из которого получайте сводные отчеты.     
         | 
|||
| 
    7
    
        Necessitudo    
     22.12.15 
            ✎
    15:35 
 | 
         
        (6) Внешние источники данных.     
         | 
|||
| 
    8
    
        Лефмихалыч    
     22.12.15 
            ✎
    15:36 
 | 
         
        +(6) самый простой способ - это сделать РИБ из трех узлов: Центр, ФирмаА, ФирмаБ с обменом только между ПБ и ЦБ.
 
        (7) это точно такое же кривое решение, как суета с отчетами из(0)  | 
|||
| 
    9
    
        MUXACb    
     22.12.15 
            ✎
    16:17 
 | 
         
        (0) А потом вспомнят что лет 5 назад была еще база(с другой конфигурацией) и потребуют что бы отчет и ее данные обрабатывал. Тогда и (8) не поможет     
         | 
|||
| 
    10
    
        Лефмихалыч    
     22.12.15 
            ✎
    16:20 
 | 
         
        (9) пустой разговор.
 
        На самом деле решение через отчеты не взлетит хотя бы потому, что, если базы будут изолированы и не объеденены ни каким центром, то уже через пару месяцев сводный отчет будет не возможен по причине рассинхронизации нормативно-справочной информации. НСИ обязаны быть общей, ибо она и будет разрезами этого сводного учета. А, если базы тотально изолированы, то ни какие внешние источники и программные СКД не помогут получить общий отчет  | 
|||
| 
    11
    
        kittystark    
     22.12.15 
            ✎
    16:41 
 | 
         
        (6),(8) в (4) о синхронизации слегка прошелся, вариант с РИБ итак лежит на поверхности и с самого начала я только этот вариант и предлагал, но шефы выпускать ЦБ в облака категорически не хотят, а на случай изъятия оборудования спрятанного сервера нет - поэтому и приходится пока отказаться от РИБ, и разносить базы на 2 территориально разнесенных сервера - каждый только под свою контору     
         | 
|||
| 
    12
    
        Лефмихалыч    
     22.12.15 
            ✎
    16:43 
 | 
         
        (11) а зачем выпускать ЦБ из облака? Не выпускайте. Какая религия мешает и ЦБ, и ПБ в облаке хранить?     
         | 
|||
| 
    13
    
        Лефмихалыч    
     22.12.15 
            ✎
    16:44 
 | 
         
        что так же мешает ПБ разнести на эти ваши сервера, а ЦБ продолжать хранить в облаке?     
         | 
|||
| 
    14
    
        Лефмихалыч    
     22.12.15 
            ✎
    16:44 
 | 
         
        какя-то у вас там секта деструктивная...     
         | 
|||
| 
    15
    
        vhl    
     22.12.15 
            ✎
    16:46 
 | 
         
        (0) нафиг тебе табличная часть?     
         | 
|||
| 
    16
    
        vhl    
     22.12.15 
            ✎
    16:48 
 | 
         
        По поводу программного добавления - не проблема:
 
        ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных1"; ИсточникДанных.ТипИсточникаДанных = "Local"; НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); НаборДанных.Имя = "НаборДанных1"; НаборДанных.ИсточникДанных = ИсточникДанных.Имя; НаборДанных.ИмяОбъекта = "Таб";  | 
|||
| 
    17
    
        vhl    
     22.12.15 
            ✎
    16:50 
 | 
         
        (8) Вот еще геморой с обменами поиметь     
         | 
|||
| 
    18
    
        vhl    
     22.12.15 
            ✎
    16:51 
 | 
         
        Если ТС устраивает срез отчетности получаемый таким образом, то в чем проблема? Нафиг строить консолидацию, обмены и прочий геморой если надо получить тупо один-два отчета?     
         | 
|||
| 
    19
    
        Новиков    
     22.12.15 
            ✎
    17:01 
 | 
         
        (18)>> если надо получить тупо один-два отчета?
 
        (0) >> не хочется почти сотню отчетов руками переводить на эти рельсы, один-два - это сотня?  | 
|||
| 
    20
    
        kittystark    
     22.12.15 
            ✎
    17:03 
 | 
         
        (15) судя по вопросу правильно ли делаю вывод что в коде
 
        ВнешниеНаборыДанных = новый Структура; ВнешниеНаборыДанных.Вставить("ВнешнийНабор", ТабличнаяЧасть); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина); в качестве ТабличнаяЧасть может выступать не то что "натыкано" в конфигураторе мышой на форме с указанием типа конкретного реквизита, а вообще любая ТЗшка ?  | 
|||
| 
    21
    
        Новиков    
     22.12.15 
            ✎
    17:05 
 | 
         
        Простой вопрос к ТС:
 
        в вашей общей базе есть контрагент А. Базы разъехались, стало 2 контрагента А. В первой базе, зачем-то контрагента А изменили (поменялась ссылка, инн или любое другое поле синхронизации). Есть какие-то отчеты, которые как-то анализируют контрагентов. Соответственно, в результате отчет покажет видимо не то, что ожидалось. Аналогично с номенклатурой. Даже если везде установлена синхронизация по ссылке, ничто не мешает, кому-то взять и контрагента А перебить в ниндендо Б. Такой подход ничего не даст в долгосрочной перспективе, если у этих баз есть некое множество НСИ, которое пересекается между собой. В этом случае, правильным решением будет либо вывод всей НСИ в отдельную базу с миграцией по пб, либо тупой запрет на редактирование нси в одной из баз.  | 
|||
| 
    22
    
        aleks_default    
     22.12.15 
            ✎
    17:05 
 | 
         
        Все правильно сказано в (10). Добавить нечего.     
         | 
|||
| 
    23
    
        vhl    
     22.12.15 
            ✎
    17:07 
 | 
         
        (20) ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,Новый Структура("Таб", Таб), ДанныеРасшифровки);
 
        Таб - таблица значений  | 
|||
| 
    24
    
        kittystark    
     22.12.15 
            ✎
    17:08 
 | 
         
        (21) читай внимательно (4) про запреты во второй базе     
         | 
|||
| 
    25
    
        Новиков    
     22.12.15 
            ✎
    17:10 
 | 
         
        (24) я это читал :)     
         | 
|||
| 
    26
    
        vhl    
     22.12.15 
            ✎
    17:11 
 | 
         
        (4) А что делать если филиалу надо завести нового контрагента или номенклатуру? Звонить в центр и ждать обмена?     
         | 
|||
| 
    27
    
        Новиков    
     22.12.15 
            ✎
    17:11 
 | 
         
        А что кстати в отчетах? Откуда там данные с запросов? С регистров каких-то?     
         | 
|||
| 
    28
    
        kittystark    
     22.12.15 
            ✎
    17:18 
 | 
         
        (26) за (23) сэнкс, попробую
 
        ассортимент всегда сначала появляется в первой конторе, если товар ходовой тогда спустя время закупается и на вторую, разлет по времени - недели и больше с контрагентами все еще проще, пересечений нет - разные сегменты рынка  | 
|||
| 
    29
    
        rsv    
     22.12.15 
            ✎
    17:19 
 | 
         
        (0)  1. Внешние источники данных.
 
        2. Если скуль - линкованый сервер рулит. (строка,число,дата)  | 
|||
| 
    30
    
        kittystark    
     22.12.15 
            ✎
    17:20 
 | 
         
        (27) со справочников и с регистров, в основном классика жанра - взаиморасчеты, продажи, партии, остатки     
         | 
|||
| 
    31
    
        kittystark    
     22.12.15 
            ✎
    17:25 
 | 
         
        (29) >>1. Внешние источники данных. 
 
        Что подразумеваешь ? Это ODBC или СКД-шный механизм ? >> 2. Если скуль - линкованый сервер рулит. (строка,число,дата) MS SQL 2008, но вот про линкованность сервера малограмотен (пока :), можешь чуть шире пояснить?  | 
|||
| 
    32
    
        vhl    
     22.12.15 
            ✎
    17:33 
 | 
         
        (29) с внешними источниками ты себе больше проблем огребешь с этими сопоставлениями названий реквизитов     
         | 
|||
| 
    33
    
        johnbay    
     22.12.15 
            ✎
    20:01 
 | 
         
        (0) еще в 2009г выбрал метод описанный в отступлении. Работает до сих пор. Все что хочет автор добиться тогда не удалось, а переделывать потом уже не сложилось) базы абсолютно разные. пользователи разные. 
 
        Например прототип отчета создается в конфигураторе и там же прописываются поля. любые его варианты добивают пользователи. из неприятных моментов, который преследует этот метод в работе это первичное ожидание коннекта по сом. последующие вызовы быстрее. В моем случае было проще. Не было необходимости в переводе тысяч отчетов на новые рельсы. Все отчеты писались с нуля.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |