Имя: Пароль:
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
А если поля такого нет,то не проще ли вообще данную функцию из условия выкинуть,т.к.она всегда вернет неопределено,пока свойство не добавят?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn