v8: Как установить булевое свойство в значение Истина при COM-соединение из 7.7 #149298


#0 by Волшебник
Как при подключении из 7.7 к 8.0 через COM-соединение установить булевое свойство объекта в значение Истина, не изменяя целевую конфигурацию на 8.0?
#1 by VZ
Если бы автор внимательно читал книжку Митичкина, он бы знал, что в v7.7 нет такого типа. А если бы внимательно смотрел на разные продукты (не только от 1С), то бы знал так же, что на этот тип нет общепринятого соглашения по представлению. Потому СОМ-соединение и не приспосабливается к объектам. Тем паче, что объявление о присоединении может быть в одном модуле, а передача параметров - в другом.
#2 by callisto
м-да...общепринято и работает, везде (!!!)0 - false(любое ненулевое значение, обычно: -1) - true
#3 by Волшебник
Я ее писал. Я прекрасно знаю, что в 7.7 нет типа "Булево". Остальная часть твоего поста нисколько не помогла мне решить проблему. В данном случае -1 не подходит. Выдается ошибка несоответствия типов.
#4 by VZ
Надо же... Вот так и раскрывают глаза :))) Вообще-то, задачу передачи такого параметра можно решить, например, через внешнюю обработку... Определить "восьмерочное" представление можно попытаться, вызвав обработку v77, с передачей ей параметра. А "семерочная" обработка должна всего-навсего сотворитьСообщить(ТипЗначенияСтр(Форма.Параметр)+"="+строка(Форма.Параметр));Сам не буду пробовать: пока не надо, и вдруг кто-то опубликует решение :)
#5 by Палыч
А v8.Булево не работает?
#6 by Волшебник
(4,5) Вы бы сначала сами попробовали, а потом предлагали. Жульничество с внешней обработкой я не очень понял. Вот есть у меня СправочникОбъект, я делаю загрузку из файла, там есть реквизит типа Булево, как мне установить его в Истина? Прогонять все через внешнюю обработку? Как ее вызвать из 7.7? Программный код, пожалуйста.
#7 by VZ
Вот интересно... В книжке MAV, рассматривая примеры коннекта к BarCode, Media Player, MS Agent... передача булевых параметров "естественна":Еще в статье на сайте Никиты Зайцева для V77 это выглядело так:
#8 by VZ
Что то не пойму претензии... или вопрос не так понял.В "семерке" нет булева значения. В той же Типовой Бухии применяется два механизма реализации: через Перечисление.Булево со значениями Да и Нет, и через числа 0,1 (особенно там, где реквизиты этого "булева" значения отображаются флажками на форме. Поэтому, если речь идет именно о Справочнике, в "семерошной" реализации это "булево" значение с большой вероятностью представлено именно числами. И при переносе параметров не обойтись без конструкции типаОбъект.БулевРеквизит = ?(ПереданноеСемерошноеЗначение=0,Ложь,Истина);Если же в "семерошном" справочнике реквизит имеет значение Перечисление, то проблема опять же известна: принять можно либо число , либо строку... И без обращения к методам ПорядковыйНомер или Идентификатор не обойтись никак...Про вызов семерошной обработки совсем непонятно... Трудность-то в чем?
#9 by Палыч
В таком случае, должен оговориться, что у меня -1 в качестве значения "Истина" работает замечательно.Может быть, действиетельно, имеет место "ошибка несоответствия типов"?
#10 by VZ
С каким объектом?Вишь, с Агентом варианты:Получается, для M$ Agent'а представление булево 0,1?
#11 by Палыч
Да, кстати, код тривиальный:...;-)
#12 by Волшебник
мне не нужен Agent. Я вполне допускаю, что с ним все ок.Прочитай сабж очень внимательно, там все сказано. Нужно из 7.7 подключиться к 8.0 и установить свойство в Истина. Неужели это так сложно? попробуй, наивный чукотский юноша.
#13 by VZ
Execute
#14 by Палыч
Абижаешь, начальник... код рабочий. ;-)Проверено на 1С:Предприятие 8.0 (8.0.13.32) и 7.7 (7.70.021).
#15 by acsent
Как вариант можно написать функцию в модуле соединениятипа
#16 by Волшебник
Проверю. У меня немножко другое распределение релизов: 12-й релиз 8.0 и 23-й релиз 7.7. Может быть в 13-м релизе это уже исправили.-- Ты не понял задачу. Нужно установить, а не получить. И менять конфигурацию 8.0 нельзя.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям