|
v7: android и 1С 7.7. | ☑ | ||
---|---|---|---|---|
0
tantranah
22.03.21
✎
19:53
|
Друзья, коллеги. Прошу помощи.
Подскажите как проще решить следующий бизнес-процесс. 1. На производстве выпустили единицу готовой продукцию, и внесли ее в 1С через документ "Выпуск продукции" (но в принципе не важно как внесли). 2. Распечатали наклейку со штрихкодом, в котором зашиты НомерДок и ДатаДок (или еще что-то, не важно), приклеили ее к продукции. 3. После, продукт физически привезли на склад готовой продукции. 4. Кладовщик своим Андроид телефоном сканирует этот штрихкод. И в 1С формируется "Приход на склад готовой продукции". И вот тут начинается загвоздка. Думал посылать с телефона http запрос, в котором собственно, и слать эти ДатаДок и НомерДок (и что там еще). Установил на серваке Apache с ПыхПых, и не придумал пока ничего лучше, как: 1. Посылаю запрос к серваку, с ДатаДок и НомерДок и т.д. 2. PHP создает на серваке новый файл(или перезаписывает существующий), с принятыми значениями. 3. 1С, через ОбработкаОжидания(), каждые 0,5сек. проверяет, не изменились ли данные в файле, или время создания файла. 4. На основании данных в файле находит Док"Выпуск продукции" ну и формирует Приход. Выглядит это как "свинья на костылях"!!! Даже для микроконтроллеров это моветон(работать на цикле, а не на прерываниях). Посоветуйте. Как в 1С отловить событие, прихода новых данных на сервер и получить их? Ну очень не хочется свой сервлет писать. |
|||
1
NorthWind
22.03.21
✎
20:06
|
Вариантов несколько.
1. Оставить так. Для "малой крови" применительно к 1С это не так уж и плохо. 2. Написать ВК, которая будет дергать ОбработкуВнешнегоСобытия в 1С. Достаточно сложно. 3. Ничего не писать, а попытаться найти готовый продукт. Проблема в том, что поддержка 7.7 разными вендорами типа Клеверенса в основном уже прекращена, поэтому могут быть сложности. Но, может, и повезет. |
|||
2
NorthWind
22.03.21
✎
20:10
|
Правда, мне не очень понятно, зачем нужен пых. Есть же всякие Barcode Harvester (http://interestingsolutions.ru/BarcodeHarvester.aspx), которые прикручиваются к 1С гораздо более простыми способами
|
|||
3
Cthulhu
22.03.21
✎
20:10
|
в отдельном юзере-роботе в фоне на обработке ожидания выполнять всякие всякости - эо как раз норм.
ну или можешь попробовать коня на костылях (Злопчинский, аууу!) - рдп, спец.юзер со спец.мордой под разрешение рдп-клиента |
|||
4
NorthWind
22.03.21
✎
20:10
|
это один из путей пойти вариантом 3
|
|||
5
NorthWind
22.03.21
✎
20:14
|
еще один варик (от Злопа :-) - поставить на телефон RDP, а под него в 1С написать простенькую морду с простенькой формой, куда будет сканироваться этот ваш штрихкод. С ТСД бы точно прокатило, с телефоном не знаю, надо проверять.
|
|||
6
NorthWind
22.03.21
✎
20:17
|
+ (3) об этом первым сказал. Невнимательно прочел пост.
|
|||
7
Garykom
гуру
22.03.21
✎
20:21
|
1С 7.7 простая как валенок, пиши напрямую в бд
|
|||
8
Провинциальный 1сник
22.03.21
✎
20:30
|
А можно на дельфи написать агента, который бы слушал по http и по ole коннектился к 1с и делал нужные операции. Я как-то много лет назад пробовал - вполне реально, работать с данными 1с через ole из дельфи.
|
|||
9
Builder
22.03.21
✎
20:34
|
1С, через ОбработкаОжидания() вполне работоспособный вариант.
Только смысл дергать файл каждые полсекунды? Раз в минуту вполне достаточно. Ну и лучше не писать все в 1 файл, а на каждый документ (задание) делать свой файл и после выполнения его удалять. |
|||
10
Злопчинский
22.03.21
✎
20:41
|
||||
11
Sam1C
22.03.21
✎
20:55
|
(0) Купить однопользовательскую 8-ку, опубликовать один простой http-сервис и по COM – соединению в 7.7 формировать документ
|
|||
12
Garykom
гуру
22.03.21
✎
20:56
|
(8) Оцени сколько такой писать на Delphi?
И да на Golang я написал за полдня, у меня не для приложения на андроид а чтобы 1С 8 могла по HTTP как будто через OData с базой 1С 77 работать |
|||
13
tantranah
22.03.21
✎
21:03
|
(9) Ну, тут, как бы хотелось кладовщику дать сразу же фидбэк на телефон, что мол принято.
А пыхпых и так затирает предыдущий файл с тем же именем. Всем спасибо друзья. Наверное сейчас, пока товарооборот мал (около 100 ед. товара в смену) напишу как задумал. Вы меня успокоили. Запущу. А там наверное уже или ВКшку нарисую... А может так и оставлю, если будет норм. Еще раз всем большое спасибо. |
|||
14
NorthWind
22.03.21
✎
21:33
|
(12) Серваки в виде компонент Indy есть готовые, OLE подергать вроде тоже недолго. Думаю, в те же полдня можно уложиться, если быть в материале.
|
|||
15
Builder
23.03.21
✎
00:00
|
(13) Тут смысл писать в разные файлы в том, что бы создать очередь. Если вдруг не запущен 1с, то все задания будут накоплены и обработаны после его запуска.
|
|||
16
Провинциальный 1сник
23.03.21
✎
06:45
|
(9) Сложность в том, что обработка ожидания будет вызываться у каждого пользователя. И тут надо будет каким-то образом выделять сеанс, имеющий право загружать данные из файлов. Чтобы не получилось так, что сразу у двух юзеров сработала обработка ожидания в один момент времени и файл не загрузился дважды..
|
|||
17
NorthWind
23.03.21
✎
08:09
|
(16) ну, не бином ньютона прямо скажем. В тупейшем случае можно по имени пользователя, в более умном - по названию набора прав.
|
|||
18
Builder
23.03.21
✎
09:29
|
(16) Для этого делают отдельного пользователя-робота и ОбработкаОжидания() в обработке, а не в глобальном модуле.
|
|||
19
serpentt
23.03.21
✎
10:34
|
Мы используем MSMQ и дллку v7Queue.dll
|
|||
20
Garykom
гуру
23.03.21
✎
11:00
|
(18) (19) Минус что должен быть запущенный сеанс 1С 7.7 что напряжно
Намного лучше сразу писать в базу |
|||
21
serpentt
23.03.21
✎
12:46
|
(20) Это палка о двух КОНЦАХ. Решение которое ЛУЧЬШЕ выбирает каждый сам
|
|||
22
ДедМорроз
23.03.21
✎
13:06
|
Напрямую писать в базу 1с не совсем корректно,но другой путь-это специализированный сеанс 1с.
Если не хочется обработку ожидания,то можно из 1с посылать запрос на сайт,то есть в php,который завершается,когда приходит событие или по некоторому тайм-аут,чтобы 1с снова его послала. Если же приходит запрос,то в ответе мы получаем в 1с то,что нужно обработать,а потом в другом запросе передаём ответ от 1с. Тут,опять же,можно какое-то время ждать,когда понадобится что-то спросить. Также можно 7.7 как Com-сервер даже из того же php открывать,но тут,во-первых,граница процесса,во вторых,кривая реализация Com в 1с,когда создаётся полный сеанс с невидимыми формами. Ну и,если уж очень хочется быстро,то внешняя компонента или DDE, который 7.7 умеет, опять же,в отдельном сеансе,и лучше на отдельной машине. Также можно rdp и на Андроиде открыть сеанс самой 1с. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |