ТипЗнч(Модуль) <> Тип("ОбщийМодуль") - Возможно ошибочный параметр ОбщийМодуль #673106


#0 by PiotrLoginov
Пытаюсь разобраться в сонме возможных типов значений, ибо при проверке моей нетленки ругается на выдернутую из СтандартныеПодсистемыКлиент (БСП) в мою нетленку функцию: Сама ругань - в заголовке. Накурил в СП: "ОписаниеТипов (TypeDescription) - Представляет собой объект для управления допустимыми типами значений. В основном предназначен для присвоения в качестве значений соответствующим свойствам других объектов. Набор допустимых типов и квалификаторы примитивных типов задаются при создании объекта." Вопрос: это что же, получается, если хочешь какой-то особый Тип, опиши его явно? Типовые на предмет поиска места, где описываются необходимые типы, еще не мучал.
#1 by Ненавижу 1С
нет таких типов как "модуль"
#2 by zladenuw
так в типовых вроде сравнение текста модулей. а тип знч
#3 by PiotrLoginov
"Модуль" - нет. Есть "Общиймодуль". (?) примечание к функции в типовой конфе: // Возвращает клиентский общий модуль по имени. ... гм... вернет текст модуля? ссылку на модуль? сразу признаюсь: эксперимент на практике могу не осилить. Да и не важно в данном случае. Подскажите принцип - я правильно понимаю, типы присутствуют изначально + можно описывать дополнительно какие захочешь? (звучит конечно смело) ? мб опечатка? "сравнение НЕ текста модулей, а ТипЗнч"
#4 by acsent
вернет объект типа "ОбщийМодуль"
#5 by acsent
можно описывать составные типы только
#6 by PiotrLoginov
так. а в моем случае ругается почему? повторюсь:  я должен описать явно Тип "ОбщийМодуль" с помощью ОписаниеТипов ?
#7 by PiotrLoginov
дошло. т.е. ОписаниеТипов тут ни к чему.  а тогда ЧЯДНТ ?
#8 by Ненавижу 1С
действительно есть, а какой в нем смысл?
#9 by PiotrLoginov
так и знал, что кто-то спросит :)  в данном случае видимо прежде чем вернуть объект идет проверка, что этот объект - действительно общий модуль. Вопрос в том, почему в типовой такая проверка нормальна, а у меня ругается
#10 by acsent
Посмотри БСП )))
#11 by acsent
в толстом клиенте, в табло Тип("ОбщийМодуль") отрабатывает на ура
#12 by PiotrLoginov
Пытался. Если б хватило мозгов, сюда бы не пошел советоваться. Ну используется там ссылка на модуль по его названию в куче мест. Ну и что мне это дает? Не сомневаюсь, что в типовой когда функция возвращает модуль по его названию, проверка на Тип("ОбщийМодуль") отрабатывается на ура. Если это один из стандартных типов, почему у меня-то ругается? Вот еще в другой функции у меня (тоже вырванной из БСП): ... ... Т.е. куча типов упоминается, и все норм кроме Тип("ОбщийМодуль") - опять ругань при проверке. Как будто остальные типы существуют, а этому быть не положено. Почему-то всегда думал, что перечень возможных типов един и  аксиомен, ан нет...
#13 by acsent
может у тебя совместимость какая стоит у конфы?
#14 by acsent
что за проверка кстати?
#15 by PiotrLoginov
затрудняюсь ответить просто проверка конфы на ошибки в конфигураторе
#16 by Ненавижу 1С
посмотрел - это писец какой-то
#17 by Ненавижу 1С
+ упал под стол раздел что нового: •     Обновлены сведения о валютах Боливар и Замбийская квача в классификаторе валют.
#18 by PiotrLoginov
:) ... Поискал все-таки, где объявляется такой тип в типовых - нет такого места. Порылся в перечне возможных типов данных у себя и в типовой - нет такого типа "ОбщийМодуль", однако в типовой проблема не возникает. Поигрался с #Если . Бесполезно. Апаю-с... Может кто-то в теме ?
#19 by PiotrLoginov
Ап. Надеюсь на подсказки... ... и еще конечно надеюсь, что пойму сабж лучше на этапе тестирования нетленки; тогда возможно отпишусь полнее в отдельной теме.
#20 by hhhh
ну а всё-таки совместимость? Точно-точно 8.3?
#21 by PiotrLoginov
вовсе нет, 8.2...  там и проверки нет на версию... или что, этот тип появился в 8.3 ?
#22 by Serginio1
Ну в 8.3 в толстом клиенте ТипЗнч(Вычислить("ОбщегоНазначения"))=Тип("ОбщийМодуль") Датет ответ да
#23 by PiotrLoginov
см. , т.е. и в 8.2 в типовой работает без проблем. Присутствие такого Типа в типовой мне ничего не дает. У меня в нетленке нет БСП, только клочок от нее. И в этом клочке в трех местах идет проверка ТипЗнч объекта на Тип("ОбщийМодуль"). И во всех трех случаях проверка ругается.
#24 by Infsams654
Выражение Тип("ОбщийМодуль") Значение В управляемом приложении, почему то табло нет
#25 by PiotrLoginov
сегодня позже еще помучу конфигуратор с этой бедой. кстати, да.  у меня УФ
#26 by acsent
какие галки при проверке стоят?
#27 by PiotrLoginov
логическая целостность, поиск некорр ссылок тонкий, веб-клиент, сервер расширенная
#28 by PiotrLoginov
собственно до тестирования-то дело еще не дошло.  проблема пока на уровне проверки в конфигураторе добавил толстый клиент (управляемое) и толстый клиент (клиент-сервер) Та же беда. Авось разберусь как начну тестировать. Заодно ума наберусь )
#29 by PiotrLoginov
Тестирование начато, но пока не до сабжа - идет отладка более серьезных недочетов. Однако, когда выделяю какую-нибудь переменную, содержащую общий модуль, и нажимаю "Вычислить выражение", в окне Выражение вижу, что тип выражения в переменной - ОбщийМодуль. То есть тип такой существует и активно используется. Надо только научиться проверять тип переменной - является ли он типом "ОбщийМодуль".
#30 by banco
ну платформа предполагает, что ошибочный параметр и что? чем тебе это мешает? давно видел это предупреждение, с 2.1.2 бсп по-моему, просто не заморачиваюсь,  знаю, что код рабочий и все.
#31 by PiotrLoginov
понял, спасибо за мнение. Конечно, если в итоге окажется, что проверка ошибается, забью на нее. Пока отложил вопрос - не до того.
#32 by PiotrLoginov
Как бы не так. Проблема все-таки есть - здесь не просто некорректные предупреждения механизма логической проверки. Вот одно из мест, на которое ругается проверка: К этому приходим, имея название общего модуля в переменнной Имя. Код отрабатывается без толку, возвращая в итоге пустую переменную Модуль с типом значения ОбщийМодуль. Вот так. Буду искать альтернативные способы получения модуля по его названию, ибо функция стандартная, используется часто.
#33 by banco
если код отрабатывал без толку, то БСП вообще бы не работала. возвращается модуль, а не пустая переменная, потом через этот модуль вызываются функции и процедуры. кстати в 8.3 платформа уже не дает предупреждение на ошибочный параметр.
#34 by Infsams654
Модуль = Вычислить(Имя); - это как вычислит ", имея название общего модуля в переменнной Имя" ?
#35 by hhhh
а почему не проверяете, на клиенте, на сервере этот общий модуль и т.д.?
#36 by Emilio
А вот чем же все-таки все закончилось? М?)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С