Имя: Пароль:
1C
1С v8
Подключение из 1с8 к 1с7
0 Ver_olga
 
19.03.12
09:05
Добрый день. Подскажите пожалуйста по использованию COMобъект.
1с8, УПП, платформа 8.2.14.540, релиз 1.3.22.1, SQL.
1с7, Зарплата+Кадры, платформа 7.70.027, релиз 7.70.321, SQL.
Мне необходимо каждую ночь обновлять справочник "Физические лица" в УПП, используя справочник "Сотрудники" из Зик. Планировала запускать регламентное задание, в котором будет производиться подключение к ЗИК, сотрудники выгружаться в таблицу значений и подкачиваться в УПП.

Написала для тестирования обработку. Код для подключения 1с8 к 1с7 следующий:
//попробуем подключиться к внешней базе
ПутьКБазе1с77="\\serv_zik\baza_zik\";
//пользователь для подключения
Пользователь1с77="ПользовательЗИК";
//пароль для подключения
Пароль1с77="123456789";

База1с77=Новый COMОбъект("v77s.Application");
ПараметрыПодключения="/D"+СокрЛП(ПутьКБазе1с77)+" /N"+СокрЛП(Пользователь1с77)+" /P"+СокрЛП(Пароль1с77);
СоединениеУстановлено=База1с77.Initialize(База1с77.RMTrade,ПараметрыПодключения,"NO_SPLASH_SHOW");

//соединение есть
Если СоединениеУстановлено Тогда
сообщить("Удалось установить подключение с БД ""Зарплата+Кадры""");
Иначе
сообщить("Не удалось установить подключение с БД ""Зарплата+Кадры""");
КонецЕсли;

Тестирование осуществлялось на моей локальной машине, на ней установлена платформа 1с7, код отрабатывает как мне необходимо - подключение устанавливается, сотрудники переносятся в УПП. Но возник вопрос, как запускать данную обработку с сервера 1с8, на котором не установлена платформа 1с7 (устанавливать ее не хотелось бы). Пробовала написать код: База1с77=Новый COMОбъект("v77s.Application","serv_zik"); но выходит ошибка, связанная с незарегистрированным классом. Каким образом мне подключиться с сервера 1с8 к серверу 1с7, не устанавливая на 1с8 платформу 1с7? Заранее спасибо.
1 ДенисЧ
 
19.03.12
09:06
Установить платформу.
2 Гефест
 
19.03.12
09:07
Никак. Подключение через COM требует установленной платформы.
Разве что из базы напрямую читать
3 Ver_olga
 
19.03.12
09:13
(2) Читать напрямую из базы - делать запросы к таблице sc16?
4 Гефест
 
19.03.12
09:25
(3) Делать запросы ко всем необходимым таблицам, уж не знаю, как они у вас в базе называются
5 milan
 
19.03.12
09:31
Ну может тогда выгружать из зик ?
6 Ver_olga
 
19.03.12
09:39
(4) спасибо
(5) Наверное так и придется. Просто не хотелось выполнять 2 зависящих друг от друга действия. Загрузка в 8-ку будет зависеть от того, насколько успешно до этого произошел запуск 7-ки, выгрузка из нее данных, насколько удачно произошло считывание потом dbf. А при подключении из 1с8 в 1с7 - все в ней: открытие 7-ки, считывание данных, загрузка - практически нет никаких зависимостей от других процессов.
7 Balabass
 
19.03.12
11:01
У меня сделано так:
1. Запускаем 8. В справочнике сотрудников сделал кнопку - обновить сотрудников.
2. По кнопке открывается 7 и запускается обработка, которая выгружает сотрудников в дбф фалик на серваке. После этого 7 успешщно закрывается
3. 8 проверяет наличие фала. Если есть - то загружает его. если нет - то увы..ниче не поделаешь.
4. Профит.
8 Ver_olga
 
19.03.12
11:13
(7) А у вас 7-ка открывается на компьютере, на котором не установлена платформа 1с7?
9 Kashton
 
19.03.12
11:17
(0) Создай лучше пользователя в ЗИК латинскими буквами
10 Ver_olga
 
19.03.12
11:22
(9) я из тестирования на своем компьютере поняла, что проблема не в пользователе.
11 Balabass
 
19.03.12
11:33
(8) Естественно установлена.
12 Ver_olga
 
19.03.12
11:43
(11) спасибо за ответы. Но мне необходимо было, чтобы подключение производилось на компьютере, на котором платформа 1с7 не установлена. Из ответов, данных выше поняла, что это невозможно. Просто из описания в СП:
Синтаксис:
Новый COMОбъект(<Имя>, <Имя сервера>)
Параметры:
<Имя> (обязательный)
Тип: Строка. ProgID класса COM, с которым он зарегистрирован в системе. Например, "Excel.Application".
<Имя сервера> (необязательный)
Тип: Строка. Имя компьютера, на котором надо создать указанный объект. Если параметр опущен, то создается на данном компьютере.

я думала, что если объект создается на указанном мной сервере 1с7, то использоваться будет приложение-сервер 1cv77 именно на нем, и на сервере 1с8 его установка необязательна.
Независимо от того, куда вы едете — это в гору и против ветра!