Имя: Пароль:
1C
 
Получение данных по OLE
0 geminisf
 
26.06.20
08:47
Доброго всем дня.
Возникла проблема получения данных по OLE. Пытаюсь в восьмерке получить данные из семерки вот таким кодом:

    ПутьКБазе="E:\base";
    Пользователь="Администратор";//пользователь базы 7.7
    Пароль="";
    МонопольныйРежимOLE = ""; // " /m";
    ЗапускБезЗаставки = 1;
    База = Новый COMОбъект("V1CEnterprise.Application");
    СтрокаПодключения = "/D"""+СокрЛП(ПутьКБазе)+""" /N"""+СокрЛП(Пользователь)+""" /P"""+СокрЛП(Пароль)+"""";
    РезультатПодключения=База.Initialize(База.RMTrade,СтрокаПодключения,?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));

    Если НЕ РезультатПодключения Тогда
        Сообщить("Не удалось произвести подключение к информационной базе");
    КонецЕсли;

    Спр = База.CreateObject("Справочник.Номенклатура");
    АлкСпр = База.CreateObject("Справочник.алкНоменклатура");
    СпрЕГАИС = База.CreateObject("Справочник.ЕГАИС_Номенклатура");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        НаименованиеТовара = Спр.Наименование;
        ПолноеНаименованиеТовара = Спр.ПолнНаименование;
        ШтрихкодТовара = спр.БазоваяЕдиница.ШтрихКод;
        НДСТовара = Спр.СтавкаНДС;                
        ВесТовара = Спр.Вес;
    КонецЦикла;


Всё замечательно работает, кроме получения ставки НДС. Вместо значения получаю "COMОбъект" с типом "COMОбъект". Все остальные реквизиты прекрасно получаю. Ставка НДС в семерке имеет тип "Перечисление". Есть у кого мысли, как получить ставку?
1 МихаилМ
 
26.06.20
09:24
2 geminisf
 
26.06.20
09:43
(1) Спасибо вам. Я уже тоже нашел решение. Вдруг кому понадобится:

НДСТовара = Спр.СтавкаНДС.Идентификатор();
3 geminisf
 
27.06.20
13:58
(2) Ага, рано обрадовался. С видом номенклатуры такое не прокатывает.
Этот код

ВидТовара = Спр.ВидНоменклатуры.Идентификатор();


выдает не вид текущей номенклатуры, а первое значение в Перечисления.ВидыНоменклатуры.
4 Волшебник
 
модератор
27.06.20
14:03
пользуйся методами Индекс(Значение) и Получить(индекс)
5 Волшебник
 
модератор
27.06.20
14:04
Менеджер = ЗначениеПеречисления.Метаданные()
6 hhhh
 
27.06.20
14:18
(3) а почему у тебя НДСТовара это ставка ндс? Вроде по идее должна быть сумма ндс? Может для твоей задачи ставка ндс и не нужна.
7 geminisf
 
27.06.20
14:37
(6) С ндс у меня уже всё хорошо, получаю то, что мне нужно. Мне нужна именно ставка. Проблема сейчас с видом номенклатуры.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший