Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Как на C# сгенерировать внешнее событие и отловить его в 1С

Как на C#  сгенерировать внешнее событие и отловить его в 1С
Я
   andrewch60
 
27.04.18 - 15:50
Как со сторонней программы (желательно на C#) сгенерировать внешнее событие и отловить его в 1С и ,если это возможно, вернуть результат обработки  переданных с событием данных.
 
 
   xxTANATORxx
 
1 - 27.04.18 - 15:57
подними веб сервис на стороне 1С
   Garykom
 
2 - 27.04.18 - 16:05
(0) "Ъ" же
   Garykom
 
3 - 27.04.18 - 16:06
   Garykom
 
4 - 27.04.18 - 16:07
   Cool_Profi
 
5 - 27.04.18 - 16:18
Сейчас придёт Serginio и начнёт агитировать
   andrewch60
 
6 - 27.04.18 - 16:31
(1) не приходилось работать с веб сервисами 1С, но чувство, что это излишне для 1го пользователя, который будет слать события 1С из своей программы
   andrewch60
 
7 - 27.04.18 - 16:37
(3) Можете мне логику решения моей задачи объяснить для начала? С# не изучал, в 1С 8 пока еще довольно слаб. Что требуется от сторонней программы для генерации события? Нужно ли 1С что то еще, чтобы это событие перехватить в ОбработкаВнешнегоСобытия , или же правильно сформированное событие 1С сразу перехватит?
   Cool_Profi
 
8 - 27.04.18 - 16:40
(7) "Можете мне логику решения моей задачи объяснить для начала? С# не изучал, в 1С 8 пока еще довольно слаб."
За рулём машины никогда не сидел. Можешь вкратце рассказать, как мне выиграть Формулу-1?
   Garykom
 
9 - 27.04.18 - 16:42
(8) Нанять профгонщика или сильный ИИ же для удаленного управления, сам буду актером.
   Вафель
 
10 - 27.04.18 - 16:43
(7) нужно написать компоненту и ее загрузить в 1с
 
 Рекламное место пустует
   Вафель
 
11 - 27.04.18 - 16:45
сторонняя программа может дергать эту билотеку напрямую или через сокеты или еще как
   Cool_Profi
 
12 - 27.04.18 - 16:45
(9) До последнего времени в формуле1 актёрами были грудастые девушки... Ты такое?
   Nyoko
 
13 - 27.04.18 - 16:45
(10) согласен, пример есть на ИТС;)
   Garykom
 
14 - 27.04.18 - 16:47
(12) Зависит от зп, чем мы хуже тайцев ))
   Cool_Profi
 
15 - 27.04.18 - 16:50
(14) У меня нет грудей. Да и не понравятся тебе волосатые груди 3го размера, да ещё с седыми волосами...
   Garykom
 
16 - 27.04.18 - 16:52
(15) Ыыыы
   Garykom
 
17 - 27.04.18 - 16:53
(16)+ Нельзя же так, сложно упав под стол от смеха писать
   andrewch60
 
18 - 27.04.18 - 17:04
(8) в отличии от тебя, могу) каждый день тренироваться на картингах, пока не станешь всех делать одной левой) потом постоянно ездить на формулу-1 и постоянно тереться около престарелый спонсоров(заваливать их спамом из своих мольб), уверяя ,что ты очень даже перспективен, пока кто нибудь не даст тебе шанс...) (ну или до конца дней своих...) Далее остается найти выходы на всех соперников и на отравителя Скрипаля! Договариваешься с ним, и они еще на старте( только одев шлемы, или прикоснувшись к рулю, или выпив водички, или погладив не того котика и тд )впадают в кому и ОПА  -  ты в лидерах!!!
   Cool_Profi
 
19 - 27.04.18 - 17:10
(18) Вот и спалился новичёк...
   trdm
 
20 - 27.04.18 - 17:10
Паша?
   andrewch60
 
21 - 27.04.18 - 17:18
(8) Чуть, что, то я "сидел за рулем", просто на 7ке и таких задач не ставилось, а на с# будет писать другой человек, моя задача спроектировать ,как это должно работать и решить, что я буду делать, а что и как кто то другой...
   andrewch60
 
22 - 27.04.18 - 17:29
(10) (11) Спасибо, добрый человек. Получается, что через эту компоненту мы можем как передать данные в 1С ,так и из 1С вернуть их в нашу прогу?
А есть простейший пример такого функционала? А то много кода на С# только пугает...
   trdm
 
23 - 27.04.18 - 17:35
может задачу опишешь, что-бы люд сразу нормальные советы давал.
   Вафель
 
24 - 27.04.18 - 17:37
(22) проще через веб сервис
   Garykom
 
25 - 27.04.18 - 17:48
Да и так понятно что систему заказов или нечто вроде прикручивают
   Сияющий в темноте
 
26 - 27.04.18 - 18:35
Компоненты,это все сложнл и нет гарантии,что 1с запущена,а также придется преодолевать границы процесса для передачи данных.
самый простой способ,обмен через файлы,вы складываете файл в определенную директорию и запускаете в 1с обработку,которая в фоне проверяет наличие файла,и ест его,если он есть
дален,если скорость не устроит,можно посмотреть,как пишутся httpсервисы,т.к.это надежно,просто и быстро,и не нужно следить за запущенностью 1с
   andrewch60
 
27 - 27.04.18 - 18:43
(23) Есть программа(пусть будет arcMap), в которой могут дописывать только кнопки с функциями (программист пишет их на С#). В ней визуально по координатам отображаются земельные участки с привязанными к ним номерами договоров. И есть 1С, в которой хранятся все ссылки на файлы договоров и дел по ним. Вопрос стал в том, что файлы дел, по некоторым участкам должны из 1С сохраняться в базу arcMap.
Я решил, что программист напишет функцию, которая передаст в 1С событием номер договора по выбранному участку, 1С выберет список файлов по договору на сервере и вернет их arcMap, а уже там сотрудник отметит в списке значений необходимые и они скопируются в базу arcMap.
   Вафель
 
28 - 27.04.18 - 18:45
(27) полюбому нужно веб-хттп сервис делать
   Вафель
 
29 - 27.04.18 - 18:46
можно вообще через ком если уж не хочется 1с трогать )))
   andrewch60
 
30 - 27.04.18 - 18:47
(26) Заставить 1го человека держать запущенную копию 1С не проблема... В 1С работает около 90 пользователей, а конкретно этой задачей будет заниматься 1-2.
Первоначально приходила идея делать через файл, но если есть более грамотные пути, то почему нет...
   trdm
 
31 - 27.04.18 - 18:48
(27) Вот с этого и надо начинать. Можно множеством способов сделать, вплоть до единой БД, через файловую систему, через ком-соединение и т.п.
   andrewch60
 
32 - 27.04.18 - 18:48
(28) А какой его принцип работы? Запрос - ответ...?
сложно ли реализовать? И в чем его преимущества здесь?
   Вафель
 
33 - 27.04.18 - 18:50
(32) исходя из задачи: кто-то хочеть получить инфу из 1с
 
 
   andrewch60
 
34 - 27.04.18 - 18:51
(31) очень против единой БД... Пусть себе работают в своей базе... Я отвечаю за 1С, а за arcMap женщина, которая только чай мне заварила, когда пытался обсудить варианты...
   andrewch60
 
35 - 27.04.18 - 18:53
привлек метод с событием именно тем, что 1С уже может быть запущена и не надо с какими то подключениями уже возиться
   Вафель
 
36 - 27.04.18 - 18:54
(35) сложность написания компоненты в миллион раз больше чем веб сервиса
   trdm
 
37 - 27.04.18 - 19:03
Наипростейший путь: сигнальный файл в определенном каталоге, находя который 1С-ка выгружает нужные файлы рядышком.

У меня так сделана конвертация печатных форм mxl в pdf из 1Сv7   с помощью 1Сv8.
   Garykom
 
38 - 27.04.18 - 19:11
(27) Наваяйте внешний сервис/базу хранения этих сведений, вынесите их из 1С наружу.

Пусть и 1С использует (читает/записывает) эту общую базу и внешние сервисы (читает).
   Dmitry1c
 
39 - 27.04.18 - 19:12
веб-сервис на стороне 1С и все
   Сияющий в темноте
 
40 - 27.04.18 - 19:35
Если в 1с 90 человек,то она серверная,значит,есть сервер,где могут выполняться запросы
качаем пример http сервиса и пробуем,если совсем не подходит,то можно фоновое задание сделать,которое ждет файла флага.
еще можнл написать стороннюю программу на том же си с решеткой,чтобы она использовала внешнее соединение к 1с,этот способ не требует внесения изменений в базу 1с.
можно внешнее соединение и из самой аркмап делать,но тут есть вопросы с хранением соединения между вызовами
в аркмап же выгруженные данные нужно как то записывать,может быть,можно наоборот из внешней обработки 1с подключиться к аркмап?
   andrewch60
 
41 - 28.04.18 - 00:16
(40) Сервер в наличии, внесение изменений в базу не проблема.
фоновое задание не хотелось бы, как и чтобы что то периодически проверялось(наличие файла). Хотелось бы, чтобы по требованию только 1С напрягалась, и пользователь не ждал пока 1С поймет, что перед ней задача стоит. А обработка полученных данных пусть полностью будет на совести программиста arcmap, всегда лучше работать с базой изнутри, а не извне.
завтра почитаю про http сервис, раз многие уверены, что это простое и подходящее под задачу решение
   andrewch60
 
42 - 28.04.18 - 00:19
(38) может я не совсем понял, но 1С Документооборот стоит и  выносить в отдельную базу частично документы - это будет далеко не самый простой способ
   andrewch60
 
43 - 28.04.18 - 10:48
(39) (40) http или веб сервис? в чем их различие и что лучше подойдет мне?
   Вафель
 
44 - 28.04.18 - 11:06
кстати можно никакие сервисы не писать, а читать через одата
   Garykom
 
45 - 28.04.18 - 11:35
(44) odata это автоматически генерируемый вебсерсис, который так же нужно сначала поднять/настроить через вебсервер.
   xxTANATORxx
 
46 - 28.04.18 - 11:52
всё не читал, веб сервис уже предлагали?)
   xxTANATORxx
 
47 - 28.04.18 - 11:54
(46)+ вариант еще, если всё это в одной сетки и в пределах видимости, то C# может лезть напрямую с БД 1С читать всё что ему вздумается
   Адинэснег
 
48 - 28.04.18 - 11:59
(43) веб это soap/xml
в hs ты сам можешь описать заголовки, тело и код ответа
с hs тебе проще разобраться
   xxTANATORxx
 
49 - 28.04.18 - 12:07
(48)веб сервис ни кому не запрещает получать, отдавать строку xml/json
 
 Рекламное место пустует
   andrewch60
 
50 - 28.04.18 - 14:27
(47) Такого даже не рассматриваю...Пусть работают только с путями к файлам, которые 1С им вернет(тем более еще запросами надо будет выбирать актуальные версии файлов...пусть это функционалом 1С будет)
   Вафель
 
51 - 28.04.18 - 14:29
(50) в типовых вроде естьвебсервис по файлам
   andrewch60
 
52 - 28.04.18 - 14:31
Может кто нибудь скинет пример обработчика для Http сервиса Get и Post? Попробую на выходных установить и настроить IIS
   Garykom
 
53 - 28.04.18 - 14:33
настрой лучше http://v8.1c.ru/o7/201312rest/index.htm
   Garykom
 
54 - 28.04.18 - 14:35
   Serginio1
 
55 - 28.04.18 - 14:57
   Serginio1
 
56 - 28.04.18 - 14:58
А спасибо    Garykom. Не заметил
   Garykom
 
57 - 28.04.18 - 15:00
(56) Кстати есть вопрос на много рублей!

Каким образом на/через C# "читать из принтера"?
   Garykom
 
58 - 28.04.18 - 15:02
(57)+ У меня есть решение которое "ККТ онлайн" от атол превращает в обычный принтер.

Из любой программы можно просто "печатать чеки" по 54-ФЗ, но вот как получить обратный статус и т.д.?
   Garykom
 
59 - 28.04.18 - 15:05
(58)+ Проблема даже не C# а в 1С, как встроенными средствами платформы получить состояние принтера (или программы C#) не используя ВК или вебсервисы?

Можно ли создать некий "стандартный поток ввода/вывода" в системе чтобы 1С просто читала из него (как можно писать файлы в \\имякомпа\имяпринтера)
   andrewch60
 
60 - 28.04.18 - 15:14
(53) я правильно понимаю, что функционал тот же, но нет необходимости в IIS?
   Garykom
 
61 - 28.04.18 - 15:19
(60) Нужен IIS или Apache, но в конфе 1С ничего не надо менять если платформа из последних.
   Garykom
 
62 - 28.04.18 - 15:22
   andrewch60
 
63 - 28.04.18 - 15:32
(61) 8.3.6 стоит. Значит IIS по любому нужен? Apach проще в настройке?
   Garykom
 
64 - 28.04.18 - 15:35
(63) для 8.3.6 старый апач 2.2
   Serginio1
 
65 - 28.04.18 - 16:28
(56) Через интероп WinSpool
   Сияющий в темноте
 
66 - 28.04.18 - 17:03
Получить состояние принтера не всегда возможно,так как подсистема печати работает с буферизацией,и,если идет печать по сети,то успешная передача файла означает только успешное начало печати,а результат будет в журнале печати,как вариант,можно дописывать свои длл для работы и выдавать статусы,но это уже будет нестандартное решение.
Для гарантированного получения статуса можно использовать http запрос,чтобы термопринтер в процессе печати передавал в ответ данные состояния,тогда можно будет видеть как идет печать практически в онлайн режиме
просто,с онлайн кассой чек может быть или напечатан или нет,а в случае термопринтера этикеток возникает вопрос,сколько этикеток напечатано и сколько осталось
   Garykom
 
67 - 28.04.18 - 17:21
(66) У меня по факту то эмуляция состояние "принтера" (кассы ККТ) и этот статус надо в 1С обратно передать.

1С на кассу данные отправляет через:
ТабличныйДокумент.Напечатать(); или ТекстовыйДокумент.Записать(...)

Но как получить результат "печати"?
   Garykom
 
68 - 28.04.18 - 17:33
(67)+ Понятно через ВК или вебсервисы можно что угодно, но хотелось обойтись простым .Прочитать() сваяв некую штуку на C#.

В принципе назначить общую папку и писать в нее файлики/лог, затем 1С пусть их читает ))

Раз нельзя из 1С читать stdin, stdout, stderr
   andrewch60
 
69 - 07.05.18 - 21:37
всем огромное спасибо, настроил IIS и Http-сервис, быстро и дешево (разве что не пойму как описание ошибки на русском заполнить, чтобы оно корректно отображалось ... а то что бы не пробовал, все равно в win1251 вставляет, и видны иероглифы...)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует