|
Получение данных сторонней программой из 1С | ☑ | ||
---|---|---|---|---|
0
bodri
12.09.14
✎
10:23
|
Есть рабочая база 1С (серверная и куча узлов РИБ) и программа которой нужно по запросу получить реальный остаток одного товара из 1С в режиме реального времени.
|
|||
1
_fvadim
12.09.14
✎
10:24
|
через COM или web - как больше нраицца
|
|||
2
Лодырь
12.09.14
✎
10:26
|
(1) webservice универсальнее чем com.
|
|||
3
ДенисЧ
12.09.14
✎
10:27
|
ком, веб-сервис, прямой доступ к базе - по степени извращённости заказчика
|
|||
4
_fvadim
12.09.14
✎
10:29
|
(2) согласный, но в случае с com не нужно разворачивать web-сервер и править конфу.
|
|||
5
Соло
12.09.14
✎
10:31
|
в 7.7 был ещё DDE сервер, извращенно конечно, но бухитоги в екселе можно было посмотреть :)
|
|||
6
_fvadim
12.09.14
✎
10:31
|
к (3). прямое соединение не ест клиентские лицензии.
|
|||
7
_fvadim
12.09.14
✎
10:32
|
это как преимущество перед com и web
|
|||
8
bodri
12.09.14
✎
10:33
|
Подскажите где прочитать про ком.
|
|||
9
Лодырь
12.09.14
✎
10:41
|
(8) у тебя внешняя программа в какой среде работает?
|
|||
10
13_Mult
12.09.14
✎
10:42
|
(8) Например тут ) http://msdn.microsoft.com
|
|||
11
bodri
12.09.14
✎
10:52
|
(9) Если честно даже не в курсе, у нас есть чувачек который её программирует.
|
|||
12
Лодырь
12.09.14
✎
10:54
|
(11) Ну так ты спроси. А то ты предложишь ему через COM получать данные, а окажется, что он на линуксе живет.
|
|||
13
bodri
12.09.14
✎
10:57
|
(12) под виндой работает (Win 2008)
|
|||
14
OnCheck
12.09.14
✎
10:59
|
Я бы предложил вебсервисом.ИМХО самый лучший вариант.
По ресурсам самый незатратный. Перспективный. Ошибиться сложнее |
|||
15
Лодырь
12.09.14
✎
11:00
|
Подумай куда и как он будет подключаться? Будет ли стоять 1Ска на каждой машине с установленной внешней программой?
Вебсервис гораздо удобнее. Из затрат всего то написание 1 функции + поднять вебсервер. |
|||
16
bodri
12.09.14
✎
12:53
|
(15) 1С стоят на компах со сторонней программой стоять не будет. Веб-сервер вариант для одной базы которая в офисе (серверная), а остальные базы РИБ (65 шт) они стоят локально на точках не вариант.
|
|||
17
FN
12.09.14
✎
13:00
|
(16) учитывая кол-во баз рекомендую завести отдельное хранилише (sql, web - что удобнее), куда каждая база будет слать по расписанию либо остатки либо остатки на начало периода + движения.
При запросе к этому хранилищу отдавать сами остатки и "момент актуальности" этих остатков. я бы на веб запилил - доступ и из 1С и из браузера. Универсально. |
|||
18
Лодырь
12.09.14
✎
13:00
|
Хм, совсем все запутывается.
Вопрос, у тебя внешняя твоя прога она куда цеплятся то должна? в центральную? или в переферийки? Почему ты решил что вебсервер на переферийных базах не подойдет? |
|||
19
Лодырь
12.09.14
✎
13:01
|
(17) Дык стопудово есть центральная база. Пусть в нее и шлет все и из нее и берет данные.
|
|||
20
FN
12.09.14
✎
13:07
|
(19) судя по описанию у него что-то типа сети магазинов, где на каждой точке периферийка.
Если часто слать в центр стандартным методом через РИБ - в центре работать будет нереально. (16) если я угадал - то лови еще один вариант: отказать от перифериек, всех загнать в одну базу терминально. Тогда все остатки будут в центре всегда онлайн. Но тут узкое место - блокировки и наличие инета. |
|||
21
дедушка Вах
12.09.14
✎
13:09
|
по штучке.пицот исполнителям/час
ЗЫ может за мес. и управятся справочники причесать к синхронизации |
|||
22
Лодырь
12.09.14
✎
13:23
|
(20) Подождем топикстартера, что он нам поведает.
|
|||
23
Fragster
гуру
12.09.14
✎
13:27
|
(20) а что нереального-то? у меня 60 узлов периодичность раз в полчаса примерно. в центре еще 100 юзеров сидят при этом.
|
|||
24
Лодырь
12.09.14
✎
13:34
|
(23) не пробовали уменьшить периодичность до 5 минут? у нас живет без проблем. юзеры довольны.
|
|||
25
Fragster
гуру
12.09.14
✎
13:41
|
(24) по некоторым данным (по которым требуется оперативность) так и есть - по отдельному плану обмена. остальное просто не нужно так быстро в ЦО.
|
|||
26
bodri
12.09.14
✎
14:03
|
(20) угадал
Схема баз у меня такая Рабочая база -> Обменная база -> Периферийные базы такая схема сделана из-за блокировок Вот с периферийных и надо брать актуальную информацию. Но информацию не по всем товарам, а по 1-му. Типа справки. У меня настроена выгрузка 3 раза в день всего остатка. Но руководству этого мало. |
|||
27
bodri
12.09.14
✎
14:27
|
Программер который облаживает прогу предложил вариант обмена файлами, ему якобы проще. в 1С я делаю проверку на этот файл каждые 5 сек. и отдаю другой файл с остатком.
На сколько жизнеспособна данная идея? Мне что-то она не сильно нравится. |
|||
28
ДенисЧ
12.09.14
✎
14:29
|
(27) Облажи своего программера матом.
|
|||
29
МихаилМ
12.09.14
✎
14:29
|
(27)
пародия на "named pipes". |
|||
30
FN
12.09.14
✎
14:35
|
(27) работать будет.
Хотя я бы сделал так: в конфе (на всех 65-ти базах) подписка на событие при проведении дока - если в доке есть товар, остатки по которому надо отслеживать пишем в базу флаг "нужно обновить данные" (пусть даже константа). Регламентное задание проверяет флаг и при необходимости обновляет остатки во внешней БД. В случае удачного обновления - флаг сбрасывается. Вместо флага даже лучше отдельный регистр/справочник - сразу писать туда товары, по которым нужно обновление. В качестве бд можно сайтик с формочкой на пхп "Номера магазина", "Код товара", "остаток" - сразу есть обратная связь обновили или нет. Можно и просто в скуль писать через адо - тут уже что лучше знаешь - на том и пиши. Можно конечно и файлики на фтп/smb кидать - но тогда еще нужен сервис, которое это будет проверять и импортировать + учесть возможность файловых блокировок/неполной закачки на фтп и тп. ИМХО. |
|||
31
bodri
12.09.14
✎
14:39
|
(30) спс, идея очень интересная.
|
|||
32
Fragster
гуру
12.09.14
✎
14:44
|
(30) а почему сразу из документа фоновое задание не стартовать?
|
|||
33
Fragster
гуру
12.09.14
✎
14:45
|
причем лучше на передзаписью - призаписи регистра - чтобы контролировать еще и отмену проведения и изменение. но все равно фигня какая-то
|
|||
34
FN
12.09.14
✎
14:46
|
(32) а если связи нет? а если проводят пакетно 100 доков?
проще флаг использовать и порциями слать. (33) не принципиально где - главное в транзакции, что бы при откате флаг вернулся в исходное положение. |
|||
35
Fragster
гуру
12.09.14
✎
14:48
|
(34) если нет связи - само себя стартует через паузу :)
|
|||
36
Fragster
гуру
12.09.14
✎
14:48
|
опять же - зачем возвращать флаг? план обмена решает. если нет ничего на обмен - ничего и не передавать
|
|||
37
bodri
12.09.14
✎
14:54
|
(36) план обмена решает если 1С->1С, а вот если 1С->прога, здесь всё туманно.
|
|||
38
FN
12.09.14
✎
14:55
|
(36) при чем тут план обмена? то что я советую - это внешнее место хранения данных - не 1С.
Просто выгрузка не по регламенту а по событию+регламент. Ну или если узких мест нет - можно просто по событию - так вообще полный реалтайм. Как именно описать событие на 1С - вопрос вторичный. |
|||
39
Fragster
гуру
12.09.14
✎
15:00
|
(37) планы обмена заруливают в любом случае не-онлайн обмена. в случае онлайн - заруливают вебсервисы, но тут стабильность и скорость канала важна, а то тормозить будет.
(38) план обмена + регл задание, которое по этому плану обмена генерит запросы в вашу внешнюю прогу раз в 10 секунд, допустим. |
|||
40
FN
12.09.14
✎
15:06
|
(39) ты предлагаешь использовать план обмена как индикатор необходимости выгрузки?
Тут есть трабл - например создали документ расхода на 10 единиц - в план очередь на обмен попадает этот документ - регламентное задание обновляет остатки. потом документ снимают с проводки - очередь на обмен не меняется - документ все равно нужно отправлять - соответственно регламентная процедура не выполняется - имеем неправильные остатки во внешней бд. То есть нужна какая-то чистка плана обмена при выполнении регламентного задания. Мне проще регистр/справочник завести. |
|||
41
Fragster
гуру
12.09.14
✎
15:07
|
(40) и как это решит константа? провели документ - константа взвелась. провели другой докумнет - она осталась. Распровели первый документ - что делать с константой?
|
|||
42
Fragster
гуру
12.09.14
✎
15:09
|
а про "чистку" плана обмена (одна строка кода вообще-то) написано, например, в проф. разработке неплохо. Да и вообще про организацию обменов/интеграций с внешинми системами
|
|||
43
FN
12.09.14
✎
15:09
|
(41) при любом изменении остатка константа "взводится", а сбрасывается только при удачной выгрузке. Просто как двери.
|
|||
44
Fragster
гуру
12.09.14
✎
15:10
|
(43) и чем план обмена тогда не устраивает?
|
|||
45
FN
12.09.14
✎
15:10
|
вообщем это не принципиально - кому с чем удобнее работать - то тем и пользуется. Хоть файлик на диске Це создавать.
|
|||
46
FN
12.09.14
✎
15:11
|
(44) в контексте (42) всем устраивает.
см (45) |
|||
47
Garykom
гуру
12.09.14
✎
16:59
|
(0) дык все просто заводим спецпользователя в базу при запуске от которого запускается процедурка и выливает остатки куда нуна ))
из сторонней программы остается только запустить 1С с определенным пользователем и дождаться ответа... |
|||
48
Garykom
гуру
12.09.14
✎
17:00
|
(47)+ работает где угодно, никаких сервисов не нуна писать и через com обращаться, все просто и прозрачно
из минусов тока тормоза на запуск 1С |
|||
49
SUA
12.09.14
✎
18:14
|
(48) из минусов рбд тут
(0) информация по 1 конкретному товару, а на остальные пофигу... жестоко рег задания на старых файловых базах это тоже зло проще тогда наверное обработчик ожидания и глобальную переменную (или параметр сеанса) прикручивать к пользователям: изменил остаток - выгрузи, и при начале/завершении работы тоже для надежности |
|||
50
Garykom
гуру
12.09.14
✎
18:42
|
(49) причем тут минус по РБД не понял?
|
|||
51
APXi
12.09.14
✎
19:08
|
||||
52
FN
12.09.14
✎
19:11
|
(51) тут скорее наоборот - куча баз и одно место просмотра остатков
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |