Имя: Пароль:
1C
1С v8
Функция обЗначениеНеЗаполнено(Значение) для COMОбъект
0 Mikhail Volkov
 
25.11.20
13:24
В Альфа-Авто есть:
Функция обЗначениеНеЗаполнено(Значение) Экспорт

    Результат = Ложь;
    
    Попытка
        Результат = Не ЗначениеЗаполнено(Значение)    
    Исключение // Мутабельные типы (Объекты)
        Результат = Ложь
    КонецПопытки;
    
    Возврат Результат;
    
КонецФункции // обЗначениеНеЗаполнено()
которая дает не верный результат для COMОбъект. Пришлось в конкретном случае вместо ее написать ПустаяСтрока(COMОбъект.Наименование). Как ее поправить?
1 azt-yur
 
25.11.20
13:29
проверять надо на стороне источника com-объекта, т.е. как то так:
Соединение.ЗначениеЗаполнено(COMОбъект)
2 бомболюк
 
25.11.20
13:33
может достаточно будет сравнить с Неопределено?
3 Garykom
 
гуру
25.11.20
13:36
интересно когда уже COMОбъект окончательно умрет
4 Garykom
 
гуру
25.11.20
13:37
(3) лично я для обменов не использую COM уже хз сколько лет
только для специфических штук которые и так привязаны к винде, типа дрова к ТО и тому подобное
5 ГдеСобака Зарыта
 
25.11.20
13:41
(4) А что вместь COM?
6 Garykom
 
гуру
25.11.20
13:50
(5) http сервисы например или обмен сообщениями через брокер
7 бомболюк
 
25.11.20
13:54
(6) COM - это же не только V83.COMConnector, но и еще, например, ADODB.Connection, и так далее ;-)
8 H A D G E H O G s
 
25.11.20
14:13
Функция обЗначениеНеЗаполнено(Значение) Экспорт

Если ТипЗнч(Значение)=Тип("ComОбъект") Тогда
Попытка
Заполнено=Соединение.ЗначениеЗаполнено(Значение);
Исключение
Возврат Истина; // Это не 1С
КонецПопытки;
Возврат Заполнено;
КонецЕсли;
9 mikecool
 
25.11.20
14:16
(6) ком хорош тем, что зачастую не требует лишних телодвижений
10 Конструктор1С
 
25.11.20
14:21
Вот это костылище... Даже страшно представить себе всю кривость кода, который использует подобное
11 Garykom
 
гуру
25.11.20
14:34
(7) В один прекрасный момент захочется базу во фреш засунуть и упс ADODB.Connection там не работает.
В отличие от HTTPСоединение.
12 Garykom
 
гуру
25.11.20
14:35
(9) Когда у тебя несколько разных версий платформы 1С то "не требует лишних телодвижений" превращается в фарс и попоболь.

Посмотри старые ветки ТС
13 Mikhail Volkov
 
25.11.20
14:39
(8) Пожалуй заменю Заполнено=Соединение.ЗначениеЗаполнено(Значение); на Заполнено=ЗначениеЗаполнено(ComОбъект.DataVersion)
14 Mikhail Volkov
 
25.11.20
16:08
(12) С Com нет проблем с различными версиями платформ 1С, с OLE - есть, но думаю исправят.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.