Имя: Пароль:
1C
1С v8
Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
,
0 Mikhail Volkov
 
23.06.22
13:05
Таких тем здесь много, ответ понятен, нельзя на клиенте использовать: Запрос = Новый Запрос; Но вопрос не в этом. Обычно работаю с конфигурациями ОФ: Альфа-Авто, КА1 (УПП)... Везде использую общий модуль мвДоработки с галочками: Сервер, Клиент (обычное приложение), Внешнее соединение (в Альфа-Авто не использую), Вызов сервера. Когда в конфигурацию надо внести более 2-х строк, то пишу их в этот модуль в виде функции, а вызов этой функции вставляю в то место, где нужно внести изменение. Когда поддержка КА1 закончилась, сделал базу на КА2 (еще вроде на КА2.1), но в ней пока не работаем, обновляем КА1 УПП. В КА2 тоже сделал общий модуль мвДоработки с галочками: Клиент, Сервер, Внешнее соединение. В нем написал несколько функций (в УФ я начинающий). Среди них есть:
// Возвращает Истина, если у номенклатуры единственное наименование
//
Функция ЕдинственноеНаименованиеНоменклатуры(Номенклатура) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.Наименование = &Наименование";
    Запрос.УстановитьПараметр("Наименование", Номенклатура.Наименование);
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 0;
    Пока Выборка.Следующий() Цикл
        Если Счетчик > 0 Тогда
            Возврат Ложь;
        КонецЕсли;
        Счетчик = Счетчик + 1;
    КонецЦикла;
    Возврат Истина;
КонецФункции

// Возвращает полное наименование ключа аналитики номенклатуры
// без дублей по наименованию
Функция ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи) Экспорт
    Попытка
        НаименованиеСклада = СокрЛП(МенеджерЗаписи.МестоХранения);
    Исключение
        НаименованиеСклада = СокрЛП(МенеджерЗаписи.Склад);
    КонецПопытки;
    Наименование = СокрЛП(МенеджерЗаписи.Номенклатура) + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), "", ", "
        + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + "; "
        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + "; ", "")
        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + "; ", "")
        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + "; ", "")
        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + "; ", "")
        + СокрНаименованиеСклада(НаименованиеСклада);
    Если СтрДлина(Наименование) > 100 Тогда
        Наименование = Лев(СокрЛП(МенеджерЗаписи.Номенклатура), СтрДлина(СокрЛП(МенеджерЗаписи.Номенклатура)) - СтрДлина(Наименование) + 97) + "..."
            + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), "", ", "
            + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + "; "
            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + "; ", "")
            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + "; ", "")
            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + "; ", "")
            + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + "; ", "")
            + СокрНаименованиеСклада(НаименованиеСклада);
    КонецЕсли;
    Возврат Наименование;
КонецФункции

которая вызывается из РС АналитикаУчетаНоменклатуры:
Функция ПолучитьПолноеНаименованиеКлючаАналитики(МенеджерЗаписи)

    Возврат мвДоработки.ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи);    //+МВ 12.05.2019
//    Возврат СокрЛП(МенеджерЗаписи.Номенклатура) + "; "
//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + "; ", "")
//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + "; ", "")
//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + "; ", "")
//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + "; ", "")
//        + СокрЛП(МенеджерЗаписи.МестоХранения);

КонецФункции

В данном случае галочка Клиент на мвДоработки не нужна, но можно ли ее убрать? Наверное это зависит от других функций модуля. Как навскидку определить: может ли функция выполняться только на клиенте? Вопрос наверное глупый, но в УФ я начинающий. Убрал галочку Клинт - ошибка: Тип не определен (Запрос) исчезла. Потом вернул ее, сохранил конфигурацию, ошибка не появилась!? Раньше она появлялась, до обновления на 2.5.8.221.
138 Mikhail Volkov
 
29.08.22
08:48
(135) Даже совсем удалил платформу, и снова поставил, все равно нет COM-Соединения в выборе компонентов. (132) А 2-я картинка: "для 2-й платформы Сервер «1С:Предприятия» устанавливаем не как службу, а как приложение,..." после удаления платформы появилась.
139 Mikhail Volkov
 
29.08.22
10:34
Далее все делаю по инструкции в (134), получаю: CreateService error! Ошибка создания службы! Наверное ее надо удалить с предыдущей установки. Как?
140 Mikhail Volkov
 
29.08.22
11:00
(139) sc delete "имя службы"
141 Mikhail Volkov
 
30.08.22
08:18
Имя службы: "1C:Enterprise 8.3.19 Server Agent (x64)" - специально переименовал ее в реестре, как службу с нестандартным диапазоном портов. Создавал ее не по инструкции (134). Тогда еще PowerShell не пользовался, а чем создавал службу - не помню. Вчера создавал PowerShell: .\ragent.exe -instsrvc -port 1640 -regport 1641 -range 1660:1690 -usr .\USR1CV82 -pwd парольUSR1CV82 -d "C:\Program Files\1cv8\srvinfo_1641\" (ждал ночной перезагрузки сервера), а сегодня обнаружил лишь одну службу: 1C:Enterprise 8.3 Server Agent (x86-64) с нестандартным диапазоном портов. Куда делась служба для платформы 8.3.10.2466 со стандартным диапазоном портов 15хх?
142 Mikhail Volkov
 
30.08.22
08:31
Альфа-Авто вроде работает, сидят в ней пользователи.
143 Mikhail Volkov
 
30.08.22
16:30
Что делать дальше? Удалить службу 1C:Enterprise 8.3 Server Agent (x86-64) в реестре их 3: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent (x86-64), HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\1C:Enterprise 8.3 Server Agent (x86-64), HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64), и попытаться восстановить службу для платформы 8.3.10.2466 со стандартным диапазоном портов 15хх? А потом пытаться восстановить службу для платформы 8.3.19.1522 со нестандартным диапазоном портов?
144 PR
 
30.08.22
17:07
(10) Ужаснулся и решил взорвать интернет, чтобы даже видавшие виды матерые одинесники поседели на твоих глазах?

Запускаешь cmd из-под администратора и выполняешь regsvr32 "C:\Program Files (x86)\1cv8\8.3.20.1549\bin\comcntr.dll"
Если сервер 1С 64хбитный, то regsvr32 "C:\Program Files\1cv8\8.3.20.1549\bin\comcntr.dll"
Вместо 8.3.20.1549 конечно же вставляешь свою версию 1С

Надеюсь, ты там не поседел от ужаса всего написанного?
145 Mikhail Volkov
 
30.08.22
17:40
(144) Уже было (82).
146 Kassern
 
30.08.22
17:47
делайте по шагам, вас нужно научить, как отлаживать ошибки? Окей...
Создаете изолированную систему, устанавливаете на нее одну платформу 1с, по дефолту настраиваете ком коннектор. Все это должно быть в одном месте, на одном сервере и сам кластер и сама 1ска, из которой делаете коннект. В общем создаете идеальные условия и проверяете, что все норм отрабатывает. А далее уже по маааленьким шажкам начинаете эту систему приводить к виду вашей и на каждом этапе проверяете, что ком у вас работает.
147 СеменовСемен
 
30.08.22
17:49
(145) какую ошибку пишет и в какой момент?
148 Kassern
 
30.08.22
17:50
(147) вангую, я все зарегал, все сделалось, а при подключении ошибка класс не зарегистрирован)
149 СеменовСемен
 
30.08.22
17:52
разрядность не та наверняка
150 Kassern
 
30.08.22
17:53
(149) да там может быть 100500 причин, мы у ТС на сервере не были,  хз как он ставил, какая у него структура работы с 1с, как он все это дело запускает и т.д. и т.п.
151 Kassern
 
30.08.22
17:55
Например он запускает на клиенте ком соединение, на предприятии несколько кластеров разнесенных на несколько серверов, у него еще несколько активных платформ разных версий на разных портах, хз какой версии зареган комконнектор. И ждет волшебную пулю от мисты, чтобы ему ванганули какую кнопочку нажать, чтобы все взлетело...
152 Kassern
 
30.08.22
17:56
Еще не понятно как права настроены, под какими юзверами службы запущены, под какими правами компонента вызывается и как. В общем 100500 нюансов, о которых мы не знаем.
153 Kassern
 
30.08.22
17:57
Поэтому я и писал вначале, хватит ком мучать, пилите веб/хттп сервисы)
154 Kassern
 
30.08.22
17:59
Ком соединение еще имеет свойство зависать, и лечится это только убиванием рпхоста, в котором данное соединение. А в нем могут быть и активные пользователи... Это конечно более мягкий способ, чем всю службу перезапускать.
155 Mikhail Volkov
 
30.08.22
18:21
(143) Удалил службу 1C:Enterprise 8.3 Server Agent (x86-64), запускаю установку от имени администратора, получаю: https://ibb.co/0h2VmSB В каких разрешениях мне убедиться?
156 СеменовСемен
 
30.08.22
18:25
(151) версия не важно какая. там ошибка совершенно другая
157 Mikhail Volkov
 
30.08.22
18:38
(156) Версия 8.3.19.1522. Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса.
158 PR
 
30.08.22
18:44
(157) Судя по тому, сколько ты там говна наворочал, тебе проще всего снести 1С, поставить заново и зарегистрировать COM
159 СеменовСемен
 
30.08.22
18:45
(157) либо не та разрядность либо не  тот комп
160 PR
 
30.08.22
18:47
(159) Либо прокладка
161 Mikhail Volkov
 
30.08.22
19:16
(158) Как зарегистрировать COM?
(159) Для платформы 8.3.10.2466 нужна 32-х разрядная клиентская часть, для 8.3.19.1522 она вроде не нужна.
(160) Что за прокладка?
162 СеменовСемен
 
30.08.22
19:34
(161) где запускаешь код
Клиент или сервер?
Какой разрядности?
163 СеменовСемен
 
30.08.22
19:35
А может ты просто криво имя ком объекта написал?
164 PR
 
30.08.22
19:35
(161) Между компьютером и стулом
165 Mikhail Volkov
 
31.08.22
09:34
(162) Какой код? Этот (115) он в общем модуле - на сервере. Сервер х64.
(163) Было см. (106), теперь: БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522");
Почему появилась 2-я платформа надо описывать? (вроде ранее описывал) Поначалу ставил 8.3.14.1779 и "Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса" вроде не было. С повышением релиза КА2 требовалось обновлять эту платформу. Сейчас возникли подозрения, что обновлял ее неправильно. Как правильно обновить платформу, ее службу удалять обязательно (или достаточно исправить цифры платформы)?
Сейчас больше волнует куда делась служба для 8.3.10.2466, на которой работает Альфа-Авто, после удаления службы 1C:Enterprise 8.3.19 Server Agent (x64) (141)? И не восстанавливается при запуске Platform\8.3.10.2466\x86_64\
166 СеменовСемен
 
31.08.22
09:35
что это за х..ня
Новый COMОбъект("V83.COMConnector_8.3.19.1522");
167 Kassern
 
31.08.22
09:41
(166) обертку можно как угодно назвать для библиотеки.
168 СеменовСемен
 
31.08.22
09:41
но зачем все эти выкрутасы?
169 Mikhail Volkov
 
31.08.22
09:43
(166) Вообще то: Новый COMОбъект("V83.COMConnector_" + ВерсияПлатформы);
170 Mikhail Volkov
 
31.08.22
09:46
171 СеменовСемен
 
31.08.22
09:48
(170) но зачем?
172 СеменовСемен
 
31.08.22
09:50
зачем нужны разные версии вообще?
173 Mikhail Volkov
 
31.08.22
10:07
(172) Печально, но например Альфа-Авто 4.1 работает не выше 8.3.10.2466.
174 СеменовСемен
 
31.08.22
10:12
(173) ну закомментируй эту проверку
175 Mikhail Volkov
 
31.08.22
10:35
(174) Вроде нет проверок, не работает и все...
Как правильно обновить платформу, ее службу удалять обязательно (или достаточно исправить цифры платформы)?
Сейчас больше волнует куда делась служба для 8.3.10.2466, на которой работает Альфа-Авто, после удаления службы 1C:Enterprise 8.3.19 Server Agent (x64) (141)? И не восстанавливается при запуске Platform\8.3.10.2466\x86_64\
176 СеменовСемен
 
31.08.22
11:04
(175) все удали и заново все устанавливай
177 Kassern
 
31.08.22
11:06
Создайте базу пустышку, из нее попробуйте сделать &НаСервере ком соединение, например через внешнюю обработку.
178 Kassern
 
31.08.22
11:07
Базу запустите там же где у вас кластер серверов установлен.
179 СеменовСемен
 
31.08.22
11:07
(177) он все уже убил.
180 Kassern
 
31.08.22
11:10
(179) я надеюсь, колесо сансары сделает свой очередной оборот и ком коннектор воскреснет из пепла)
181 Mikhail Volkov
 
31.08.22
11:27
(179) Если Вы про (155), то удалил службу не на рабочем сервере, а на своем компьютере.
182 СеменовСемен
 
31.08.22
11:28
(181) делай обмен через кд2 - самое простое.
все эти заморочки нафиг не нужны
183 Mikhail Volkov
 
31.08.22
11:47
(182) Основной объем документов идет через КД2, но некоторые объекты КА: элементы справочника, например, контрагенты, или банковские документы можно открывать непосредственно через Com из Альфа-Авто. Так было когда Альфа-Авто и КА работали на одной платформе, хотелось бы на разных.
184 Mikhail Volkov
 
31.08.22
13:00
(176) Что именно "все"? Файлы из каталогов: "C:\Program Files (x86)\1cv8\8.3.10.2466\bin\" и "C:\Program Files\1cv8\8.3.19.1522\bin\" - понятно, службы sc delete "имя службы" - тоже понятно. А реестр надо чистить, как? Я бы на своем компе попробовал, да ключи от Альфа-Авто только на сервере.
(177) Хотя если "Создайте базу пустышку", то они не нужны.
185 Kassern
 
31.08.22
13:01
(184) Вам просто нужно протестить работу библиотеки ком коннектор, для этого вам конфа не нужна, можно и на пустышке
186 Mikhail Volkov
 
31.08.22
13:17
(177) Что должно быть в этой внешней обработке?
187 Mikhail Volkov
 
31.08.22
15:16
На папку Platform\8.3.10.2466\x86_64\ добавил себе полные права, запустил, ошибки (155) не было, но служба 1C:Enterprise 8.3.10.2466 Server Agent не восстановилась?
188 Kassern
 
31.08.22
15:28
(186)
&НаСервере
Процедура ТестПодключения()
COMОбъект=Новый COMObject("V83.COMConnector");
Соединение= COMОбъект.Connect(СтрокаСоединения);
КонецПроцедуры
189 Kassern
 
31.08.22
15:32
Ну или как там у вас коннектор называется
190 Mikhail Volkov
 
31.08.22
15:55
(187) Не пойму как без нее Альфа-Авто сейчас работает?
(188) СтрокаСоединения ее надо писать: Srvr="ANDROMEDA:1641"; Ref="PATRСА";Usr="Администратор";Pwd="123";?
(189) "V83.COMConnector_8.3.19.1522"
191 Kassern
 
31.08.22
16:01
(190) ""V83.COMConnector_8.3.19.1522"" - если вы не ползали и сами не прописывали новое имя для обертки, то тогда просто V83.COMConnector
"СтрокаСоединения ее надо писать" - попробуйте соединиться с обычной файловой базой на этом же сервере.
192 Mikhail Volkov
 
31.08.22
16:24
(187) Из инструкции по установке разных версий серверов 1С на один сервер - http://www.gilev.ru/multiple1cservers/
Для регистрации новой службы необходимо воспользоваться утилитой sc.exe, и прописать в службу необходимые параметры. Для этого можно создать *.bat-файл. Пример текст *.bat-файла для описываемой ситуации приведен ниже:
!!! Запуск *.bat-файлов производится только с правами Администратора

echo off
chcp 1251
set SrvcName="1C:Enterprise 8.3.12 Server Agent"
set BinPath="\"C:\Program Files\1cv8\8.3.12.1924\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\Program Files\1cv8\srvinfo_8_3_12\""
set Desctiption="Агент сервера 1С:Предприятия 8.3.12"
sc create %SrvcName% binPath= %BinPath% start= auto displayname= %Desctiption% depend= Tcpip/Dnscache/lanmanworkstation/lanmanserver/
pause
Может прописать что-то подобное под 8.3.10.2466?
193 Mikhail Volkov
 
31.08.22
18:10
(187) Не пойму как без службы серверная база Альфа-Авто работает? Сейчас на сервере только одна служба 1C:Enterprise 8.3 Server Agent (x86-64) с исполняемым файлом "C:\Program Files\1cv8\8.3.19.1522\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1690 -d "C:\Program Files\1cv8\srvinfo_1641", и та не работает (останавливается). Может я ее не вижу среди служб?
194 Mikhail Volkov
 
31.08.22
18:28
И не ставится, т.е. установка из Platform\8.3.10.2466\x86_64\ проходит без ошибок, окно https://tavalik.ru/wp-content/uploads/2014/07/zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij_03.png не появляется, и служба не устанавливается!?
195 Волшебник
 
31.08.22
18:33
сервер не зависит от конфигурации
196 Mikhail Volkov
 
31.08.22
19:15
(195) Да, но для любой серверной базы нужна служба? КА1 работала без порта в строке подключения на 8.3.10.2466 (и сейчас работает), а с портом на 8.3.19.1522.
197 Mikhail Volkov
 
31.08.22
19:38
(193) Служба работает (не останавливается).
198 Mikhail Volkov
 
31.08.22
19:51
(191) Службы на этот эксперимент не влияют?
199 Kassern
 
31.08.22
23:49
(198) Причем тут службы 1с? Простой пример. У вас есть 2 файловые базы, нужно от одной базы подключиться к другой через Ком. В этом варианте вообще нет кластера, сервера 1с и т.д. Для ком соединения важна библиотека ком коннектор. Там где вызывается это соединение 1ска должна иметь доступ к обертке этой библиотеки. Библиотека должна быть зарегистрирована в ОС путем regsvr32 там, где вызывается это соединение.
200 Mikhail Volkov
 
02.09.22
12:31
(199) Если службы не причем, то надобность в этом эксперименте вроде отпадает: единственное на что у меня падает подозрение - это неправильное обновление последней платформы (вроде только цифры в реестре менял номера платформы) до сих пор не знаю как правильно? Но со службой не чего не получается, а делать что-то надо... Внешнюю обработку не стал делать, написал в старой файловой копии Альфа-Авто:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    СтрокаПодключения = "File=" + ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы)
                      + ";Usr=" + ?(ПустаяСтрока(ИмяПользователя), "Администратор", ИмяПользователя)
                      + ";Pwd=" + ?(ПустаяСтрока(Пароль), "123", Пароль) + ";";
    Сообщить("СтрокаПодключения: " + СтрокаПодключения, СтатусСообщения.Информация);
    Попытка
        Сообщить("Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 " + ТекущаяДата(), СтатусСообщения.Информация);
        БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522");
        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);
        СтрокаСообщенияОбОшибке = "";
        Сообщить("Подключение выполнено к базе: '" + ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы) + "' " + ТекущаяДата(), СтатусСообщения.Информация);
    Исключение
        СтрокаСообщенияОбОшибке = "При попытке соединения с COM-сервером произошла следующая ошибка:" + Символы.ПС + ОписаниеОшибки();
        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);
    КонецПопытки;
КонецПроцедуры
Запустил ее на платформе 8.3.10.2466, база \\corp.akit\workspace$\1c\1С\PatrCA запущена на 8.3.19.1522, в итоге:
СтрокаПодключения: File=\\corp.akit\workspace$\1c\1С\PatrCA;Usr=Администратор;Pwd=123;
Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 02.09.2022 14:03:41
Подключение выполнено к базе: '\\corp.akit\workspace$\1c\1С\PatrCA' 02.09.2022 14:03:50
т.е. базы на разных платформах, но в строке соединения нет порта! Может его убрать в рабочем варианте?
Да, перенес обработку в пустую конфигурацию (сохранил ее как внешнюю обработку, и вставил в пустую конфигурацию), но запустить ее не смог, выдает: https://ibb.co/ByWh1MW , где, какую галочку надо поставить?
201 Mikhail Volkov
 
02.09.22
14:23
Нет, без порта все так же: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса
202 Kassern
 
02.09.22
16:10
(201) Вы можете установить тупо 1ску платформу, создать файловую базу, зарегать ком коннектор, создать обертку в компонентах винды и попробовать вызвать подключение к этой файловой базе? Тут вам не нужен кластер, ни порт и прочая фигня.
203 Mikhail Volkov
 
02.09.22
16:55
(202) У меня файловых копий полно. Обертка создана еще для рабочего режима. Успешно Com-соединился из базы копии Альфа-Авто с копией базы КА на 8.3.19.1522 - другой платформе. И что, это же файловые базы? Создать новую пустую базу не смог https://ibb.co/ByWh1MW
204 Mikhail Volkov
 
03.09.22
09:03
(202) Значит обертка и служба компонентов невиноваты в моей проблеме. Совсем забыл у меня же 2 сервера: PERSEUS - сервер терминалов, на котором все и делаю: службы и служба компонентов, и Andromeda - SQL сервер, на нем все делаю также как на PERSEUS, службы во всяком случае. Служба 1C:Enterprise 8.3 Server Agent (x86-64) для 8.3.10.2466 со стандартным диапазонов портов на нем сохранилась, наверное поэтому работает Альфа-Авто? А может на PERSEUS службы вообще не нужны? Или теперь нужны для службы компонентов? Или ее перенести на Andromeda?
205 Mikhail Volkov
 
03.09.22
10:16
Решил на Andromeda сделать такую же Службу компонентов как на PERSEUS, но версии у них разные (Рус/Eng). V8COMConnector - это которая в Eng версии?
206 Mikhail Volkov
 
03.09.22
10:18
Службы компонентов на Andromeda и PERSEUS https://ibb.co/jJR53gB
207 Mikhail Volkov
 
04.09.22
14:55
На Andromeda сделал приложение V8_ComConnector и в нем компоненту V83.COMConnector_8.3.19.1522 (только одну обертку), но это не помогло - все так же, согласно (202) с обертками у меня все нормально (203). Решил усложнить эксперимент - Com-соединиться с серверной базой:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Сервер = ?(ПустаяСтрока(Сервер) И Серверная, "andromeda", Сервер);
    СтрокаПодключения = ?(Серверная, "Srvr=" + ?(ПустаяСтрока(Сервер), "andromeda", Сервер) + ";Ref=" + ?(ПустаяСтрока(КаталогБазы), "PatrCA", КаталогБазы),
                                     "File=" + ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы))
                      + ";Usr=" + ?(ПустаяСтрока(ИмяПользователя), "Администратор", ИмяПользователя)
                      + ";Pwd=" + ?(ПустаяСтрока(Пароль), "2001221", Пароль) + ";";
    Сообщить("СтрокаПодключения: " + СтрокаПодключения, СтатусСообщения.Информация);
    Попытка
        Сообщить("Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 " + ТекущаяДата(), СтатусСообщения.Информация);
        БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522");
        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);
        СтрокаСообщенияОбОшибке = "";
        Сообщить("Подключение выполнено к базе: '" + ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы) + "' " + ТекущаяДата(), СтатусСообщения.Информация);
    Исключение
        СтрокаСообщенияОбОшибке = "При попытке соединения с COM-сервером произошла следующая ошибка:" + Символы.ПС + ОписаниеОшибки();
        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);
    КонецПопытки;
КонецПроцедуры

Получил другую ошибку:
СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;
Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 04.09.2022 16:18:10
При попытке соединения с COM-сервером произошла следующая ошибка:
{Обработка.ТестComСоединение.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Несоответствие версий клиента и сервера 1С:Предприятия
Различаются версии клиента и сервера (8.3.19.1522 - 8.3.10.2466), клиентское приложение: COM-соединение
Для sql баз обертка не работает?
208 СеменовСемен
 
04.09.22
17:59
(207) так у тебя сервер 8.3.10
тебе нужно делать V83.COMConnector_8.3.10.2466
209 Mikhail Volkov
 
05.09.22
08:57
(208) Пытаюсь Com-соединиться из файловой базы обычных форм с серверной базой. Где делать V83.COMConnector_8.3.10.2466 вместо БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522");?
210 Mikhail Volkov
 
05.09.22
13:04
(208) Ну заменил на БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522"); хотя в нем dll C:\Program Files\1cv8\8.3.10.2466\bin\comcntr.dll, получил: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован
211 Mikhail Volkov
 
05.09.22
13:16
Описался (210), заменил на БазаКА = Новый COMОбъект("V83.COMConnector_8.3.10.2466");
212 СеменовСемен
 
05.09.22
14:19
(210) да сделай ты нормально с самого начала.
Если не получается исправлять - удаляй и делай снова
213 Kassern
 
05.09.22
14:23
(211) У вас есть понимание, где отработает комконнектор, когда вы используете &НаСервере Новый COMОбъект("V83.COMConnector..)? У вас же 2 кластера (возможно 2 различных физических сервера). Как вы думаете, возьмет с сервера, где вы запускаете обработку, или с сервера, где опубликован кластер базы, из которой вы вызываете соединение?
214 Mikhail Volkov
 
05.09.22
15:53
(213) Пытаюсь Com-соединиться из той же файловой базы обычных форм с серверной базой. Похоже нет понимания, объясни...
215 Kassern
 
05.09.22
15:58
(214) когда вы выполняете код с директивой &НаСервере, то он отрабатывается сервером, где установлен кластер текущей базы. Простой пример. Есть у вас Сервер Андромеда с кластером, где развернута база Альфа-авто, есть у вас сервер Основной, где у вас развернута тестовая база. Так вот если вы запустили код в тестовой базе с директивой &Насервере, то он отработает на сервере Основной и будет искать там обертку для вашего ком коннектора.
216 Kassern
 
05.09.22
16:01
Если вы запускаете ком коннектор с директивой &НаКлиенте то КомКоннектор будет использоваться текущего рабочего места, где запущена 1ска.
217 Mikhail Volkov
 
05.09.22
17:02
(216) В тестовом варианте запускаю Com-соединение из обычной формы, т.е. &НаКлиенте? В рабочем варианте запускаю из общего модуля, &НаСервере? (в ОФ нет процедур &НаКлиенте и &НаСервере) И что, как правильно писать код? В тестовом варианте так и так пробовал: с "V83.COMConnector_8.3.19.1522" и с "V83.COMConnector_8.3.10.2466", результат: (207) и (210) - оба отрицательные.
218 Mikhail Volkov
 
05.09.22
17:12
(212) В новом релизе КА (ERP): Рекомендуемая версия платформы 8.3.21.1302 (и выше) - хочу обновить 2-ю платформу, службу надо обновлять, как?
219 ejikbeznojek
 
05.09.22
17:24
Переделал бы уже давно на вебсервис, с передаваемым туда параметром текстом запроса))
220 Kassern
 
05.09.22
17:27
(219) следующая тема тогда будет, почему у меня четырехсотую ошибку сервис возвращает, или почему апач не запускается и т.д.
221 Kassern
 
05.09.22
17:29
(218) Службу конечно нужно обновлять. Нельзя запустить клиент одной версии, а сервер другой. 1ска сразу на это ругнется. Версия клиента и сервера должны совпадать.
222 ejikbeznojek
 
05.09.22
17:30
(218) Делай сервис на модном "Автономном сервере" от 1С))
223 Mikhail Volkov
 
05.09.22
18:12
(220) Лучше бы ответил на (217).
224 СеменовСемен
 
05.09.22
19:30
(223) заново зарегистрируй класс
225 Mikhail Volkov
 
06.09.22
08:18
(224) Как?
226 Kassern
 
06.09.22
09:02
(223) как я могу ответить на этот вопрос? Я хз как вы там все установили, какие там права стоят, как сетка устроена, как вы там что регали в плане компонент и т.д. Есть мануал, как поднимать ком соединение на винде, он уже заезжен до дыр, нового вам вряд ли кто сможет подсказать без явного подключения и оценки вашей системы.
227 Mikhail Volkov
 
06.09.22
09:52
(226) Что за мануал? Можно ссылку?
228 Kassern
 
06.09.22
09:56
(227) Да любой по ком коннекту. Везде одна и та же инфа, как регистрировать библиотеку, как создавать обертку, какие галки ставить. Вот например:
https://infostart.ru/1c/articles/197627/
229 Kassern
 
06.09.22
10:19
(228) Только тут вместо V82, лучше V83 написать.
230 Mikhail Volkov
 
06.09.22
10:45
(217) В новой пустой базе только обработка ТестComСоединение (поменял Основной режим запуска на Обычный режим чтобы не было ошибки https://imgbb.com/ByWh1MW ), в саму обработку внес незначительные изменения:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Сервер = ?(ПустаяСтрока(Сервер) И Серверная, "andromeda", Сервер);
    СтрокаПодключения = ?(Серверная, "Srvr=" + ?(ПустаяСтрока(Сервер), "andromeda", Сервер) + ";Ref=" + ?(ПустаяСтрока(КаталогБазы), "PatrCA", КаталогБазы),
                                     "File=" + ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы))
                      + ";Usr=" + ?(ПустаяСтрока(ИмяПользователя), "Администратор", ИмяПользователя)
                      + ";Pwd=" + ?(ПустаяСтрока(Пароль), "2001221", Пароль) + ";";
    Сообщить("СтрокаПодключения: " + СтрокаПодключения, СтатусСообщения.Информация);
    Попытка
        Сообщить("Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 " + ТекущаяДата(), СтатусСообщения.Информация);
        БазаКА = Новый COMОбъект("V83.COMConnector_8.3.19.1522");
        ТекCOMОбъект = БазаКА.Connect(СтрокаПодключения);
        СтрокаСообщенияОбОшибке = "";
        Сообщить("Подключение выполнено к базе: '" + ?(Серверная, "Srvr=" + ?(ПустаяСтрока(Сервер), "andromeda", Сервер) + ";Ref=" + ?(ПустаяСтрока(КаталогБазы), "PatrCA", КаталогБазы),
        ?(ПустаяСтрока(КаталогБазы), "\\corp.akit\workspace$\1c\1С\PatrCA", КаталогБазы)) + "' " + ТекущаяДата(), СтатусСообщения.Информация);
    Исключение
        СтрокаСообщенияОбОшибке = "При попытке соединения с COM-сервером произошла следующая ошибка:" + Символы.ПС + ОписаниеОшибки();
        Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Информация);
    КонецПопытки;
КонецПроцедуры

И вроде без ошибок соединилась:
СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;
Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 06.09.2022 12:39:43
Подключение выполнено к базе: 'Srvr=andromeda;Ref=PatrCA' 06.09.2022 12:39:51
231 Kassern
 
06.09.22
10:47
(230) поздравляю, вопрос решен?
232 Mikhail Volkov
 
06.09.22
11:08
(231) Нет, это файловая база подключается к серверной. Попробую сделать ее серверной.
233 Mikhail Volkov
 
06.09.22
11:44
ComСоединение - тоже успех!
СтрокаПодключения: Srvr=andromeda;Ref=PatrCA;Usr=Администратор;Pwd=123;
Начало подключения через COMОбъект: V83.COMConnector_8.3.19.1522 06.09.2022 13:33:03
Подключение выполнено к базе: 'Srvr=andromeda;Ref=PatrCA' 06.09.2022 13:33:11
Но в тестовой базе подключаюсь из формы (т.е. &НаКлиенте?), а в рабочей базе запускаю из общего модуля, &НаСервере?
234 Mikhail Volkov
 
06.09.22
14:19
Дело сдвинулось, вроде нашел ошибку.
235 Kassern
 
06.09.22
14:52
(234) В чем проблема была?
236 Mikhail Volkov
 
06.09.22
16:19
(235) В формировании "V83.COMConnector_8.3.19.1522" в БазаКА = Новый COMОбъект("V83.COMConnector_" + НомерВерсии); Когда делал обертку в службе компонентов в названии приложения не мог поставить точки, заменил их "_", а НомерВерсии прописал как СтрЗаменить(НомерВерсии, ".", "_"). А точки пишутся в названии компоненты. После в службе компонентов все исправил, а в коде нет, оставил СтрЗаменить(НомерВерсии, ".", "_") - в общем "сам дурак", не внимательный.
237 Kassern
 
06.09.22
16:25
(236) да уж...В общем, как и писал, чудес не бывает.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс