|
Конструктор не обнаружен | ☑ | ||
---|---|---|---|---|
0
dreamoff
12.10.11
✎
11:39
|
подскажите пожалуйста,чем может быть вызвана такая ошибка?
{ОбщийМодуль.ОбщегоНазначения(615)}: Конструктор не обнаружен (Форма) Если Значение = Новый(ТипЗначения) Тогда ошибка выпадает при попытки записать сф |
|||
1
Господин ПЖ
12.10.11
✎
11:40
|
вроде по русски написано... "Конструктор не обнаружен"
|
|||
2
Ненавижу 1С
гуру
12.10.11
✎
11:40
|
интересно, а конструктор чего вы пытаетесь взывать?
Если Значение = Новый(ТипЗначения) Тогда анонимного типа что ли? ))) |
|||
3
dreamoff
12.10.11
✎
11:41
|
(1)я уже прочитал,спасибо)))
(2)вот такая функция,писал не я Результат = Ложь; ТипЗначения = ТипЗнч(Значение); // Сначала примитивные типы Если Значение = Неопределено Тогда Результат = Истина; ИначеЕсли Значение = NULL Тогда Результат = Истина; ИначеЕсли ТипЗначения = Тип("Строка") Тогда Если СокрЛП(Значение) = "" Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Число") Тогда Если Значение = 0 Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Дата") Тогда Если Значение = Дата('00010101') Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Булево") Тогда Результат = Ложь; // Булево будем считать не пустым //Отдельное определение, так как конструкторов данного типа не существует ИначеЕсли ТипЗначения = Тип("РежимПроведенияДокумента") Тогда Если Значение = РежимПроведенияДокумента.Неоперативный или Значение = РежимПроведенияДокумента.Оперативный тогда Результат = Ложь; КонецЕсли; // Для остальных будем считать значение пустым, если оно равно // дефолтному значению своего типа Иначе Если Значение = Новый(ТипЗначения) Тогда Результат = Истина; КонецЕсли; КонецЕсли; Возврат Результат; |
|||
4
unregistered
12.10.11
✎
11:42
|
Используйте:
Значение = ТипЗначения.ПривестиЗначение(); |
|||
5
Wobland
12.10.11
✎
11:43
|
(3) феерично. если некий новый неизвестный тип значения, то возвращаем истину?
|
|||
6
Господин ПЖ
12.10.11
✎
11:44
|
(3) забейте автору сего в голову гвоздь...
|
|||
7
unregistered
12.10.11
✎
11:44
|
Я так понимаю это функция ЗначениеНеЗаполнено?
|
|||
8
dreamoff
12.10.11
✎
11:44
|
(6) знать бы еще кто автор
|
|||
9
Wobland
12.10.11
✎
11:45
|
(7) дополненная РежимомПроведения (на зачем?)
|
|||
10
dreamoff
12.10.11
✎
11:46
|
(7) ага
|
|||
11
catena
12.10.11
✎
11:46
|
Дак это ж функция ЗначениеНеЗаполнено :)
|
|||
12
unregistered
12.10.11
✎
11:46
|
(6) Эта функция из типовых 8.0 до появления функции ЗначениеЗаполнено().
|
|||
13
catena
12.10.11
✎
11:47
|
(9)У меня тоже есть такой кусок...
|
|||
14
PR
12.10.11
✎
11:48
|
(6) Гы :))
Это вроде типовой от 1С :)) |
|||
15
Ненавижу 1С
гуру
12.10.11
✎
11:49
|
ага, только передали тип, не имеющий конструктора
|
|||
16
Steel_Wheel
12.10.11
✎
11:50
|
(7) Она родимая
(0) А если заменить вызов на "Не ЗначениеЗаполнено()"? Правда, оно булеву "Ложь" считает незаполненной, |
|||
17
Reset
12.10.11
✎
11:52
|
(0) Решается заменой приведенного текста в функции на "Возврат Не ЗначениеЗаполнено(Значение);
|
|||
18
Wobland
12.10.11
✎
11:54
|
(17) дописать СтрЗаменить() в конце?
|
|||
19
Reset
12.10.11
✎
11:55
|
(18) нет, какой стрзаменить.. у меня кавычка лишняя там
|
|||
20
Синий зуб
12.10.11
✎
11:55
|
Или (17) или поставь точку останова и глянь, че там за тип.
|
|||
21
unregistered
12.10.11
✎
11:56
|
(16) >> Правда, оно булеву "Ложь" считает незаполненной
И это правильно :)) Можно сделать так: Результат = Ложь; ТипЗначения = ТипЗнч(Значение); // Сначала примитивные типы Если Значение = NULL Тогда Результат = Истина; ИначеЕсли ТипЗначения = Тип("Булево") Тогда Результат = Ложь; // Булево будем считать не пустым //Отдельное определение, так как конструкторов данного типа не существует ИначеЕсли ТипЗначения = Тип("РежимПроведенияДокумента") Тогда Если Значение = РежимПроведенияДокумента.Неоперативный или Значение = РежимПроведенияДокумента.Оперативный тогда Результат = Ложь; КонецЕсли; Иначе Результат = ЗначениеЗаполнено(Значение); КонецЕсли; Возврат Результат; |
|||
22
Wobland
12.10.11
✎
11:56
|
(19) шутку не понял
|
|||
23
unregistered
12.10.11
✎
11:57
|
*(21) Извиняюсь конечно "Результат = ЗначениеЗаполнено(Значение)" читать как "Результат = НЕ ЗначениеЗаполнено(Значение)"
|
|||
24
Reset
12.10.11
✎
11:58
|
(22) Какую шутку??
|
|||
25
dreamoff
12.10.11
✎
11:58
|
выдает
Проверка мутабельных значений на заполненность не поддерживается в "значение" форма |
|||
26
unregistered
12.10.11
✎
11:59
|
(25) Ты туда объект кинул.
|
|||
27
unregistered
12.10.11
✎
12:00
|
Функция ЗначениеЗаполнено не работает с мутабельными значениями.
|
|||
28
Reset
12.10.11
✎
12:00
|
(25) в попытка/исключение заключи и в исключении возвращай Ложь (=заполнено)
|
|||
29
Reset
12.10.11
✎
12:01
|
Короче, полный текст (автор 1С, с махрового года)
Функция ЗначениеНеЗаполнено(Значение) Экспорт Попытка Возврат НЕ(ЗначениеЗаполнено(Значение)); Исключение Возврат Ложь; КонецПопытки; КонецФункции; |
|||
30
Reset
12.10.11
✎
12:01
|
без ; в конце
|
|||
31
dreamoff
12.10.11
✎
12:02
|
(28) так и сделал
|
|||
32
Alexandr Puzakov
12.10.11
✎
12:02
|
Насколько я знаю, конструкция Новый() сделана для исключительных случаев, и пользоваться ею не рекомендуется. Нужно так:
НовыйЭлемент = Справочники.НашСправочник.СоздатьЭлемент(); НовыйДокумент = Документы.НашДокумент.СоздатьДокумент(); |
|||
33
ShoGUN
12.10.11
✎
12:05
|
(32) конструкция Новый создана для самых обычных случаев - вызова конструктора, просто для справочников и документов не существует обычного конструктора, они не имеют смысла отдельно от базы данных.
|
|||
34
unregistered
12.10.11
✎
12:05
|
(32) Бред, не имеющий отношения к топику. Да и к жизни тоже. Что ты будешь делать, если тебе нужна пустая ссылка, а не новый объект?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |