Продолжаем разговор. Ниже функция для импорта справочника единиц измерения. Создана по образу и подобию импорта номенклатуры, так что нового там мало. Эту функцию нужно добавить в модуль scr_1CFirstImport.
function ImportUnits(){
Log.Write(1,'Первичный импорт справочника единиц измерения');
Log.Write(1,'========================================');
var Dataset = Services.GetNewItemByUSI('ds_Unit');
Log.Write(1,'Открытие справочника единиц измерения в 1С...');
var C1 = FirstImport.Obj1C;
var Units = C1.Справочники.КлассификаторЕдиницИзмерения;
var UnitsList = Units.Выбрать();
Log.Write(1,'Загрузка единиц измерения...');
var UnitObj;
var ID;while(UnitsList.Следующий()){
UnitObj = UnitsList.ПолучитьОбъект();if(!UnitObj.ЭтоГруппа){
Dataset.Append();
ID = Connector.GenGUID();
Dataset('ID')= ID;
Dataset('IntegrationID')= UnitObj.Код;
Dataset('Name')= UnitObj.Наименование;
Dataset('Description')= UnitObj.НаименованиеПолное;
Dataset('IntegrationDate')= GetTodayDate().getVarDate();
Dataset.Post();
Log.Write(1,Dataset('IntegrationID')+' '+Dataset('Name'));}
System.ProcessMessages();}
Log.Write(1,'==================================================');
Log.Write(1,'Первичный импорт справочника единиц измерения завершен.');}
На сколько я знаю групп в справочнике единиц нету, но проверку в функции на всякий случай оставил.
Пробовал оба варианты.
C1.Справочники - работает. C1.Справочники.Номенклатура - нет.
Я и выборку пробовал делать из Клиентов. Результат "Таблица не найдена Справочники.Клиенты".
function dataload(){
var v8=new ActiveXObject("V81.COMConnector");
path='E:\\1C\\DB';
db='TEST';
user='user1';
password='123456789a';
conn = v8.Connect("File=\""+path+""\"";Ref=\""""+db+""\"";Usr=\""""+user+""\"";Pwd=\""""+password+""\"";"");;
С русскими названиями можно работать только если инициализировали объект Application. Если работа идет с COMConnector, то там все интерфейсы, все процедуры и объекты называются по английски, это надо смотреть SDK по COM-объекту 1С.
По поводу справочников, их правильное название лучше смотреть в самой 1С, например, в конфигураторе.
В тексте указанном выше есть строка
"tab = conn.Справочники.Клиенты;"
У нас в 1С такого справочника нет, есть справочник "Контрагенты".
В приведенным скрипте "ИЗ Справочники.Клиенты" - не верно. Верно"ИЗ Справочник.Клиенты" :smile:
И при работе с V81.Application надо было обращаться к самому объекту Application. Я обращался к Connect как в V81.COMConnector.
Но теперь я во всем разобрался :smile:
P.S. У меня через COMConnector работают процедуры и объекты на русском.
Для работы с СОМ объектом 1С, сама 1С должна быть установлена у меня на компьютере? Или всё таки можно только зарегистрировать сам объект, который лежит где-то на сервере 1С?