Имя: Пароль:
1C
1С v8
подключение к базе через сом соединение, как определить значение перечисления?
0 Misty
 
13.12.19
05:30
Добрый день. Подключаюсь к базе УТ 11.4 через COM соединение. Задача: из поступления товаров и услуг необходимо получить значение реквизита "НалогообложениеНДС" тип "ПеречислениеСсылка.ТипыНалогообложенияНДС".
trade = Новый COMобъект("V83.Application");
trade.Connect(СтрокаПодключения);
Док = trade.Документы.ПриобретениеТоваровУслуг.НайтиПоНомеру("111");
Документ находится, реквизиты считываются, а налогообложениеНДС никак. В торговле установлено какое то соответствие для поступления товаров и услуг у этого реквизита, как то так:

ПредставлениеПродажаОблагаетсяНДС = НСтр("ru = 'Закупка облагается НДС'")
Представления.Вставить(Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС,     ПредставлениеПродажаОблагаетсяНДС);
    
ПредставлениеПродажаНеОблагаетсяНДС = НСтр("ru = 'Продажа не облагается НДС'");
Представления.Вставить(Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС,   ПредставлениеПродажаНеОблагаетсяНДС);

И видно из за этого??? не работает конструкция
Если Док.НалогообложениеНДС = trade.Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС тогда
  //дейтсвие 1
Если Док.НалогообложениеНДС = trade.Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС тогда
//действие2

Хотя если я такое условие пишу в самой торговле, то там сравнение корректно и работает.
Как мне правильно написать код?
Спасибо
1 vicof
 
13.12.19
05:50
Если ВРег(Строка(trade.Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)) = ВРег("Продажа облагается НДС") тогда
  //дейтсвие 1
2 Misty
 
13.12.19
05:56
сообщить( ВРег(Строка(trade.Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)));
вывела : COMОБЪЕКТ
3 Смотрящий
 
13.12.19
05:57
XMLСтрока
4 1ctube
 
13.12.19
06:38
Через COM передаются только примитивные типы (число и строка), а не ссылки на метаданные.

Нагуглил пример: Ном = COM_ОбъектБД.Перечисления.ВидыТМЦ.Индекс(COM_ЭлементСправочника.Перечисление);
Имя = COM_ОбъектБД.Метаданные().Перечисления.ВидПеречисления.EnumValues.Get(Ном).Name;
5 unf13
 
13.12.19
06:41
COMCоединение.XMLстрока(Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий) =  "ЭкземплярТовара"
6 Misty
 
13.12.19
07:11
Спасибо большое, через XMLСтрока все получилось!!! Ура!!!