Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

как идентифицировать примитивный тип в com соединении

как идентифицировать примитивный тип в com соединении
Я
   ASimonova
 
30.10.20 - 11:07
1С:Предприятие 8.3 (8.3.17.1549)

создаю построитель запроса в ком-соединении, из него идентифицирую параметры запроса, у этих параметров есть тип, он, есесно COMObject, так вот если он ссылочного типа, он легко идентифицируется через метаданные.
и вопрос следующий: как идентифицировать тип, если он приходит примитивного типа
   ДенисЧ
 
1 - 30.10.20 - 11:08
если КОМ.ТипЗнч(комзапрос.параметры.ВыбраннаяДата) = КОМ.Тип("Дата")
так не прокатывает?
   ASimonova
 
2 - 30.10.20 - 13:02
(1) нет, ком так не умеет(
   ДенисЧ
 
3 - 30.10.20 - 13:03
КОМ.XMLСтрока(КОМ.ТипЗнч(комзапрос.параметры.ВыбраннаяДата)) = КОМ.XMLСтрока(КОМ.Тип("Дата"))

А так? ))
   SleepyHead
 
4 - 30.10.20 - 13:09
(0) Я другим путем пошел. Делаю внешнюю обработку в составе той базы, к которой собираюсь подключаться. Все отлаживаю на ней. В обработке предусматриваю программный интерфейс, в который передаю параметры, они обычно простые - число, строка, дата, и по ком-соединению передаются без проблем.

Ответ обработки может быть любой - таблица значений, список итп, нужно его просто обойти. Если надо скопировать - создать такой же объект в текущей базе и перезаписать, конечно же, работать при этом приходится с примитивными типами.

Но для моих целей этого хватает.
   Ненавижу 1С
 
5 - 30.10.20 - 13:27
Примитивный тип передается через com прозрачно
То есть дата и через соединение дата
   seperblunt2
 
6 - 30.10.20 - 13:32
(5) там приходит не значение а тип параметра
   acht
 
7 - 30.10.20 - 13:46
(0)
МояПеременная = КОМ.Переменная;
Сообщить(ТипЗнч(МояПеременная));

Что выведет?
   ДенисЧ
 
8 - 30.10.20 - 14:11
(7) Дай попробую угадать...
COMобъект? ))
   acht
 
9 - 30.10.20 - 14:34
(8) А ты попробуй, сделай над собой усилие. Жопку в горсть и хотя бы:

КомСсылка = База.Справочники.Номенклатура.НайтиПоКоду("123");
МояПеременная = КомСсылка.Наименование;

Сообщить(ТипЗнч(МояПеременная));
   ДедМорроз
 
10 - 31.10.20 - 16:45
Проблема с числами в том,что он внутреннее представление 1с конвертики в double и теряет точность и значения после запятой.
   acht
 
11 - 31.10.20 - 20:40
(10) И в 7.7 нет булева типа, это важно!
   Hmster
 
12 - 31.10.20 - 22:07
СравнениеCom = com.newobject("СравнениеЗначений")
Результат = СравнениеCom.Сравнить(КОМ.ТипЗнч(комзапрос.параметры.ВыбраннаяДата),КОМ.Тип("Дата"));
   acht
 
13 - 31.10.20 - 23:05
(12) Метод объекта не обнаружен (ТипЗнч)
Беда с вами прям какая-то

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