|
Новый COMObject("v77.Application") - на сервере | ☑ | ||
---|---|---|---|---|
0
dimm7310
25.04.22
✎
11:40
|
Добрый день.
Возможно ли создание Новый COMObject("v77.Application") - на сервере (для использования в обработке)? На клиенте - работает, но нужно на сервере ) Сервер WIN 2012(64). Если возможно, то что для этого нужно сделать? (что бы объяснить админу) Сейчас при попытке создания ошибка "Интерфейс не поддерживается " |
|||
1
H A D G E H O G s
25.04.22
✎
11:41
|
(0) Можно. Не поддерживается, потому что на сервере не установлена 7.7, либо не зарегистрирована.
|
|||
2
Злопчинский
25.04.22
✎
11:42
|
(0) как в (1) написали - 77 копированием на сервер перекинута
|
|||
3
dimm7310
25.04.22
✎
11:48
|
(1) на сервере каталог есть. Что нудно сделать , что бы зарегистрировать?
|
|||
4
MWWRuza
гуру
25.04.22
✎
11:51
|
(3) Ну, для начала, попробуйте один раз "от имени администратора", с полными правами запустить.
Если не поможет, тогда устанавливать с дистрибутива(есть сборки, не официальные, которые под 64 битами ставятся). |
|||
5
tgu82
25.04.22
✎
12:01
|
(4) Да, я ставил до сих пор с аппаратным ключом работает система
|
|||
6
dimm7310
25.04.22
✎
12:08
|
(4) Руками запускается ("от имени администратора") . Но в обработке (на сервере) - та же ошибка.
Есть возможность дать ссылку на такой дистриб ? Можно на почту [email protected] |
|||
7
dimm7310
25.04.22
✎
14:19
|
по окночании установки
https://ibb.co/CJ88BV6 при попытке запуска 1С 7.7 https://ibb.co/QkqxLj2 и при попытке подключения из 1С 8.3 - "Класс не зарегистрирован" что можно сделать? |
|||
8
nodrama
25.04.22
✎
14:20
|
regsvr32
|
|||
9
H A D G E H O G s
25.04.22
✎
14:21
|
(7) Позвать специалиста
|
|||
10
dimm7310
27.04.22
✎
10:07
|
Возможно ли подключение и выполнение запроса Из 1С 8.3(управляемые формы) к 1С 7.7 - прямыми запросами 1С++ без (Новый COMObject("v77.Application"))?
Когда то- писал прямые запросы для 1С 7.7(SQL) - но все внутри одной базы. или для них тоже нужно использовать (Новый COMObject("v77.Application") ? |
|||
11
Kigo_Kigo
27.04.22
✎
10:13
|
А всего то надо зайти на сервер под пользователем от которого запускается сервер 1с обычно это USR1CV8, и от него зарегистрировать компоненту
|
|||
12
VoditelKobyly
27.04.22
✎
10:15
|
(10) Если семерка на SQL тогда со стороны восьмерке просто цепляйся к SQL и делай любые запросы. 1с++ и не понадобится (если только не будешь отлаживать запросы со стороны семерки)
|
|||
13
dimm7310
27.04.22
✎
10:16
|
(11) Я удаленно работаю, а там такой админ - что как будто нет его.
|
|||
14
dimm7310
27.04.22
✎
10:16
|
(12) да 7ка на SQL2000.
Можно пример как подцепиться? |
|||
15
VoditelKobyly
27.04.22
✎
10:18
|
В поисковике строку подключения к SQL поищи, под рукой примера нет
|
|||
16
VoditelKobyly
27.04.22
✎
10:18
|
Задача постоянная или разовая?
|
|||
17
lEvGl
гуру
27.04.22
✎
10:21
|
(14) Connection = Новый COMОбъект("ADODB.Connection");
Connection.CommandTimeout = 180; стрПодключения = "Provider = SQLOLEDB; Data Source = server; Initial Catalog = cataloh;User ID = user; Password = password"; Connection.ConnectionString = стрПодключения; Connection.Open(); RS = Новый COMОбъект("ADODB.Recordset"); RS.Open("Select DH2614.IDDoc as IDDoc, DH2614.SP2600 as IDPod, DH2614.SP6814 as IDYch, |Convert(VarChar, DATEADD(MilliSecond, dbo.ConvSyst10(SUBSTRING(_1SJourn.DATE_TIME_IDDOC,9,6), 36)/10, LEFT(_1SJourn.DATE_TIME_IDDOC,8)), 20) As Date, |SC1874.SP5636 as Nomenklatura, DT2614.SP2609 as Qty, DT2614.SP6847 as StringType |FROM DH2614 left join DT2614 on DH2614.IDDoc = DT2614.IDDOC |left join SC1874 on DT2614.SP2918 = SC1874.ID |Left join _1SJourn On DH2614.IDDoc = _1SJourn.IDDOC |Where Convert(DateTime, Convert(VarChar, DATEADD(MilliSecond, dbo.ConvSyst10(SUBSTRING(_1SJourn.DATE_TIME_IDDOC,9,6), 36)/10, LEFT(_1SJourn.DATE_TIME_IDDOC,8)), 20), 120) |> Convert(DateTime, '" + Формат(ТекущаяДата() - 86400, "ДФ=гггг-ММ-дд")+ " " + "00:00:00', 120)", Connection, 3); Если RS.recordCount() > 0 Тогда |
|||
18
dimm7310
27.04.22
✎
10:23
|
(16) постоянная
|
|||
19
VoditelKobyly
27.04.22
✎
10:25
|
(18) Тогда лучше напрямую из SQL базы запросами данные бери без v77.Application, гораздо быстрее будет
|
|||
20
dimm7310
27.04.22
✎
10:27
|
(17) Спасибо
А можно этот запрос на 1С++ выполнять что бы не SC1874.SP5636 а что то привычное типа: ТекстЗапроса = " |SELECT Номенклатура.ID [Номенклатура $Справочник.Номенклатура] | , $Номенклатура.АртикулПоставщика Артикул | , Номенклатура.DESCR НаименованиеТовара | , $Номенклатура.МинОстаток МинОстаток | , ОстаткиТМЦОстатки.КоличествоОстаток КонОстаток | , $Номенклатура.ОсновнаяЕдиница [ОсновнаяЕдиница $Справочник.Единицы] | , $Номенклатура.БазоваяЕдиница [БазоваяЕдиница $Справочник.Единицы] | , Номенклатура.PARENTID [Родитель $Справочник.Номенклатура] | , Номенклатура.CODE КодТовара |FROM $Справочник.Номенклатура AS Номенклатура | LEFT OUTER JOIN $РегистрОстатки.ОстаткиТМЦ(:КонДата ~, | ,, | Номенклатура,) AS ОстаткиТМЦОстатки ON Номенклатура.ID = ОстаткиТМЦОстатки.Номенклатура |WHERE (Номенклатура.ID IN (SELECT Val FROM #ГруппаМ)) |ORDER BY Номенклатура.PARENTID | , Номенклатура.DESCR |"; |
|||
21
VoditelKobyly
27.04.22
✎
10:31
|
Вот нашел, как у (17):
СоединениеТекущее = Новый Структура; СоединениеТекущее.Вставить("Соединение", Новый COMОбъект("ADODB.Connection")); СоединениеТекущее.Вставить("команда", Новый COMОбъект("ADODB.Command")); СоединениеТекущее.Вставить("НаборЗаписей", Новый COMОбъект("ADODB.Recordset")); СоединениеТекущее.Вставить("ЗаписьСтрок", Новый COMОбъект("ADODB.Recordset")); СоединениеТекущее.соединение.CommandTimeout = 600; СоединениеТекущее.соединение.ConnectionString = "Provider=sqloledb;Server=192.168.1.23;Database=ИмяБазы;UID=sa;PWD=100500;" ; |
|||
22
VoditelKobyly
27.04.22
✎
10:34
|
Ну и далее можешь кидать запросы:
ТекстЗапроса = " |Select | Номенклатура.ID as ИдентификаторНоменклатуры, | Номенклатура.Descr as НаименованиеНоменклатуры, | Номенклатура.ParentID as ИдентификаторРодителя, | Номенклатура.IsFolder as ЭтоГруппа, | Номенклатура.IsMark as ПометкаУдаления, | Единицы.Descr as НаименованиеЕдиницы, | Единицы.sp6990 as КодОКЕИ, | НДС.sp151 as СтавкаНДС |From | sc152 as Номенклатура |left join | sc171 as Единицы on Номенклатура.sp159 = Единицы.ID |left join | sc149 as НДС on НДС.ID = ( |select top 1 |left(c163_vv.value, 9) |from |_1sconst as c163_vv (nolock) |where |c163_vv.id = 163 and |c163_vv.objid = Номенклатура.ID and |(c163_vv.date <= '21000101') |order by c163_vv.date desc, c163_vv.time desc, c163_vv.docid desc, c163_vv.row_id desc |) |where | Номенклатура.ID in (" + ИдентификаторыСтрокой + ")"; РезультатЗапроса = СКЛСоединение.Соединение.Execute(ТекстЗапроса); ТаблицаРезультат = ПолучитьТаблицуПоРезультатуЗапроса(РезультатЗапроса); |
|||
23
VoditelKobyly
27.04.22
✎
10:36
|
Со стороны семерки пиши обработку для отладки текстов запросов.
Потом у 1с++ есть метод, что-то типа ОбрМетаSQL (точно не помню), прогоняешь через него свой текст запроса и получаешь результат в чистом SQL виде. |
|||
24
VoditelKobyly
27.04.22
✎
10:40
|
(21)+ Забыл последнюю строку:
СоединениеТекущее.Соединение.Open(СоединениеТекущее.Соединение.ConnectionString); |
|||
25
ADirks
27.04.22
✎
10:41
|
(20) см. документацию
ODBCDataBase :: ПрисоединитьИБ / AttachIB Синтаксис: ПрисоединитьИБ(КаталогИБ, [ИмяПользователя], [Пароль], [СтрокаСоединения]) Параметры: КаталогИБ - тип: Строка. Путь к каталогу информационной базы. Должен заканчиваться "\". ИмяПользователя - тип: Строка. Имя пользователя информационной базы как оно задано в конфигураторе. Значение по умолчанию - имя текущего пользователя. Пароль - тип: Строка. Пароль на имя пользователя информационной базы как он задан в конфигураторе. Значение по умолчанию - пароль текущего пользователя. СтрокаСоединения - тип: Строка. Строка соединения по спецификации ODBC. Значения по умолчанию: для ИБ sql-формата: "Driver={SQL Server};Server=%1;Database=%2;Uid=%3;Pwd=%4;",где %1 - имя sql-сервера, %2 - имя базы данных, %3 - имя пользователя БД, %4 - пароль, взятые из параметров, сохраненных в каталоге ИБ. для ИБ dbf-формата: "DRIVER={Microsoft Visual FoxPro Driver};Deleted=No;Null=Yes;Collate=RUSSIAN;Exclusive=No;SourceType=DBF;SourceDB=%1", где %1 - переданный КаталогИБ; Описание: позволяет загрузить метаданные из указанного каталога ИБ и соединиться с источником данных по строке соединения. В дальнейшем, после установки соединения для объекта ODBCRecordset методом УстБД, при выполнении запросов, парсер будет разрешать метаимена по подключенным метаданным. Примечание: имя пользователя и пароль проходят проверку только при подключении к ИБ sql-формата. (При подключении к ИБ dbf-формата значения не имеют.) Пример: ИБ=СоздатьОбъект("ODBCDataBase"); ИБ.ПрисоединитьИБ("\\server\КаталогИБ\"); рс=СоздатьОбъект("ODBCRecordset"); рс.УстБД(ИБ); Результат=рс.ВыполнитьИнструкцию(ТекстЗапроса); |
|||
26
dimm7310
27.04.22
✎
10:43
|
(22) мне запросом нужно остатки на дату по номенклатуре получать ($РегистрОстатки.ОстаткиТМЦ)
|
|||
27
dimm7310
27.04.22
✎
10:46
|
(25) спасибо нашел https://forum.infostart.ru/forum9/topic138399/
буду пробовать |
|||
28
trad
27.04.22
✎
11:30
|
(25) (27) это только 77 -> 77
8.x -> 77 такое не прокатит |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |