![]() |
(7.7) Работа с внешними компонентами Есть две обработки обмена с разными сайтами, первой нужна компонента 1срр, которая грузится в глобальном модуле, и второй обработке нужна своя компонента 1срр, которая грузится в модуле обработки, но не работает, можно ли как - нибудь проверить, что компонента уже загружена и выгрузить одну 1срр и загрузить другую? или как еще обойти эту ситуацию? |
1 - зачем 2 компоненты 1с++? в чем их разница. Откуда требование грузить вторую из обработки? 2 - узнать загружена ли первая можно путем создания в попытке какого-либо ее объекта Можно ничего и не узнавать, а просто выгружать, неважно загружена ли она |
А как выгрузить компоненту 1cpp? |
По поводу выгрузки кажетс я наврал, нельзя выгрузить |
2-mrOrange > её не надо загружать, она уже загружена. Сразу создаём в модуле обработки нужный объект (потому что 1срр же уже загружен ПриНачалеРаботыСистемы() в глоб.), если он не создаётся, считаем, что компонента ещё не загружена и загружаем её. типа такого: Попытка Объект2 = СоздатьОбъект( "ОбъектДляВторойОбработки" ); Исключение ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "1CPP.dll"); Объект2 = СоздатьОбъект("ОбъектДляВторойОбработки" ); КонецПопытки таким образом, мы проверили, загружена ли компонента. отсюда, например [url]https://forum.mista.ru/topic.php?id=674668[/url] |
А на Windows 7 нормально работают прямые запросы? У меня что-то не соединяется с базой файловой. Использую вот такую строку соединения: СтрокаСоединения = "DRIVER=Microsoft Visual FoxPro Driver;Deleted=Yes;Null=Yes; |Collate=RUSSIAN;BackgroundFetch=Yes;Exclusive=No;SourceType=DBF;SourceDB=" + КаталогИБ(); БД = СоздатьОбъект("ODBCDataBase"); Успешно = БД.Соединение(СтрокаСоединения); Возвращает [b]Успешно = 0[/b] |
(5)Отлично работают. И на Windows 10) Но я использую иное подключение: Функция глПодключениеOLEDB (КаталогБД) Экспорт OLEDB = CreateObject("OLEDBDATA"); OLEDB.Connect ("Provider = VFPOLEDB.1; //|Deleted = Yes; |Data Source = " + КаталогБД + "; |Mode = ReadWrite; |Extended Properties=""; |Exclusive = No; |User ID = ""; |Password =""; |Mask Password = False; |Collating Sequence = RUSSIAN; |DSN = """); SQLComm = OLEDB.CreateCommand(); SQLComm.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки Возврат SQLComm; КонецФункции //глПодключениеOLEDB() |
6-USSR > спасибо, по OLEDB заработало |
(7)Будут вопросы, обращайтесь) |
Текущее время: 15:02. Часовой пояс GMT +3. |