Имя: Пароль:
1C
1C 7.7
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с.
Программист всегда исправляет последнюю ошибку.