8.х Англоязычное программирование

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем [GIGA]DEDUSHKA, 2 окт 2008.

  1. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Как через VBA написать обращение к справочникам (например Номенклатура), только на английском языке (русский не поддерживается)?
  2. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Никак.
    Только если через переменную, которой присвоить значение оригинального имени справочника.

    Либо, если база крутится на сиквеле, прямым запросом туды.
  3. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    А что-то типа такого:...
    Set Spravochniki = V8.Catalogs
    Set a = Spravochniki("Номенклатура") 'ругается на этом месте (пишет, что объект не поддерживает данные метод)
    Call a.Select()

    P.S. Русский язык допускается везьде как строка (в кавычках). Нельзя чтобы в коде были русские буквы.
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Уверен, что скобки круглые д.б.?
    Скинь код с момента подключения и до момента выбора.
  5. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    на квадратные он ругается

    Set OneC = CreateObject("V81.COMConnector")
    Set V8 = OneC.Connect("Srvr='buhdb.Radius.ru';Ref='UPP';Usr='Белоусов С.В.';Pwd='********';")
    Ну а дальше идет выбор.
    Если писать внешнюю обработку в 1С, то скобки должны быть квадратные.
    А как быть, если я пишу из другой ИС?
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    В чем фишка. Я не силен в VBA, объясню на пальцах. У справочника есть метод select().
    У тебя select. Скобки убирает компилятор VBA. Соответственно метод не метод вовсе, а команда VBA. Дело в скобках.
  7. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Вот что он пишет:
    Объект не поддерживает это свойство или метод: 'Spravochniki'
    Ошибка выполнения Microsoft VBScript

    На квадратные скобки ругается:
    Set a = Spravochniki["Номенклатура"]
    Предполагается наличие окончания инструкции
    Ошибка компиляции Microsoft VBScript

    А через Метаданные нельзя как-нить?
  8. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Справочник ты получаешь нормально.
    Не надо мудрить с квадратными.
    Вопрос в скобках у select-а. У восьмерочного спр. есть метод Select(), он предполагает обязательное наличие скобок.
    У тебя же их нет.
    Сёдня порою матчасть вечером. Я не цеплялся никогда извне к восьмерке таким образом.
  9. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    а че нет функции которая строкой посылает команды в 1с?
    в 7.7 есть
    set v7=createobject("V77.Application")
    инициализация
    v7.EvalExpr("строка выражениея на языке 1с")
    v7.ExecuteBatch("строка операторов 1с")
  10. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Ваша идея мне понравилась! Внешеней обработкой сработало:
    а = Вычислить("Справочники.номенклатура.Выбрать()");
    Пока а.Следующий() Цикл
    Сообщить(а.Наименование);
    КонецЦикла;
    но в VB нет:
    Set a=V8.Eval("Справочники.Номенклатура")
    Пишет: объект не поддерживает это свойство или метод
  11. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Eval вычисляет выражение и возвращает значение
    Execute выполяент команду

    в справке ничего лучше не нашел
  12. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Пробовал еще так:
    Set a=Eval("V8.Справочники.Номенклатура")
    ничего не помогло, выдает ошибку ~не удается найти имя V8 этого выражения
  13. coder1cv8
    Offline

    coder1cv8 Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Просто тихий ужас!...
    Spravochniki["Номенклатура"] - это вообще что-то! Насколько извращенной фантазией надо обладать, что бы так написать?!... )

    V8.Catalogs["Номенклатура"].Select()

    ЗЫ: нет Eval-а в восьмерке...
  14. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Предложите вашу идею
    P.S. Eval есть в восьмерке:
    Код:
    а = Eval("Справочники.номенклатура.Выбрать()");
    Пока а.Следующий() Цикл
    Сообщить(а.Наименование);
    КонецЦикла;
    
  15. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Чувак, с тебя спасибо!!
    Код:
    Sub first()
    
    Set OneC = CreateObject("V81.COMConnector")
    Set V8 = OneC.Connect("Srvr=--------;Ref=----;Usr=-----;Pwd=-----")
    Set q1 = V8.newObject("Запрос")
    q1.Text = "ВЫБРАТЬ Сотрудники.Наименование Как Сотрудник ИЗ Справочник.СотрудникиОрганизаций КАК Сотрудники"
    Set Result = q1.Execute
    
    Set Tabl = Result.Выгрузить()
    For i = 0 To Tabl.Количество() - 1
    MsgBox Tabl.Получить(i).Сотрудник
    Next i
    
    
    End Sub
    
    
    
    У меня кстати методы, написанные по-русски, влет пошли..
  16. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    может скобочки?=)
    Set a=V8.Eval("Справочники.Номенклатура()")

    или
    "создатьОбъект(Справочник.Номенклатура)" - ет нав в 7.7 так бы
  17. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    запрос рулит=)
  18. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    А если я хочу не запросом что-то достать, а добавить элемент справочника?
    Может эта ссылка поможет, только я в ней ничего не понял
    http://forum.developing.ru/showthread.php?t=7855&page=2
  19. Мастер_миража
    Offline

    Мастер_миража Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    а в 8 кажется есть катакая штурка ".ссылка"...не пробовал?
  20. TopicStarter Overlay
    [GIGA]DEDUSHKA
    Offline

    [GIGA]DEDUSHKA Опытный в 1С

    Регистрация:
    7 мар 2008
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Даже и не знаю как ей можно воспользоваться...
    Мне надо не только читать, но и править, добавлять...
Похожие темы
  1. sscc
    Ответов:
    0
    Просмотров:
    1.425
  2. Максим!
    Ответов:
    3
    Просмотров:
    659
  3. Матвеева Ирина
    Ответов:
    1
    Просмотров:
    391
Загрузка...

Поделиться этой страницей