Имя: Пароль:
1C
 
ОписаниеТипов при СОМ соединении
,
0 Альбатрос
 
15.11.16
14:19
1С:Предприятие 8.3 (8.3.8.2167)
Пытаюсь в базе, к которой подключился по СОМ типизировать колонки ТЗ. Делаю так:

ТЗУТ = БазаУТ.NewObject("ТаблицаЗначений");
    ТЗУТ.Колонки.Добавить("Склад",        БазаУТ.NewObject("ОписаниеТипов","СправочникСсылка.Склады"));
    ТЗУТ.Колонки.Добавить("Номенклатура", БазаУТ.NewObject("ОписаниеТипов","СправочникСсылка.Номенклатура"));

Выводит ошибку про незарегистрированный класс.
Как правильно типизировать?
1 Лефмихалыч
 
15.11.16
14:25
попробуй инициализировать описание типов массивом типов, а не строкой
2 Serginio1
 
15.11.16
14:32
Используй внешние отчеты Как через оле задать отбор?

Премущество это отладка и использование интеллисенсе
3 Альбатрос
 
15.11.16
14:38
(1) (2) Я поторопился, сорри. Проблема пока не в типизации, а вот здесь:

    Попытка
        Соединение = Новый COMобъект("V83.ComConnector");  
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;


Выдает вот такую ошибку:

{ВнешняяОбработка.ОприходованияНаОснованииПостановкиНаБаланс.Форма.Форма.Форма(87)}: Ошибка при вызове конструктора (COMобъект): -2147221164(0x80040154): Класс не зарегистрирован
4 azernot
 
15.11.16
14:40
Необходимо от имени администратора выполнить команду:
Regsvr32 «C:\Program Files\1cv8\8.х.хх.хх\bin\comcntr.dll»
где 8.х.хх.хх - это версия платформы в которой запускаются обе базы.
5 Альбатрос
 
15.11.16
14:45
(4) Это не помогает.
Стоит дополнить, что в других базах создание коннектора работает нормально. Базы все на одной платформе, на одном сервере. Хрень какая-то...
6 Лефмихалыч
 
15.11.16
14:49
7 Альбатрос
 
15.11.16
14:54
(6) Чот я ссу без админа туда лезть :)
А почему для других баз СомОбъект работает?
8 Serginio1
 
15.11.16
15:37
Может для внешнего отчета нужно открыть с помощью
ВнешниеОбработки.Создать(ПутьКОбработке_epf",ложь);
9 Serginio1
 
15.11.16
15:38
Создать(<ПолноеИмяФайла>, <БезопасныйРежим>)
10 Лефмихалыч
 
15.11.16
15:42
(7) думаешь админ не зассыт?..
почему для других - вопрос. Либо СОМ-объектт создается на другой машине, где он зарегистрирован, либо СОМ-объект все-таки есть, но у него имя другое (например v83.comconnector.1) либо это неправда, что для дугих баз все работает. Либо что-то еще неправда
11 Torquader
 
15.11.16
16:53
Может быть, для других баз там V82.
Кроме того, можно прописать ключ в реестр пользователя, а не системы - тогда этот ключ будет действовать только под пользователем, у которого прописан - так вероятность что-то исправить в системе будет минимальна.
12 Альбатрос
 
16.11.16
09:47
Всем большое спасибо! Помогла вот эта инструкция:
Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С
13 Serginio1
 
16.11.16
09:57
(12) Проще установить 64 разрядный comcntr который запрашивается при установке
14 Serginio1
 
16.11.16
09:59
http://catalog.mista.ru/public/197627/
Com-соединение
15 Альбатрос
 
16.11.16
10:05
(13) Компоненту устанавливал на сервере, сообщал, что все ОК, компонента успешно установлена. Но коннектор все равно не работал.

(14) Ну собссно это то же самое, что и в (12), разве нет?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший