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

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

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

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

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

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

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

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