Имя: Пароль:
1C
 
Работа с перечислением через COM
,
0 offroad11
 
19.07.18
12:34
Подключился я к базе через СОМ соединение. Потребовалось сравнить перечисление примерно таким вот образом:

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

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

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

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

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

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

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