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