Вход | Регистрация

1С:Предприятие ::

Метки: 

Работа с перечислением через COM

Я
   offroad11
 
19.07.18 - 12:34
Подключился я к базе через СОМ соединение. Потребовалось сравнить перечисление примерно таким вот образом:

цомБаза.Перечисления.СтавкиНДС.БезНДС = цомБаза.Документ.Тч[0]СтавкаНдс

Долго не мог понять, почему не равны. Написал цикл, так же не понял в чём прикол..

Для Каждого Стрч из цомБаза.Перечисления.ставкиндс Цикл 
     Если нс.ВидБухгОперации.СтавкаНДС = Стрч Тогда 
    Сообщить("ффффффффффффффффф");    // не выводит

     КонецЕсли;
        Если нс.СтавкаНДС = Стрч Тогда 
        Сообщить("яяяяяяяяяяяяяяяяя");    // не выводит

        КонецЕсли;
    Если ББ.Перечисления.СтавкиНДС.БезНДС = стрч Тогда 
        Сообщить("чччччччччччччччччч");// а тут выводит

    КонецЕсли;
КонецЦикла;
 
  Рекламное место пустует
   lodger
 
1 - 19.07.18 - 12:48
что такое 
нс.ВидБухгОперации.СтавкаНДС
нс.СтавкаНДС
ББ.Перечисления.СтавкиНДС.БезНДС
?
   offroad11
 
2 - 19.07.18 - 12:50
(1) Прошу прощения, не пояснил,

нс = цомБаза.Документ.Тч[0]СтавкаНдс (добавленная новая строка) 
ВидБухгОперации (справочник, где указана ставка ндс)
бб = цомБаза; (база бухгалтерии)
   lodger
 
3 - 19.07.18 - 13:01
(2) (добавленная новая строка) - в новой строке значения реквизитов пустые же?
   offroad11
 
4 - 19.07.18 - 13:02
(3) нет, я предварительно их заполнил

нс.ВидБухгОперации = ББ.Справочники.ВидБухгОперации.НайтиПоКоду("Код");
нс.СтавкаНДС = нс.ВидБухгОперации.СтавкаНДС;
   offroad11
 
5 - 19.07.18 - 13:03
(3) На всякий случай даже проверил.

бб.значениезаполнено(нс.СтавкаНДС)

Возвращает истину
   lodger
 
6 - 19.07.18 - 13:07
для начала я бы избавился от двоений вроде цомБаза и бб - хрен его знает как себя ведет ком-коннектор когда их суют туда-сюда в разные переменные и общаются с каждой из них.
   offroad11
 
7 - 19.07.18 - 13:09
(6) Никакого двоения нету, я для мисты заменил бб на цом базу, что бы пользователям было понятно
   Deon
 
8 - 19.07.18 - 13:22
Ты сравнивай через XMLСтрока
цомБаза.XMLСтрока(цомБаза.Перечисления.СтавкиНДС.БезНДС) = цомБаза.XMLСтрока(цомБаза.Документ.Тч[0]СтавкаНдс)
   offroad11
 
9 - 19.07.18 - 13:25
(8) Да! Сработало, спасибо! А почему так? Почему 1с ссылки не хочет сравнивать?
   olegves
 
10 - 19.07.18 - 13:28
(9) у тебя не ссылки а СОМ-объекты
 
  Рекламное место пустует
   offroad11
 
11 - 19.07.18 - 13:37
(10) Как я понял СОМ объекты нельзя сравнить ?
   youalex
 
12 - 19.07.18 - 13:44
(11) сравнивай внутри контекста базы COM. Через СравнениеОбъектов (на стороне COM), например. Или приводи к примитивам. Через цомБаза.XMLСтрока() например.
   youalex
 
13 - 19.07.18 - 13:45
(12) *СравнениеЗначений
   SleepyHead
 
14 - 19.07.18 - 13:57
XMLСтрока()


Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует