|
Что-то непонятно, что лучше COM или внешние источники данных? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
23.06.15
✎
09:06
|
УФ.
Задача, тыкнуть на кнопку и сопоставить ссылке в текущей базе, ссылку из базы источника. Попробовал по COM. Не понял как хранить соединение между делом. Попробовал по внешним источникам данных. Запрос выполняется меееедлееено. Чего я делаю не так? |
|||
1
Галахад
гуру
23.06.15
✎
09:22
|
Ошибочка вышла внешние источники работают достаточно быстро.
Просто объектов неожиданно много оказалось. Всем спасибо. |
|||
2
ЧеловекДуши
23.06.15
✎
09:30
|
(1) Лучше Обмен через Файл, для малых порций и XML от 1С потянет. Для Огромных DBF и им подобные, для скорости выгрузки и загрузки :)
|
|||
3
EverGreenMouse
23.06.15
✎
09:32
|
Для сопоставления ссылок я COM использую. Вопрос только "хранить соединение между делом" зачем?
|
|||
4
mikeA
23.06.15
✎
09:36
|
(0) http сервис
если совсем ничего не менять в источнике - стандартный web сервис odata работает мгновенно |
|||
5
IKSparrow
23.06.15
✎
09:41
|
Что значит "хранить соединение"?
Соединение в штатном режиме без каких-либо настроек хранится 20 минут. Как вариант - либо тонкий тюнинг либо модуль с включенным режимом "Повторное использование возвращаемых значений" с периодическим дерганьем инициализации COM-объекта. |
|||
6
Галахад
гуру
23.06.15
✎
10:38
|
(2) Чем лучше?
(3) Открыл форму - соединение соединилось. Сопоставил. Закрыл форму - соединение закрылось. И так далее. (4) Чем лучше внешних источников? (5) См. (3) Поподробнее, пожалуйста про "Повторное использование возвращаемых значений" |
|||
7
Господин ПЖ
23.06.15
✎
10:42
|
про com лучше забыть
медленный, бесконечная йопля с правами, обертками под 64-бит и версиями под разные 1с-ины |
|||
8
Garikk
23.06.15
✎
10:44
|
(7) +в линухе работать не будет
|
|||
9
Господин ПЖ
23.06.15
✎
10:46
|
упаковка/распаковка "руками" объектов из comsafearray - тоже тема неблагодарная
при попытке запихнуть явный мусор со стороны внеш. системы сервис просто пошлет ее нахрен |
|||
10
fisher
23.06.15
✎
10:47
|
Внешние источники данных в линухе тоже проблема.
Да и внешние источники данных всех хотелок не покрывают. Как хранимки вызывать, например? |
|||
11
Галахад
гуру
23.06.15
✎
10:54
|
(7), (8) Спасибо. Рабочие доводы.
(10) Да вроде можно. http://xn----1-bedvffifm4g.xn--p1ai/articles/запись-во-внешние-источники/ |
|||
12
Serginio1
23.06.15
✎
11:03
|
(0) Если достаточно внешние источники данных то конечно лучше использовать родное, а вот если хочется использовать всю мощь SQL то тут COM во всем его многообразии к библиотекам доступа к БД
|
|||
13
Serginio1
23.06.15
✎
11:05
|
(9) Ты просто не умеешь их готовить
|
|||
14
fisher
23.06.15
✎
12:36
|
(11) Интересно. Спасибо, буду знать.
|
|||
15
ЧеловекДуши
23.06.15
✎
12:58
|
(6) >>> _2) Чем лучше?
А тем, что нет проблем, как (7) и (8) >>> Попробовал по внешним источникам данных. Тоже байда, не все там гладко у 1С, не всегда работает и не с любыми данными... :) ...Даже если Дрова к данным у тебя есть... |
|||
16
Господин ПЖ
23.06.15
✎
14:44
|
(13) что там "готовить"-то?
обсчитался в позиции в массиве не туда значение внес - упало, запихал вместо строки число - упало или надо эти какахи влет самому ловить и обрабатывать... в сервисе этих проблем просто нет |
|||
17
Serginio1
23.06.15
✎
14:56
|
(16) COM дает доступ к разного рода библиотекам классам сериализаторам десериализаторам, итд.
Например BinaryWriter https://msdn.microsoft.com/ru-ru/library/system.io.binarywriter(v=vs.110).aspx |
|||
18
Serginio1
23.06.15
✎
14:57
|
(16) Можешь вообще Linq to SQL использовать
|
|||
19
gigi789
23.06.15
✎
15:00
|
в моем понимании com нужен если нужны методы и функции источника. Если нужны просто сырые данные то можно пользоваться чем угодно хоть напрямую из sql Запросами тягай
|
|||
20
Господин ПЖ
23.06.15
✎
15:01
|
>Если нужны просто сырые данные то можно пользоваться чем угодно хоть напрямую из sql Запросами тягай
поля составного типа + перечисления улыбаются и машут |
|||
21
gigi789
23.06.15
✎
15:12
|
(20) а в чем проблема?? структура хранения данных известна
|
|||
22
gigi789
23.06.15
✎
15:13
|
или вас пугает написание sql запроса??
|
|||
23
Господин ПЖ
23.06.15
✎
15:18
|
> а в чем проблема?? структура хранения данных известна
зевая... отроете отбельную табличку с перечислениями позвоните - это будет сенсация |
|||
24
Serginio1
23.06.15
✎
15:25
|
(23)
declare @ПеречислениеВес as binary(16) =(Select _IDRREF From "+СтрПереч.ИмяТаблицыХранения+" Where _ENUMORDER="+Перечисления.акТипыЗначенийГруппНоменклатуры.Индекс(Перечисления.акТипыЗначенийГруппНоменклатуры.Вес)+"); |
|||
25
Господин ПЖ
23.06.15
✎
15:28
|
(24) это мелко, Хоботов :)
|
|||
26
Господин ПЖ
23.06.15
✎
15:29
|
можно еще view нагенерить
|
|||
27
Serginio1
23.06.15
✎
15:30
|
(26) Все в наших руках.
|
|||
28
gigi789
23.06.15
✎
15:31
|
(23) Зная порядок в чем проблема??
|
|||
29
Господин ПЖ
23.06.15
✎
15:36
|
(28) слишком много всего "знать" надо за пределами базы + доп. юзера на скуле под это и прочее
смена структуры/порядка/сервера развертывания - опять сношаться по-новой вместо того чтобы один раз опубликовать сервис |
|||
30
Serginio1
23.06.15
✎
15:40
|
(29) Главное знать нужную функцию v8: Как перевести ГУИД в число и обратно?
А что делать, если нужно, а в 1С это либо нельзя сделать либо оооочень медленно |
|||
31
Serginio1
23.06.15
✎
15:42
|
Например MERGE который нужно вводить и в 1С, что бы изменять только измененные и удаленные записи.
|
|||
32
gigi789
23.06.15
✎
15:47
|
(29) У меня было написано Слово "хоть" которое означала 1 из вариантов. Их на самом деле достаточно много и говорить что только 1 верен- это батенька профанация. Иногда нужно одно иногда другое. Где то мы считаем 1 не зыблемым условием, а 2 пускаем в расход, а где то на оборот.
|
|||
33
DmitrO
23.06.15
✎
15:48
|
Раз уж вы тут "меряетесь" я тоже выскажу свое мнение и решение.
Я например, тоже полностью отказался от комконнектора для задач интеграции (а баз у нас много, всяких на 7 и на 8). Вместо него использую собственный простой универсальный веб-сервис вставленный в каждую конфу. Основная его работа: получить текст запроса, выполнить и вернуть результат. Также он может записать любой объект, и выполнить "виртуальный метод с параметрами", их надо размещать в спец. общем модуле в конфе назначения. Основной изюм в том что пишу запросы с этой стороны на языке той стороны, просто, понятно, читаемо, сопровождаемо. Для 7ки и прочих сред обделенных соап клиентом написал COM-объект, который умеет работать с моим сервисом. Основная причина в том, что комконнектор надо регистрировать, а обновление платформы происходит не одновременно у всех, теперь проблем с этим вообще нет. Да, решение похоже на odata но оно появилось еще до него. |
|||
34
gigi789
23.06.15
✎
15:49
|
(29) и да если вы не знаете структуру данных хоть как старайтесь, а к себе в базу вы не чего не загрузите.
|
|||
35
Господин ПЖ
23.06.15
✎
15:51
|
>Их на самом деле достаточно много и говорить что только 1 верен- это батенька профанация.
профанация это выбирать ком-коннектор или голый скуль если есть другие варианты |
|||
36
Господин ПЖ
23.06.15
✎
15:53
|
>а если вы не знаете структуру данных хоть как старайтесь, а к себе в базу вы не чего не загрузите.
шта за бред... структуру данных и типизацию + функции внешнему источнику даст описание web-сервиса... дело внешнего источника - заполнить их адекватно и дернуть сервис за функцию. Про структуру бд ему (внеш. источнику) вообще ничего знать не положено |
|||
37
gigi789
23.06.15
✎
15:56
|
(36) кто говорил про структуру бд??
|
|||
38
Господин ПЖ
23.06.15
✎
15:56
|
а ком-коннектор и таскание массивов туда сюда или кодирование в 1С на стороне ком-объекта - это такая тоска...
|
|||
39
Господин ПЖ
23.06.15
✎
15:59
|
(37) а к чему тогда (34)?
к прямому запросу или ком-коннектору? так это уже экзотика, а не правило - присасываться к "черной коробке" без интерфейсов |
|||
40
gigi789
23.06.15
✎
16:00
|
(38) посмотрю я на вас когда у вас есть длл для работы с конкретным оборудованием есть методы этой длл что дальше??
|
|||
41
Serginio1
23.06.15
✎
16:00
|
(38) Зачем таскать? Обычно все делается SQL запросом при соединении таблиц из двух баз.
|
|||
42
Господин ПЖ
23.06.15
✎
16:03
|
>Обычно все делается SQL запросом при соединении таблиц из двух баз
базы могут быть несоединими в принципе |
|||
43
gigi789
23.06.15
✎
16:04
|
(39) это общее правило. Не важно для чего если нет структуры данных у вас нет данных. ТО что структуру описал кто то до вас это только облегчит вам работу(?). Но не как не отменяет факта.
|
|||
44
Господин ПЖ
23.06.15
✎
16:05
|
>Не важно для чего если нет структуры данных у вас нет данных. ТО что структуру описал кто то до вас это только облегчит вам работу(?). Но не как не отменяет факта.
на русский переведите |
|||
45
Serginio1
23.06.15
✎
16:06
|
(42) А внешние источники данных при этом могут? Мы вроде эту тему обсуждаем. И что в данном случае COM?
Connection = Новый COMОбъект("ADODB.Connection"); |
|||
46
gigi789
23.06.15
✎
16:07
|
(44) что не понятно
|
|||
47
Господин ПЖ
23.06.15
✎
16:07
|
(45) я имел ввиду его более узкое значение - ком-объект 1с
|
|||
48
Господин ПЖ
23.06.15
✎
16:07
|
(46) все не понятно
|
|||
49
Господин ПЖ
23.06.15
✎
16:08
|
>ТО что структуру описал кто то до вас это только облегчит вам работу(?). Но не как не отменяет факта.
что значит облегчит? и какого факта не отменяет? |
|||
50
Serginio1
23.06.15
✎
16:13
|
(47) То есть только V8X.COMConnector ?
На самом деле я делаю обмен через XDTO так во многих случаях быстрее и проще. А уж делать через сервис, файлы , сом это дело вкуса. Но вот объединение больших таблиц делаю напрямую через Merge. У меня несколько баз на семерке, так данные получаю тоже напрямую. Все зависит от задачи. |
|||
51
Господин ПЖ
23.06.15
✎
16:14
|
>У меня несколько баз на семерке, так данные получаю тоже напрямую
там вариантов еще меньше |
|||
52
Serginio1
23.06.15
✎
16:17
|
(51) Не сказал бы. Через ВК и классы Net можно сделать все, что угодно, просто 1С++ великая вещь, делается все быстро. Отдельная благодарность создателям этого инструмента.
|
|||
53
Господин ПЖ
23.06.15
✎
16:18
|
я тут тоже говорю о том что сама 1с может, без доп. расширений
|
|||
54
Serginio1
23.06.15
✎
16:18
|
На восьмерке кстати сайт не напишешь. Приходится и сайты писать. А вот кстати проще написать сайт и использовать его вместо Вэб клиента, экономия на лицензиях.
|
|||
55
gigi789
23.06.15
✎
16:19
|
(49) Есть заголовок tcp где с 0 по 15 бид содержится информация о порте источнике с 16 по 31 порт назначения с 32 по 63 номер пакета и тд прогеру можно заморочить и самому разбирать tcp пакеты но врят ли кто то этим будет замачиваться потому что структура пакета описана и есть инструменты которые с ним работают. Но положим что вы написали (велосипед) свой протокол где не кто не знает какие биты за что отвечают как вы думаете принимающая сторона сможет разобрать не зная структуру данных??
|
|||
56
Господин ПЖ
23.06.15
✎
16:28
|
>вы написали (велосипед) свой протокол где не кто не знает какие биты за что отвечают как вы думаете принимающая сторона сможет разобрать не зная структуру данных??
ну если кому-то охота реверс-инжинирингом заниматься - флаг в руки такого полный хабр уже статей - подключение wifi к соковыжималке и т.п. и смысл это возводить в "абсолют"? |
|||
57
Господин ПЖ
23.06.15
✎
16:30
|
все необходимое описание сервиса содержит. но описанию адекватная среда даже создает всю "обвязку" для работы с сервисом
|
|||
58
gigi789
23.06.15
✎
16:42
|
(57) где я сказал что этот метод плох??
|
|||
59
Господин ПЖ
23.06.15
✎
16:43
|
машу вать... а вопли ярославны в (55) к чему тогда?
|
|||
60
rs_trade
23.06.15
✎
16:50
|
(54) И слава богу. Главная беда 1с-ников. Они все пытаются делать на 1с.
|
|||
61
fisher
23.06.15
✎
16:53
|
(54) Еще смешнее. Простейшие учетные системы тоже проще писать не на 1С, экономя на лицензиях.
|
|||
62
Serginio1
23.06.15
✎
16:58
|
(61) Конечно. Просто обычно для вэб клиентов не нужен полный функционал. Как впрочем и для мобильных клиентов, которых тоже проще написать на том же .NET при этом функционал может быть значительно выше чем на 1С.
|
|||
63
Serginio1
23.06.15
✎
17:01
|
(61) Если ты не понял то сайт общается с 1С через HTTЗ или Web сервис, ODATA
|
|||
64
Serginio1
23.06.15
✎
17:02
|
А там лицензия только на соединение запроса которые кэшируются и при нехватке лицензий могут вставать в очередь.
|
|||
65
Господин ПЖ
23.06.15
✎
17:40
|
(64) за linq и пользование .net респект
|
|||
66
Serginio1
23.06.15
✎
17:56
|
(65) Спасибо
|
|||
67
Галахад
гуру
24.06.15
✎
05:14
|
Уважаемые, подскажите как из:
_IDRRef вида: 80 FD 00 15 17 2B 9D E1 11 E0 70 8A C7 A1 0C DC 80 FD 00 15 17 2B 9D E1 11 E0 70 8A C7 A1 0C E0 80 FD 00 15 17 2B 9D E1 11 E0 70 8A C7 A1 0C E2 Получить чего-нибудь 1С-ное. УИД там... |
|||
68
Garykom
гуру
24.06.15
✎
05:20
|
(67) убрать лишние пробелы? вставка "-" по желанию...
|
|||
69
ЧеловекДуши
24.06.15
✎
07:25
|
(17) КОМ та дает, вот только 1С умудрилась этот КОМ так испоганить, что работать с ним невозможно :)
- Вы же не думаете, что КОМ соединение подвержена тому, что версии программных продуктов должны быть идентичны? ...Иначе бы, накой нужен КОМ, если приходится версии 1С обновлять? |
|||
70
MM
24.06.15
✎
08:12
|
(33) А публикация будет?
|
|||
71
Serginio1
24.06.15
✎
08:32
|
(67) Смотри 30
|
|||
72
DmitrO
24.06.15
✎
09:19
|
(70)в принципе, ничего секретного нет, готов поделиться.
Планов публиковать нет. Могу выслать по запросу. Состав такой: 1. пустая конфигурация с веб-сервисом (подсистема, по сути) 2. обработка-клиент в ней же (по сути она просто для удобства) 3. dll в которой COM-объект - клиент для работы из 7ки. |
|||
73
DmitrO
24.06.15
✎
09:23
|
4. документация с описанием COM-объекта и общих принципов работы
|
|||
74
Mikhail Volkov
25.06.15
✎
03:19
|
В пределах одного сервера COM-соединения использую давно. Например, из управленческой базы можно открыть открыть/создать справочник, документ бухгалтерской базы.
Сейчас возникла необходимость обращаться к консолидирующей (по документу Заказ покупателя) базе из нескольких баз на разных серверах, находящихся в разных городах. COM-соединения потянут эту задачку, или лучше что другое? |
|||
75
Serginio1
25.06.15
✎
10:58
|
(74) По VPN да, но лучше делать обмен через схему и объекты XDTO. А как ты их будешь формировать это уже твоя забота.
|
|||
76
Mikhail Volkov
25.06.15
✎
14:39
|
(75) Вроде VPN это защищенный канал, а не быстрый!? Вопрос о том, будет COM-соединение устойчиво работать с относительно медленном каналом? Смогу ли я из своей 1С открывать COM-объекты из базы находящейся в другой удаленной сети?
|
|||
77
DmitrO
25.06.15
✎
14:45
|
(76)можешь, можешь. Внешнее соединение - это такой толстый клиент без пользовательского интерфейса.
|
|||
78
DmitrO
25.06.15
✎
14:47
|
(77)+ проблема будет в том, что комконнектор тебе нужен будет обязательно того релиза к серверу которого ты коннектишься :))
|
|||
79
DmitrO
25.06.15
✎
14:49
|
попробовал к первому, хрен, не та версия, перерегился, сделал;
попробовал ко второму, хрен, а тут опять не та версия, перерегился, сделал; и так далее - красота от 1С! :) |
|||
80
Serginio1
25.06.15
✎
14:50
|
(76)
Есть разные понятия Суть в том, что соединение по СОМ или не COM с базой происходит по TCP/IP с которым ты можешь работать через VPN. Без VPN TCP/IP работать не будет. Если ты Хочешь DCOM то тоже без VPN не пустят. А с медленным каналом работать то можно, но не нужно. Лучше обмен через Вэб,HTTP сервисы, ODATA |
|||
81
Mikhail Volkov
27.06.15
✎
13:14
|
(80) > Лучше обмен через Вэб,HTTP сервисы, ODATA
Можно подробнее? Например, такая задача: во вновь образованном холдинге транспортной компании нет общей консолидирующей базы (только планируется), каждая организация работает в своей сильно доработанной УАТ 1.0.8.2 Проф (старая редакция, без Партнеров). Возникла острая необходимость централизованно принимать "Заказы на перевозку". Для решения чисто этой задачи думаю опубликовать в облаке УТ11 (в дальнейшем объединить ее с УАТ 2.0.3.1 Проф, и сделать консолидирующей), слить в нее всех контрагентов, сформировать партнеров (они не только объекты взаиморасчетов, еще и Пункты назначения: погрузки/разгрузки), и заводить в ней новые "Заказы на перевозку", как предварительные. Далее, например, менеджер УАТ какой-то организации холдинга хочет посмотреть новые заказы на перевозку, которые в УТ. Желательно, чтобы этот журнал заказов открылся прямо из УАТ. Менеджер что-то из них выбрал, перевел их статус в работу "на себя". Эти выбранные им заявки должны свалиться в его УАТ для дальнейшей их обработки... Опыт решения подобных задач имеется, но ограничен лишь COM-объектами, в пределах локальной сети компании. С удаленными базами работать не приходилось. |
|||
82
Serginio1
27.06.15
✎
14:22
|
(81) Если ты работал с РИБ и КД то принцип тот же. В КД 3 сечас пошли именно через обмен по схеме. Мне приходится делать обмены между 7.7 и 8.3. Я просто беру схему источника, выгружаю документы по схеме и делаю обработку которая создает процедуры заполнения объектов XDTO и заполняет реквизиты УИД.
Что касается твоей задачи, то все можно делать через Вэб сервисы. С ними проще работать. Единственно, что в 1С нет распределенных транзакций, и тебе нужно учитывать разрывы связи. То есть тебе нужно сохранять ИД запроса и если он уже есть в текущей базе не создавать новый документ, а возвращать уже записанный |
|||
83
Mikhail Volkov
27.06.15
✎
16:57
|
(82) Когда не было УФ (как и 1С версии 8) в 7-ке под веб-сервисом понималось веб-приложения типа "Удаленный склад". Что сейчас понимается под веб-сервисом? (где почитать?)
Я конечно догадываюсь, что пользователь из своей базы может открыть удаленную базу УФ, причем сразу конкретный журнал документов (Заказы на перевозку), и менять статусы этих документов, не подозревая, что работает в другой базе. Но примеров подобной реализации не встречал (или не обращал внимание за ненадобностью). |
|||
84
Serginio1
27.06.15
✎
17:17
|
||||
85
Serginio1
27.06.15
✎
17:19
|
||||
86
Serginio1
27.06.15
✎
17:26
|
http://1cprogrammistu.ru/60-sozdanie-web-servisa-v-1s-predpriyatii.html
Посмотри конвертация данных 3 |
|||
87
Mikhail Volkov
27.06.15
✎
17:40
|
Спс, завалил ссылками на теорию. Мне бы пример использования веб-сервиса в какой нибудь типовой (желательно) конфигурации. В той же УТ11 используется?
|
|||
88
Serginio1
27.06.15
✎
22:20
|
На счет УТ11 не знаю, но во всех свежих конфигурациях есть. Посмотри в конфигураторе
|
|||
89
Mikhail Volkov
28.06.15
✎
02:57
|
(88) Где именно, по какому признаку (что забить в строку поиска)?
|
|||
90
Serginio1
28.06.15
✎
09:37
|
(89) Если бы потратил время на изучение ссылок
http://v8.1c.ru/overview/Term_000000163.htm То Вэб сервисы лежат в Общие вэб сервисы. В БП3 их просто куча для обмена данными |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |