Имя: Пароль:
1C
1С v8
Проблема с внешней обработкой
,
0 Droning
 
15.04.18
22:15
Преобразование значения к типу Булево не может быть выполнено в модуле Справочник.Номенклатура.МодульМенеджера

В чем может быть прокол?





Если ЗначениеЗаполнено(Номенклатура.ВидНоменклатуры)
        И Не ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда
        Номенклатура.ДрагоценныеМатериалы.Очистить();
    КонецЕсли;
    
    Если Не Номенклатура.АлкогольнаяПродукция Тогда
        МассивАлкоРеквизитов = МассивРеквизитовАлкогольнойПродукции();

        Для Каждого СтрМас из МассивАлкоРеквизитов Цикл
            Номенклатура[СтрМас] = Неопределено;
        КонецЦикла;
        
    КонецЕсли;
1 Droning
 
15.04.18
22:22
не пойму, значение какого-то реквизита не Булево что-ли?
Или не хватает где-то реквизита СодержитДрагоценныеМатериалы?

СинтаксисПомощник не дает инфы по ЗначениеРеквизитаОбъекта...
2 DmitriyDI
 
15.04.18
22:23
(0) Функция  ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") не возвращает значения равное истина или ложь, которые можно использовать в операторах сравнения если.
3 drei
 
15.04.18
22:25
Вот так вот и выглядит отладка по http протоколу. Задаешь вопрос на форуме...
4 Droning
 
15.04.18
22:34
DmitriyDI   Это я и так понимаю, я не понимаю, как исправить...
5 drei
 
15.04.18
22:38
(4) А это зависит от того, что тебе нужно в результате. Вернее даже не тебе, а твоему работодателю. Задачу-то ведь именно он и именно тебе поставил.
6 Droning
 
15.04.18
22:42
в результате мне нужно, чтобы обработка, написанная под ут РАБОТАЛА В КА.)))
7 Droning
 
15.04.18
22:43
сорри за капс, случайно) нервишки шалят)
8 DmitriyDI
 
15.04.18
22:45
(6) тут надо сделать следующее:
а) добавить в справочник виды номенклатуры реквизит типа булево "СодержитДрагоценныеМатериалы",
б) сделать его аналог через встроенную возможность доп реквизитов и уже делать сравнение с ним, тоже очень сомневаюсь что в УТ есть у номенклатуры ТЧ ДрагоценныеМатериалы, так что возможно придется менять логику работы.
9 Джинн
 
модератор
15.04.18
22:48
(7) Эх, только топор достал, чтобы махнуть...
10 Фрэнки
 
15.04.18
22:49
(7) ставь на функцию ЗначениеРеквизитаОбъекта мышу, ПКМ и стрка "перейти к определению F12. Там посмотришь, чего оно может возвратить.
11 Фрэнки
 
15.04.18
22:51
скорей всего, что прилетит Неопределено, т.к. у Вида номенклатуры такого свойства не нашлось
12 Droning
 
15.04.18
22:53
DmitriyDI   добавлял такой реквизит, не пашет все равно(
13 Droning
 
15.04.18
22:54
Фрэнки, как-то так...

Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита) Экспорт
    
    Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита);
    Возврат Результат[СтрЗаменить(ИмяРеквизита, ".", "")];
14 Фрэнки
 
15.04.18
22:54
(12) куда добавлял?
15 Фрэнки
 
15.04.18
22:57
(13) т.е. оно вернет вот это:

Номенклатура.ВидНоменклатуры["СодержитДрагоценныеМатериалы"]
16 Droning
 
15.04.18
22:58
в справочник ВидыНоменклатуры
17 Фрэнки
 
15.04.18
22:59
нет. не это. раскроет все реквизиты объекта в коллекцию Результат и из этой коллекции вернет по ключу СодержитДрагоценныеМатериалы
18 AlvlSpb
 
15.04.18
23:47
(16) Хотя бы прочитай аннотацию к функции в УТ

// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы
// по ссылке на объект.
//
//  Если доступа к одному из реквизитов нет, возникнет исключение прав доступа.
//  Если необходимо зачитать реквизит независимо от прав текущего пользователя,
//  то следует использовать предварительный переход в привилегированный режим.
//
// Функция не предназначена для получения значений реквизитов пустых ссылок.
//
// Параметры:
//  Ссылка    - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
//
//  Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
//              требований к свойствам структуры.
//              Например, "Код, Наименование, Родитель".
//            - Структура, ФиксированнаяСтруктура - в качестве ключа передается
//              псевдоним поля для возвращаемой структуры с результатом, а в качестве
//              значения (опционально) фактическое имя поля в таблице.
//              Если значение не определено, то имя поля берется из ключа.
//            - Массив, ФиксированныйМассив - имена реквизитов в формате требований
//              к свойствам структуры.
//
// Возвращаемое значение:
//  Структура - содержит имена (ключи) и значения затребованных реквизитов.
//              Если строка затребованных реквизитов пуста, то возвращается пустая структура.
//              Если в качестве объекта передана пустая ссылка, то все реквизиты вернутся со значением Неопределено.
//
Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты) Экспорт
Возвращает Структуру или Неопределено, никак не булево
19 drei
 
15.04.18
23:53
(18) Скрипач, ты ЗначениеРеквизитаОбьекта от ЗначенияРеквизитовОбьекта отличаешь? Турист...
20 hhhh
 
16.04.18
07:08
(16) ну так сделай

        И Не (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") = Истина) Тогда
21 Сияющий в темноте
 
16.04.18
10:29
А если поля такого нет,то не проще ли вообще данную функцию из условия выкинуть,т.к.она всегда вернет неопределено,пока свойство не добавят?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.