|
Как на C# сгенерировать внешнее событие и отловить его в 1С | ☑ | ||
---|---|---|---|---|
0
andrewch60
27.04.18
✎
15:50
|
Как со сторонней программы (желательно на C#) сгенерировать внешнее событие и отловить его в 1С и ,если это возможно, вернуть результат обработки переданных с событием данных.
|
|||
1
xxTANATORxx
27.04.18
✎
15:57
|
подними веб сервис на стороне 1С
|
|||
2
Garykom
гуру
27.04.18
✎
16:05
|
(0) "Ъ" же
|
|||
3
Garykom
гуру
27.04.18
✎
16:06
|
||||
4
Garykom
гуру
27.04.18
✎
16:07
|
||||
5
Cool_Profi
27.04.18
✎
16:18
|
Сейчас придёт Serginio и начнёт агитировать
|
|||
6
andrewch60
27.04.18
✎
16:31
|
(1) не приходилось работать с веб сервисами 1С, но чувство, что это излишне для 1го пользователя, который будет слать события 1С из своей программы
|
|||
7
andrewch60
27.04.18
✎
16:37
|
(3) Можете мне логику решения моей задачи объяснить для начала? С# не изучал, в 1С 8 пока еще довольно слаб. Что требуется от сторонней программы для генерации события? Нужно ли 1С что то еще, чтобы это событие перехватить в ОбработкаВнешнегоСобытия , или же правильно сформированное событие 1С сразу перехватит?
|
|||
8
Cool_Profi
27.04.18
✎
16:40
|
(7) "Можете мне логику решения моей задачи объяснить для начала? С# не изучал, в 1С 8 пока еще довольно слаб."
За рулём машины никогда не сидел. Можешь вкратце рассказать, как мне выиграть Формулу-1? |
|||
9
Garykom
гуру
27.04.18
✎
16:42
|
(8) Нанять профгонщика или сильный ИИ же для удаленного управления, сам буду актером.
|
|||
10
Вафель
27.04.18
✎
16:43
|
(7) нужно написать компоненту и ее загрузить в 1с
|
|||
11
Вафель
27.04.18
✎
16:45
|
сторонняя программа может дергать эту билотеку напрямую или через сокеты или еще как
|
|||
12
Cool_Profi
27.04.18
✎
16:45
|
(9) До последнего времени в формуле1 актёрами были грудастые девушки... Ты такое?
|
|||
13
Nyoko
27.04.18
✎
16:45
|
(10) согласен, пример есть на ИТС;)
|
|||
14
Garykom
гуру
27.04.18
✎
16:47
|
(12) Зависит от зп, чем мы хуже тайцев ))
|
|||
15
Cool_Profi
27.04.18
✎
16:50
|
(14) У меня нет грудей. Да и не понравятся тебе волосатые груди 3го размера, да ещё с седыми волосами...
|
|||
16
Garykom
гуру
27.04.18
✎
16:52
|
(15) Ыыыы
|
|||
17
Garykom
гуру
27.04.18
✎
16:53
|
(16)+ Нельзя же так, сложно упав под стол от смеха писать
|
|||
18
andrewch60
27.04.18
✎
17:04
|
(8) в отличии от тебя, могу) каждый день тренироваться на картингах, пока не станешь всех делать одной левой) потом постоянно ездить на формулу-1 и постоянно тереться около престарелый спонсоров(заваливать их спамом из своих мольб), уверяя ,что ты очень даже перспективен, пока кто нибудь не даст тебе шанс...) (ну или до конца дней своих...) Далее остается найти выходы на всех соперников и на отравителя Скрипаля! Договариваешься с ним, и они еще на старте( только одев шлемы, или прикоснувшись к рулю, или выпив водички, или погладив не того котика и тд )впадают в кому и ОПА - ты в лидерах!!!
|
|||
19
Cool_Profi
27.04.18
✎
17:10
|
(18) Вот и спалился новичёк...
|
|||
20
trdm
27.04.18
✎
17:10
|
Паша?
|
|||
21
andrewch60
27.04.18
✎
17:18
|
(8) Чуть, что, то я "сидел за рулем", просто на 7ке и таких задач не ставилось, а на с# будет писать другой человек, моя задача спроектировать ,как это должно работать и решить, что я буду делать, а что и как кто то другой...
|
|||
22
andrewch60
27.04.18
✎
17:29
|
(10) (11) Спасибо, добрый человек. Получается, что через эту компоненту мы можем как передать данные в 1С ,так и из 1С вернуть их в нашу прогу?
А есть простейший пример такого функционала? А то много кода на С# только пугает... |
|||
23
trdm
27.04.18
✎
17:35
|
может задачу опишешь, что-бы люд сразу нормальные советы давал.
|
|||
24
Вафель
27.04.18
✎
17:37
|
(22) проще через веб сервис
|
|||
25
Garykom
гуру
27.04.18
✎
17:48
|
Да и так понятно что систему заказов или нечто вроде прикручивают
|
|||
26
Сияющий в темноте
27.04.18
✎
18:35
|
Компоненты,это все сложнл и нет гарантии,что 1с запущена,а также придется преодолевать границы процесса для передачи данных.
самый простой способ,обмен через файлы,вы складываете файл в определенную директорию и запускаете в 1с обработку,которая в фоне проверяет наличие файла,и ест его,если он есть дален,если скорость не устроит,можно посмотреть,как пишутся httpсервисы,т.к.это надежно,просто и быстро,и не нужно следить за запущенностью 1с |
|||
27
andrewch60
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с трогать )))
|
|||
30
andrewch60
27.04.18
✎
18:47
|
(26) Заставить 1го человека держать запущенную копию 1С не проблема... В 1С работает около 90 пользователей, а конкретно этой задачей будет заниматься 1-2.
Первоначально приходила идея делать через файл, но если есть более грамотные пути, то почему нет... |
|||
31
trdm
27.04.18
✎
18:48
|
(27) Вот с этого и надо начинать. Можно множеством способов сделать, вплоть до единой БД, через файловую систему, через ком-соединение и т.п.
|
|||
32
andrewch60
27.04.18
✎
18:48
|
(28) А какой его принцип работы? Запрос - ответ...?
сложно ли реализовать? И в чем его преимущества здесь? |
|||
33
Вафель
27.04.18
✎
18:50
|
(32) исходя из задачи: кто-то хочеть получить инфу из 1с
|
|||
34
andrewch60
27.04.18
✎
18:51
|
(31) очень против единой БД... Пусть себе работают в своей базе... Я отвечаю за 1С, а за arcMap женщина, которая только чай мне заварила, когда пытался обсудить варианты...
|
|||
35
andrewch60
27.04.18
✎
18:53
|
привлек метод с событием именно тем, что 1С уже может быть запущена и не надо с какими то подключениями уже возиться
|
|||
36
Вафель
27.04.18
✎
18:54
|
(35) сложность написания компоненты в миллион раз больше чем веб сервиса
|
|||
37
trdm
27.04.18
✎
19:03
|
Наипростейший путь: сигнальный файл в определенном каталоге, находя который 1С-ка выгружает нужные файлы рядышком.
У меня так сделана конвертация печатных форм mxl в pdf из 1Сv7 с помощью 1Сv8. |
|||
38
Garykom
гуру
27.04.18
✎
19:11
|
(27) Наваяйте внешний сервис/базу хранения этих сведений, вынесите их из 1С наружу.
Пусть и 1С использует (читает/записывает) эту общую базу и внешние сервисы (читает). |
|||
39
Dmitry1c
27.04.18
✎
19:12
|
веб-сервис на стороне 1С и все
|
|||
40
Сияющий в темноте
27.04.18
✎
19:35
|
Если в 1с 90 человек,то она серверная,значит,есть сервер,где могут выполняться запросы
качаем пример http сервиса и пробуем,если совсем не подходит,то можно фоновое задание сделать,которое ждет файла флага. еще можнл написать стороннюю программу на том же си с решеткой,чтобы она использовала внешнее соединение к 1с,этот способ не требует внесения изменений в базу 1с. можно внешнее соединение и из самой аркмап делать,но тут есть вопросы с хранением соединения между вызовами в аркмап же выгруженные данные нужно как то записывать,может быть,можно наоборот из внешней обработки 1с подключиться к аркмап? |
|||
41
andrewch60
28.04.18
✎
00:16
|
(40) Сервер в наличии, внесение изменений в базу не проблема.
фоновое задание не хотелось бы, как и чтобы что то периодически проверялось(наличие файла). Хотелось бы, чтобы по требованию только 1С напрягалась, и пользователь не ждал пока 1С поймет, что перед ней задача стоит. А обработка полученных данных пусть полностью будет на совести программиста arcmap, всегда лучше работать с базой изнутри, а не извне. завтра почитаю про http сервис, раз многие уверены, что это простое и подходящее под задачу решение |
|||
42
andrewch60
28.04.18
✎
00:19
|
(38) может я не совсем понял, но 1С Документооборот стоит и выносить в отдельную базу частично документы - это будет далеко не самый простой способ
|
|||
43
andrewch60
28.04.18
✎
10:48
|
(39) (40) http или веб сервис? в чем их различие и что лучше подойдет мне?
|
|||
44
Вафель
28.04.18
✎
11:06
|
кстати можно никакие сервисы не писать, а читать через одата
|
|||
45
Garykom
гуру
28.04.18
✎
11:35
|
(44) odata это автоматически генерируемый вебсерсис, который так же нужно сначала поднять/настроить через вебсервер.
|
|||
46
xxTANATORxx
28.04.18
✎
11:52
|
всё не читал, веб сервис уже предлагали?)
|
|||
47
xxTANATORxx
28.04.18
✎
11:54
|
(46)+ вариант еще, если всё это в одной сетки и в пределах видимости, то C# может лезть напрямую с БД 1С читать всё что ему вздумается
|
|||
48
Адинэснег
28.04.18
✎
11:59
|
(43) веб это soap/xml
в hs ты сам можешь описать заголовки, тело и код ответа с hs тебе проще разобраться |
|||
49
xxTANATORxx
28.04.18
✎
12:07
|
(48)веб сервис ни кому не запрещает получать, отдавать строку xml/json
|
|||
50
andrewch60
28.04.18
✎
14:27
|
(47) Такого даже не рассматриваю...Пусть работают только с путями к файлам, которые 1С им вернет(тем более еще запросами надо будет выбирать актуальные версии файлов...пусть это функционалом 1С будет)
|
|||
51
Вафель
28.04.18
✎
14:29
|
(50) в типовых вроде естьвебсервис по файлам
|
|||
52
andrewch60
28.04.18
✎
14:31
|
Может кто нибудь скинет пример обработчика для Http сервиса Get и Post? Попробую на выходных установить и настроить IIS
|
|||
53
Garykom
гуру
28.04.18
✎
14:33
|
настрой лучше http://v8.1c.ru/o7/201312rest/index.htm
|
|||
54
Garykom
гуру
28.04.18
✎
14:35
|
||||
55
Serginio1
28.04.18
✎
14:57
|
||||
56
Serginio1
28.04.18
✎
14:58
|
А спасибо Garykom. Не заметил
|
|||
57
Garykom
гуру
28.04.18
✎
15:00
|
(56) Кстати есть вопрос на много рублей!
Каким образом на/через C# "читать из принтера"? |
|||
58
Garykom
гуру
28.04.18
✎
15:02
|
(57)+ У меня есть решение которое "ККТ онлайн" от атол превращает в обычный принтер.
Из любой программы можно просто "печатать чеки" по 54-ФЗ, но вот как получить обратный статус и т.д.? |
|||
59
Garykom
гуру
28.04.18
✎
15:05
|
(58)+ Проблема даже не C# а в 1С, как встроенными средствами платформы получить состояние принтера (или программы C#) не используя ВК или вебсервисы?
Можно ли создать некий "стандартный поток ввода/вывода" в системе чтобы 1С просто читала из него (как можно писать файлы в \\имякомпа\имяпринтера) |
|||
60
andrewch60
28.04.18
✎
15:14
|
(53) я правильно понимаю, что функционал тот же, но нет необходимости в IIS?
|
|||
61
Garykom
гуру
28.04.18
✎
15:19
|
(60) Нужен IIS или Apache, но в конфе 1С ничего не надо менять если платформа из последних.
|
|||
62
Garykom
гуру
28.04.18
✎
15:22
|
||||
63
andrewch60
28.04.18
✎
15:32
|
(61) 8.3.6 стоит. Значит IIS по любому нужен? Apach проще в настройке?
|
|||
64
Garykom
гуру
28.04.18
✎
15:35
|
(63) для 8.3.6 старый апач 2.2
|
|||
65
Serginio1
28.04.18
✎
16:28
|
(56) Через интероп WinSpool
|
|||
66
Сияющий в темноте
28.04.18
✎
17:03
|
Получить состояние принтера не всегда возможно,так как подсистема печати работает с буферизацией,и,если идет печать по сети,то успешная передача файла означает только успешное начало печати,а результат будет в журнале печати,как вариант,можно дописывать свои длл для работы и выдавать статусы,но это уже будет нестандартное решение.
Для гарантированного получения статуса можно использовать http запрос,чтобы термопринтер в процессе печати передавал в ответ данные состояния,тогда можно будет видеть как идет печать практически в онлайн режиме просто,с онлайн кассой чек может быть или напечатан или нет,а в случае термопринтера этикеток возникает вопрос,сколько этикеток напечатано и сколько осталось |
|||
67
Garykom
гуру
28.04.18
✎
17:21
|
(66) У меня по факту то эмуляция состояние "принтера" (кассы ККТ) и этот статус надо в 1С обратно передать.
1С на кассу данные отправляет через: ТабличныйДокумент.Напечатать(); или ТекстовыйДокумент.Записать(...) Но как получить результат "печати"? |
|||
68
Garykom
гуру
28.04.18
✎
17:33
|
(67)+ Понятно через ВК или вебсервисы можно что угодно, но хотелось обойтись простым .Прочитать() сваяв некую штуку на C#.
В принципе назначить общую папку и писать в нее файлики/лог, затем 1С пусть их читает )) Раз нельзя из 1С читать stdin, stdout, stderr |
|||
69
andrewch60
07.05.18
✎
21:37
|
всем огромное спасибо, настроил IIS и Http-сервис, быстро и дешево (разве что не пойму как описание ошибки на русском заполнить, чтобы оно корректно отображалось ... а то что бы не пробовал, все равно в win1251 вставляет, и видны иероглифы...)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |