|
Связь между двумя базами 1С 8 | ☑ | ||
---|---|---|---|---|
0
yaroshenko_p
24.09.19
✎
09:59
|
Доброго времени суток, уважаемые форумчане!
Прошу вас просветить меня по одному теоретическому вопросу. Есть две базы 1С 8.3. Есть необходимость наладить оперативное взаимодействие между ними в реальном времени. Например, при проведении в первой базе документа "ЗаказКлиента" обработчик события проведения должен открыть вторую базу, создать в ней документ "ЗаказКлиента" - копию проводимого в первой базе и вернуть в первую базу информацию о том, удалось ли создать во второй базе документ. Если не удалось, то в первой базе должна сгенериться ошибка проведения заказа, и заказ должен остаться непроведенным. Я знаю только один способ общения с другой базой 1С 8 - это использование COM-объектов. Но этот способ ненадежен - из-за каких-нибудь внешних причин (например, автоматических обновления операционной системы на сервере) COM-объекты вдруг могут перестать работать. Подскажите, пожалуйста, есть ли другие способы, позволяющие решить эту задачу? Заранее благодарю. |
|||
1
shuhard
24.09.19
✎
10:03
|
(0)[есть ли другие способы, позволяющие решить эту задачу?]
безусловно: планы обмена УРБД веб сервисы |
|||
2
fgaabbb
24.09.19
✎
10:04
|
использование планов обмена - меняйся данными с другой базой по событию.
|
|||
3
ДенисЧ
24.09.19
✎
10:05
|
При проведении по кому лазить - это очень плохая идея. За это очень часто отрывают ППП автору такого решения.
|
|||
4
yaroshenko_p
24.09.19
✎
10:18
|
(1) shuhard, мне надо, чтобы именно во время проведения выл отправлен запрос другой базе и получен от неё ответ, и в зависимости от этого документ был проведен или не проведен. Первая база - УТ11.4, вторая база - это УПП 1.3, обычные формы. Её не получится опубликовать на веб-сервере.
|
|||
5
ДенисЧ
24.09.19
✎
10:19
|
(4) "мне надо, чтобы именно во время проведения выл отправлен запрос другой базе и получен от неё ответ"
Тебе отрежут ППП за такое решение, зуб даю. |
|||
6
ДенисЧ
24.09.19
✎
10:19
|
(4) " вторая база - это УПП 1.3, обычные формы. Её не получится опубликовать на веб-сервере."
И снова обман... Все вокруг врут, как говорил один доктор... |
|||
7
yaroshenko_p
24.09.19
✎
10:20
|
ДенисЧ, а какие еще варианы?
|
|||
8
ДенисЧ
24.09.19
✎
10:21
|
(7) Отказаться от такой дурной идеи. И делать на очередях.
|
|||
9
Oftan_Idy
24.09.19
✎
10:22
|
(4) "мне надо, чтобы именно во время проведения выл отправлен запрос другой базе и получен от неё ответ, и в зависимости от этого документ был проведен или не проведен. "
Вам этого не надо. Вот вам дают же совет, остановитесь. "Её не получится опубликовать на веб-сервере." И что же мешает? |
|||
10
yaroshenko_p
24.09.19
✎
10:23
|
(7) ДенисЧ, Вы не могли бы пояснить, что значит "на очередях"?
|
|||
11
dmt
24.09.19
✎
10:30
|
Вместо КОМа использовать оДату.
|
|||
12
ДенисЧ
24.09.19
✎
10:31
|
(10) Ставить запрос на создание документа в другой базе. Асинхронно проверять его результат. По результату принимать решение.
В транзакции делать какие-то соединения с ненадёжным (да хоть и с надёжным) внешним источником - за такое не только с работы, но и в окно 10го этажа вылететь можно |
|||
13
ManyakRus
24.09.19
✎
10:34
|
(3) если COM-объект хранить (в модуле с галочкой "повторное использование")
а не соединяться каждый раз то будет работать быстро и хорошо :) |
|||
14
ДенисЧ
24.09.19
✎
10:35
|
(13) Не будет. КОМ в 8.3 сдохнет минут через 5. (В 8.2 дох через 20 минут)
|
|||
15
dmt
24.09.19
✎
10:37
|
(14) это если его не дергать?
|
|||
16
Креатив
24.09.19
✎
10:41
|
(11)Даже интересно стало, что такое "оДата"?
|
|||
17
ДенисЧ
24.09.19
✎
10:57
|
(16) https://yandex.ru/search/?text=1с%20oData&clid=2233627&lr=14
(15) Я дёргал каждую минуту. Правда, это был не 1с-com, а ADODB, но разницы никакой |
|||
18
Oftan_Idy
24.09.19
✎
11:00
|
(17) Тогда уже лучше чистый веб-сервис, он же полегче и потоньше.
Но один хрен это говнокодинг. При проведении этот коннект периодически будет устраивать ад в базе |
|||
19
Консультант Баранов
24.09.19
✎
11:01
|
А если в документу УТ добавить реквизит ПроведеноВУПП и в плане обмена сделать связь с проведением документа.
|
|||
20
3achem
24.09.19
✎
11:16
|
(0) Сторонний веб-сервис (с очередью), который будет обменивать данные между базами. Всё по HTTP.
|
|||
21
yaroshenko_p
24.09.19
✎
11:32
|
(20) 3achem, это надо будет публиковать обе базы на веб-сервере?
|
|||
22
ASU_Diamond
24.09.19
✎
11:37
|
(4) а что там такое во второй базе делается, что это критично для проведения в первой? может правильнее пересмотреть построение системы?
|
|||
23
ptiz
24.09.19
✎
11:58
|
(21) Веб-сервисы появились аж в 8.1, до публикации базы целиком.
|
|||
24
SamHinkie
24.09.19
✎
12:02
|
(0) а зачем такие извращения?
ну то есть, почему нужно узнать удалось создать документ или нет? вопрос с префиксами и номерами? |
|||
25
ДенисЧ
24.09.19
✎
12:05
|
(24) Может, там у него резервирование идёт... Или сраз выпуск/упаковка продукции...
|
|||
26
ASU_Diamond
24.09.19
✎
12:10
|
(25) тогда правильнее формировать документ во второй базе.
|
|||
27
ДенисЧ
24.09.19
✎
12:12
|
(26) Так он там и хочет формировать )))
А в первой у него фронт для покупателей... |
|||
28
Креатив
24.09.19
✎
12:17
|
Всё равно какая-то ерунда в проектировании.
|
|||
29
Ёпрст
24.09.19
✎
12:21
|
Правильное решение - выкинуть одну базу целиком и весь учет вести в одной базе.
А так да, пусть мучается. А потом полёт, с 10 этажа |
|||
30
OpKc
24.09.19
✎
12:24
|
(0) какова цель вот этого: "Если не удалось, то в первой базе должна сгенериться
ошибка проведения заказа, и заказ должен остаться непроведенным"? Почему существует такая зависимость? |
|||
31
Креатив
24.09.19
✎
12:26
|
(29)Может ещё распределёнка понадобиться. Автор не сказал, для чего вся веселуха?
|
|||
32
Mikhail Volkov
24.09.19
✎
12:41
|
(0) > COM-объекты вдруг могут перестать работать.
Бывает, например, у 2-й базы платформу обновят... У меня Альфа-Авто с базой партнера УПП по COM лет 7 обмениваются. Правда не каждый день случается. Главное номер документа правильный вернуть из 2-й базы, это только COM может. |
|||
33
Oftan_Idy
24.09.19
✎
13:05
|
(32) "Главное номер документа правильный вернуть из 2-й базы, это только COM может."
Почему именно у COM такие сверх способности? Почему REST не подходит? |
|||
34
_Дайвер_
24.09.19
✎
13:10
|
Внешние источники данных? Базы же на 1 сервере работают?
А вообще это все бред какой-то |
|||
35
3achem
24.09.19
✎
13:17
|
(21) Нет, ничего делать с базами не надо
|
|||
36
VladZ
24.09.19
✎
13:30
|
(0) "при проведении в первой базе документа "ЗаказКлиента" обработчик события проведения
должен открыть вторую базу" - сразу фтопку! Автор этого предложения понятия не имеет, как работает 1с. Шли его в... тундру. COM старайся не использовать. Лучше веб-сервисы. |
|||
37
yaroshenko_p
24.09.19
✎
13:53
|
Господа, причина здесь в общих чертах такая - на базе УТ11 разработан некий функционал, которым клиент очень хочет воспользоваться. Но он работает на УПП. Съезжать с УПП и переходить на УТ11 он ни в какую, и нам перерабатывать функционал под УПП тоже долго и несерьезно. Поэтому решили так - те сотрудники клиента, которые должны работать с функционалом, будут с ним работать в УТ11, остальные сотрудники останутся на УПП. Но функционал рассчитан на то, что в этой же базе создаются заказы. Но при этом ирнформация об актуальных остатках, логистика и т.д. ведется по-прежнему в УПП. Поэтому и надо, чтобы при создании заказа в УТ11 создавалась его копия в УПП, проводилась, делалось резервирование - и после этого заказ проводился в УТ11.
|
|||
38
OpKc
24.09.19
✎
13:56
|
(37) получить актуальные остатки, логистику и т.д. из УПП и выполнить нужные проверки перед записью заказа в УТ не предлагать?
|
|||
39
VladZ
24.09.19
✎
14:00
|
(37) Допустим.
А теперь объясни, что это за функционал такой, который нельзя перенести на УПП. |
|||
40
ASU_Diamond
24.09.19
✎
14:12
|
(37) разработать функционал ввода заказов как в УТ это "долго и несерьезно"? Конечно серьезней это рассматривать ком-соединение при проведении документа...
|
|||
41
yaroshenko_p
24.09.19
✎
14:20
|
(38) OpKc, предлагать. Но такой способ не даст нужной оперативности, если два пользователя в УТ11 в один момент станут проводить заказы на один и тот же товар. Стопануть одного из них должна именно УПП.
(37) Это работа с телефонией (обзвон клиентов, прослушивание звонков, бизнес-процессы обзвона и т.д.) Одна из функций - прямо из отчета по обзвону генерируется заказ клиента. Реализовано все это на управляемых формах под УТ11. Поэтому перенос на УПП - дело долгое |
|||
42
ASU_Diamond
24.09.19
✎
14:27
|
(41) тогда надо делать чтобы из отчета формировался документ в УПП, запускался функционал и после того как получено разрешение формировать заказ в УТ.
|
|||
43
Затейник
24.09.19
✎
14:57
|
(37) Совсем что ли рехнулись? Проводить документ и залезать в другую базу. Переносите нужный функционал в УПП. А то сейчас выяснится что менеджеру нужен 1 документ, в котором он заполняет 2 реквизита.
|
|||
44
yaroshenko_p
24.09.19
✎
18:51
|
(35) 3achem, не могли бы Вы вкратце пояснить, как должен быть организован сторонний веб-сервис с очередью?
|
|||
45
craxx
24.09.19
✎
21:31
|
(41) бред бредовый. что мешает в упп управляемые формы врубить и работать без извращений?
|
|||
46
MakaMaka
24.09.19
✎
21:36
|
(0) Да, есть метод, он называется примерно так: НРЧТХ - надо рассказать что ты хочешь. Не надо говорить что ты будешь делать, надо цель свою обозначить. В 95% задачах, когда надо что то где то генерить, то это делать вовсе не нужно, и задача решается управленческим решением, а не бредом инженера, который через com 2 базы соединяет.
|
|||
47
MakaMaka
24.09.19
✎
21:40
|
(44) Да не нужна тебе эта порнуха. Зачем ты хочешь гуиды резервировать?
|
|||
48
MakaMaka
24.09.19
✎
21:40
|
Вот просто объясни для чего тебе резервировать гуиды? Только не говори что просто хочется.
|
|||
49
rsv
24.09.19
✎
21:56
|
(0) ну а почему нет ? Com заявлен как один из
Вариантов api. Только засунуть его в перед записью ...где Транзакции нет и норм |
|||
50
MakaMaka
24.09.19
✎
22:22
|
А как ТС узнает документ проведется или нет? перед записью, это начало долго пути, на котором могут быть препятствия
|
|||
51
Сияющий в темноте
24.09.19
✎
23:48
|
вообще-то,для этого в первой базе рисуют бизнес-процесс или фоновое задание.
ему мы отправляем заказ,то есть вместо проведения сохраняем его и пишем ссылку в регистр. фоновое задание читает данные из регистра,лезет в другую базу и тут уже не важно,насколько это быстро,просто,потом из другой базы приходит ответ,и в зависимости от ответа фоновое или проводит заказ или пишет ошибку в регистр,чтобы пользователь потом ее увидел. |
|||
52
Restart
25.09.19
✎
00:31
|
Разберись с SQL. Создай триггер и пусть SQL сама там синхронизирует.
Как то так http://catalog.mista.ru/public/235474/ |
|||
53
ASU_Diamond
25.09.19
✎
07:18
|
(52) синхронизация тут не нужна, читай тему
|
|||
54
Dmitry1c
25.09.19
✎
07:23
|
(37) наркомания, товарищ.
уж лучше сделайте в УПП аналогичный функционал, чем такую кашу варить |
|||
55
ASU_Diamond
25.09.19
✎
07:30
|
(+54) В УПП нужен только отчет, данные для которого через COM из УТ и таскать.
|
|||
56
ink-nsk
25.09.19
✎
07:36
|
2(0)(37) тема указана не верно. Нужно переименовать:
"Как вечно доить клиента-лоха?" Раньше ржали над таксистами в нерезиново: "А дорогу покажешь" Теперь появились спецы автоматизаторы: "А как сделать научишь/расскажешь?" |
|||
57
ptiz
25.09.19
✎
09:04
|
(41) "если два пользователя в УТ11 в один момент станут проводить заказы на один и тот же товар. Стопануть одного из них должна именно УПП. " - и в чем проблема?
Первый пользователь жмет кнопку в УТ 11 -> пошло обращение к УПП, там все проверки, с проведением документов, транзакциями. Второй пользователь жмет кнопку в УТ 11 -> пошло обращение к УПП, там такие же проверки. Или одновременно в УТ 11 тоже проверяются остатки? Тогда блокировку и в УТ 11 тоже можно наложить. Да, будет подольше, т.к. будет включать все проверки УПП, но куда деваться. |
|||
58
ДенисЧ
25.09.19
✎
09:05
|
(57) Ещё один... При проведении лезть в другю базу - за это приличные люди отрезают ППП.
|
|||
59
AneJIbcuH
25.09.19
✎
09:12
|
(58) +100500
|
|||
60
3achem
25.09.19
✎
09:25
|
(44) RabbitMQ или любой другой брокер сообщений (хоть самописный на связке pyhton + sqlite). Схема у вас простая База А (передаёт) -> База Б (слушает). Только в схему добавляется брокер База А -> Брокер -> База Б. И никаких com объектов и прочего мусора.
Я только из-за этого топлю за внешних брокеров, чтоб всё без com и желательно без выкладки базы на веб сервис. |
|||
61
d4rkmesa
25.09.19
✎
09:36
|
(37) Функционал для УПП1.3/УТ10 на УФ встраивается только в путь. Или у вас актуальная БСП используется? Я вот смотрю, как Wizard для УПП сделал свою доработку, там тоже и из БСП куски, обычных форм нет. Все возможно. Конечно, платформа 8.3 в режиме совместимости 8.2.16.
|
|||
62
Mikhail Volkov
26.09.19
✎
09:00
|
(33) REST в 8.3 появился, не пробовал. Как с помощью REST получить номер для документа другой базы партнера?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |