|   |   | 
| 
 | 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с. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |