|
Работа с перечислением через 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Строка()
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший