Добрый день, возникла необходимость подключаться к 7ке 7.70.027 из обработки 8ки 1С:Предприятие 8.3 (8.3.18.1289)
и там и там переписанная торговля, но, полагаю, это к делу относится опосредованно, 8ка крутится на MS SQL Server 2017.
Все действия происходят в системе Windows Server 2012 R2 Standard
7ка прописана как сетевая, я понимаю это как файловая, 7ка копия, кроме этой обработки туда никто не стучится, естественно все открывается, все работает, если тыркаем её как пользователь.
Но когда пытаюсь подключиться программно:
База77 = Новый COMОбъект("V77.Application"); // Этот фрагмент отрабатывает, все ок
База77.Initialize(База77.RMTrade,"","NO_SPLASH_SHOW"); //Ошибка здесь
Управление переходит на 7ку, и в диспетчере появляется фоновый процесс 1C:V7 starter program (multi-user) и больше ничего не происходит, а 8 ка зависает на много времени, потом вывалится с неинформативной ошибкой подключения
То же самое, под тем же пользователем в той же базе, но файловой(я про 8ку), все отрабатывает нормально, выскакивает окошко выбора базы, выбираешь, заходишь и проходит подключение, все ок
(7) Ну, чтоб работало "на сервере" нужно в профиле учетной записи сервера 1с8 в реестре прописать базу.
Если не найдете как - напишите в ЛС, я попозже отвечу.
(6)Да, оно будет работать, Но, весь функционал обработки работает через сервер не ради удобства), просто обрабатывать всю кипу инфы на клиенте обрабатывать очень долго, такой вариант не оптимальный
ну и конечно переписывать 4к строк обработки не очень хочется)
(7) Ну, чтоб работало "на сервере" нужно в профиле учетной записи сервера 1с8 в реестре прописать базу.
Если не найдете как - напишите в ЛС, я попозже отвечу.
Но, весь функционал обработки работает через сервер не ради удобства), просто обрабатывать всю кипу инфы на клиенте обрабатывать очень долго
А зачем обрабатывать? Получаете на клиенте все необходимые данные (там же все поля примитивного типа будут) и отправляете на сервер. Далее обрабатываете их на сервере так, как если бы вы их получили на сервере, то есть серверный код менять не требуется.
самое первое - подключиться сначала пожд этим пользователем явно интерактивно. убрать все настройки инфоокон. а то может подключились а там окно мастера висит.. ждет...
Вообще, нужно, что бы в списке баз 7.7 эта база присутствовала для пользователя windows, под которым запускается сервер 1С 8.
Для анализа поведения запустите 7.7 под любым пользователем windows, удалите базу 1С из списка баз.
Потом запустите 1С 8 под этим же пользователем и попробуйте запустить COM-соединение не с сервера а с клиента.
Вы увидите что происходит при отсутствии базы 7.7 в списке.
(будет висеть окно добавления новой базы в список баз, и пока не нажмете ОК - ничего дальше не произойдёт, а если база будет в списке, то Ваш код отработает без проблем).
При этом, бывают ситуации, что данные о списке баз куда-то пропадают)))
Для решения этой проблемы я использовал батник, который заносил список баз в реестр, и только после этого запускал 1С.
И ещё:
Я удалял файлы 1cv7Cnfg.tip и 1cv7Main.tip из каталога bin 1С 7.7, что-бы исключить отображение "Советов дня", которые так же могут модально висеть и не давать работать, но это для запуска обработок в 7.7 через Планировщик Windows, тут наверно не должно мешать...
morin помог, объяснил как базу прописать в реестре, теперь подключение проходит, все ок, Но) дальше следует ошибка создания объекта... и опять тупик, то есть
База77 = Новый COMОбъект("V77.Application"); // Этот фрагмент отрабатывает, все ок
База77.Initialize(База77.RMTrade,"","NO_SPLASH_SHOW"); //Здесь теперь тоже все отрабатывает
Фирма77 = База77.CreateObject("Справочник.Фирмы"); // А вот здесь теперь выскакивает ошибка "Неудачная попытка создания объекта"
База77.Initialize(База77.RMTrade,"","NO_SPLASH_SHOW"); //Здесь теперь тоже все отрабатывает
Фирма77 = База77.CreateObject("Справочник.Фирмы"); // А вот здесь теперь выскакивает ошибка "Неудачная попытка создания объекта"
Если эти строчки и в коде идут так, то в этом нет никакого смысла – аутентификация не выполнена, база не выбрана. Ну и результат База77.Initialize смотрите.
Так в принципе возможно подключаться к 1с7 (скл) из 1с8 в фоновом режиме или нет? На каком-то форуме читал, что это в принципе не возможно. У меня проблемы с подключением к 1с7 скл в фоновом режиме. К 1с7 фаловой из 1с8 в фоном режиме подключается без проблем. При попытке инициализировать 7.7 выдает ошибку: Ошибка при вызове метода контекста (Initialize): Неизвестная ошибка. База 7.7 на SQL 2008 R2
(21) прошло 9 лет, а вопрос еще актуальный=))
Подключение OLE в регламентном задании на 64-битном сервере Переименную тему, наверное не гуглится?
Подключение OLE в регламентном задании на 64-битном сервере или подключение 1С 8 к 1С 7.7.
Думаю так больше шансов будет!
это у нас не появилось:
А также как минимум DCOM (нужно проверить, за давностью установки, не уверен в надобности).
Пуск - Выполнить - DCOMCNFG.
Там разворачиваем "Службы компонентов" - "Компьютеры" - "Мой компьютер" - "Настройка DCOM":
V77.GeneralPropPage
Если их нет, значит у вас что-то с доступом. Настраиваем и начинаем заново установку.
И заработало только при запуске службы "Агент сервера 1С:Предприятия 8.Х (x86-64)" с системной учеткой и только при влюченой галке "Разрешить взаимодествие с рабочим столом"