powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 1C + SQL система распределенных узлов и транзакций
21 сообщений из 21, страница 1 из 1
1C + SQL система распределенных узлов и транзакций
    #38013792
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день! Возникла такая задача: есть головной офис, есть филиал. Есть база 1С 8.2, развернутая на SQL 2008 R2. Мы хотим организовать систему двустороннего обмена данными, чтобы изменения офиса попадали в филиал, и также изменения филиала отражались в головной базе. Т.е., фактически нужно сделать 2 базы, синхронизирующиеся друг с другом. В 1С есть встроенный механизм обмена данными с помощью узлов обмена, однако, при получении сообщений система "задумывается" на обработку полученного результата...

Вопрос: возможно ли организовать обмен средствами SQL в фоновом режиме по типу как Mirroring или Log Shipping? Недостатком этих методов является односторонний обмен, а нам нужен двусторонний чтобы изменения синхронно отображались сразу же в базе-партнере...
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38014417
chatm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kot358,

нет
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38015957
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли какие-либо еще способы прийти к такому варианту обмена, не используя штатный обмен РИБ 1С 8, а только используя возможности SQL?
Или как-то избежать "задумывания" и блокировки записей...
Задача такова, чтобы две базы могли "общаться между собой", т.е. изменения в одной попадали во вторую и также, изменения во второй попадали в первую.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38015986
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kot358Задача такова, чтобы две базы могли "общаться между собой", т.е. изменения в одной попадали во вторую и также, изменения во второй попадали в первую.
Эта задача выглядит без дополнительных пояснений как равноправная репликация в распеределенной БД.
Такая можеь поддерживаться на уровне СУБД.
Например, в Оракле мультимастер репликация и поодерживается только в самых дорогих редакциях.

Но и тогда потребуются усилия.
Нужно изменять триггера, чтобы они не риагировали на выполнение тразакций пришедших с удаленных серверов.
Нужно решать как разрешать конфликты: одни и теже данные редактируют а разных локальных БД.
Если репликация синхронная, то зависания возможны: транзакция может быть выполнена только на всех серверах или нигде.
Если асинхронная, то как надо приводить сервера в согласованное состояние, если часть транзакций "пропала", и данные на серверах слишком рознятся: новые транзакции выполнятся не могут.

Т.е. в общем случае расчитывать на простое решение, не несущее хоть и редких, но тяжелых напрягов не следует, скорее всего.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38016319
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoне следует, скорее всего.

ОК, понятно, а насколько такое решение выполнимо на других платформах и насколько оно выигрышно, по сравнению с механизмом РИБ в 1С? Т.е. РИБ - панацея и всего-то, что мы можем использовать в данной ситуации сравнительно с настройкой "тяжелой системы" на базе SQL или еще чего-то "посерьезнее" 1С?.

А по сути, есть 1С и платформа для ее расположения ограничена, это, в основном, SQL. Значит, если мы не можем решить эту задачу методами SQL, самый лучший вариант - продолжить "топтаться" на РИБ, правильно я понял?
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38016321
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь может ткнуть в ссылку, где такие или подобные задачи описаны и решены?
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38016359
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kot358Значит, если мы не можем решить эту задачу методами SQL, самый лучший вариант - продолжить "топтаться" на РИБ, правильно я понял?
Не уверен. Тем более, что термин методы SQL нуждаются в уточнении. По видимому Вы имели в виду на уровне СУБД. Я писал "про ручки подкрутить" у СУБД: настроить репликацию. Кто-то может быть взялся и сам разрабатывать что-то на уровне СУБД.

Я лишь хотел сказать, что способы есть, возможно, они даже могут показаться относительно не сложными. Но на практике можно столкнуться с рисками при сопровождении, требующими более высокой квалификации, дополнительных затрат, чем казалось в начале.
Большего админства системы.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38016958
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вкратце - это того не стоит, имхо
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38016988
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не специалист по 1С но на вашем месте я бы посмотрел, можно ли из-под 1С инициировать общую транзакцию для 1С-данных и SQL-соединения. Если это возможно (скорее всего да, т.к. 8 вроде крутая же), вы можете параллельно с 1С-транзакцией писать данные в свои таблицы, реплицировать их, и затем аналогично обрабатывать поступившие данные на противоположном конце. Реплицировать таблицы 1С не рекомендую, т.к. как уже сказали выше, есть вероятность некорректной работы 1С.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017138
chatm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагман,

а что такое Лагманинициировать общую транзакцию для 1С-данных и SQL-соединения
?

1С может устанавливать соединение через COM коннекторы (для целей обмена по РИБ, например), или выгружать данные по правилам обмена во внешний файл. Можно узнать внутренние имена объектов, которые в данный момент выгружаются/загружаются в ИБ. При этом между данными может существовать определенная связь.

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

Может получится, что из базы источника выедет документ, приедет в приемник и усилиями механизма репликации будет отмечен как проведенный. Но так как источник не выгрузил движения, то (при репликации сервером SQL), 1С не узнает, что этот документ требуется провести.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017226
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я так, фантазирую. В мире джавы например в порядке вещей распределенные транзакции, т.е. транзакция может работать одновременно для нескольких соединений с БД и для ещё каких-то других ресурсов. А в виндоуз есть MSDTC.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017621
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманесть вероятность некорректной работы 1С.

Вот именно, транзакция не должна выходить за рамки обработки в самой базе. Или 1С или SQL, а что-то создавать параллельными движениями - велик риск утонуть в проблемах такой системы...
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017626
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманвы можете параллельно с 1С-транзакцией писать данные в свои таблицы

Эммм.... смысл тогда всю ерунду затевать... задача такова, чтобы избавиться от зависонов при приеме сообщений и потерь каких-либо данных из регистров конфигурации 1С. А если писать параллельно изменения в SQL... смысл задачи теряется...
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017629
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chatmа движения заново формировать в базе приемнике.

Спасибо за мысль, но, к сожалению, не айс. К примеру, провелся документ "Расходная накладная" в первой базе, сгрузили его во вторую, а там остатков по номенклатуре нет. В итоге, он висит непроведенный и движений не даст. Дальше-больше... Руководство вскоре откажется от такой системы, а прог прослывет непрофессионалом...
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017636
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманв виндоуз есть MSDTC.

В 1С обмен реализован на кодах узлов. Т.е., поменялся документ, принадлежащий какому-то узлу - система понимает и выгружает изменения. Другой узел уже не сгрузится, он не участвовал. Идея 1С-ников неплоха, только звери ждут и напрягаются, пока заблокированная на запись изменений таблица не освободится. Элементарно, они без этого документы проводить не смогут.
Прикол в том, что все движения происходят внутри базы, методами языка 1С. Вот я и думал, создавая этот топик, как можно такие методы организовать на SQL, чтобы избежать длительных блокировок. По типу синхронного Mirroring. Провел в главной базе - отдал изменения филиалам, провел в филиале - автоматом упало в главную.
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017640
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenесли вкратце - это того не стоит, имхо
Вы 1С-ник? перед Вами уже стояли такие задачи?
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017643
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно ли я понял, что суть лог шиппинга и мирроринга - тупое создание копии, не подразумевающее внесение изменений в нее в онлайн?
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017646
Фотография Kot358
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chatmвыгружать данные по правилам обмена во внешний файл.

Почти если НЕ одно и тоже, что и РИБ...
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38017790
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kot358Last1Cmenесли вкратце - это того не стоит, имхо
Вы 1С-ник? перед Вами уже стояли такие задачи?

да, извините сильно долго обьяснять почему подобная система окажется настолько нежизнеспособной что время затраченное на обмен штатными средствами покажется мелкими неудобствами
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38018114
chatm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kot358,

покопайте в тему "отложенные движения", возможно в Вашем случае это не самый плохой вариант
...
Рейтинг: 0 / 0
1C + SQL система распределенных узлов и транзакций
    #38018286
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chatmKot358,

покопайте в тему "отложенные движения", возможно в Вашем случае это не самый плохой вариант
Ну это то, про что я писал, назвав асинхронной репликацией. Допустим часть этих "отложенных движений" может потеряться в сети по невыясненным обстоятельствам. В случае не "отложенных" то все не выполнилось везде. А теперь часть выполнилась, а часть нет.
Данные на серверах имеют отличия, которые, скорей всего мешают, новым "отложенным движениям" : разница на серверах в данных увеличивается.

Вообще обнаружили, к примеру, что данные на серверах не равны. Как узнать какие данные правильные, какие нет? Как теперь сделать как должно было бы быть, если бы все правильно работало?

Даже если разработаны специальные журналы что и когда откладывалось, что передалось по сети, что не выполнилось и почему, все равно разобраться во всем этом админу буит не так тривиально. Ведь, к примеру, юзера могли ввести по новой часть того чего не оказалось. И теперь это надо отменить, но админ то про это не знает.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 1C + SQL система распределенных узлов и транзакций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]