Имя: Пароль:
1C
1С v8
Преобразование значения к типу Число не может быть выполнено ?
, ,
0 fantom41k
 
05.07.15
23:32
Я новичок в 1с только начал изучать и вот столкнулся с такой проблемой, как правильно обратится к элементу табличной части формы чтоб исправить эту проблемму ??
Все действия произвожу в модуле формы документа. Процедура при изменении значения ячейки номенклатура.
{ОбщийМодуль.РасчетСуммы.Модуль(5)}: Преобразование значения к типу Число не может быть выполнено
    СтрокаТабличнойЧасти.ЦенаРозница = СтрокаТабличнойЧасти.Цена * Проценты + СтрокаТабличнойЧасти.Цена;

Ругается на Проценты !

Проценты = Элементы.ТоварПроцентНаценки;

ТоварПроцентНаценки(является элементом табличной части формы, в реквизитах табличной части его нету)

ТоварПроцентНаценки = Объект.Товар.Номенклатура.ПроцентНаценки.Наценка

Тип Наценка = Число
Цена тоже Число

Что я сделал не так?
И как это исправить?
1 wangoff
 
05.07.15
23:36
Точку останова поставь и посмотри, чему равно значение твоего реквизита
2 romix
 
05.07.15
23:48
СтрокаТабличнойЧасти.Проценты ?
3 fantom41k
 
05.07.15
23:51
Все понятно, но теперь второй вопрос как вытянуть значение из элемента ТоварПроцентНаценки?
4 NcSteel
 
05.07.15
23:52
(3) Обратиться к реквизиту, а не к элементу формы
5 fantom41k
 
05.07.15
23:56
Ок тогда как обратится к реквизиту Справочники.ПроцентНаценки.Наценка
только с условием что этот реквизит вводится на основании Объект.Товар.Номенклатура
тоисть получается что Справочники.ПроцентНаценки подчинен Справочнику.Номенклатура
6 NcSteel
 
05.07.15
23:58
СтрокаТабличнойЧасти.Номенклатура.ПроцентНаценки.Наценка
7 fantom41k
 
05.07.15
23:58
и этот же реквизит выводится на основании Объект.Товар.Номенклатура в таблице формы как элемент ТоварПроцентНаценки
8 NcSteel
 
05.07.15
23:58
А вообще не зная структуру методанных что то подсказывать трудно. А вообще купи курс Nasf
9 NcSteel
 
05.07.15
23:59
причем тут форма
10 fantom41k
 
06.07.15
00:02
СтрокаТабличнойЧасти.Номенклатура.ПроцентНаценки.Наценка
Я так пробовал вот что выдает.
{Документ.Касса.Форма.Касса.Форма(13)}: Поле объекта не обнаружено (ПроцентНаценки)
    Проценты = СтрокаТабличнойЧасти.Номенклатура.ПроцентНаценки.Наценка;
11 NcSteel
 
06.07.15
00:07
ты уже сам разбирайся, как называется реквизит в справочнике "Номенклатура"
12 Zamestas
 
06.07.15
00:11
(0) Самое простое - разверни в конфигураторе все элементы справочника Номенклатура и выложи скриншот сюда.
13 fantom41k
 
06.07.15
00:23
с названием реквизита все правильно.
я бы добавил скрин только не вижу куда его тут кидать.
14 fantom41k
 
06.07.15
00:25
Как сюда скрин залить??
15 fantom41k
 
06.07.15
00:31
16 NcSteel
 
06.07.15
00:33
Судя по скрину либо реквизит "Номеклатура" не типа "СправочникСсылка.Номенклатура", либо в названии реквизита "ПроцентНаценки" закрались английские буквы
17 fantom41k
 
06.07.15
00:39
Только что проверил английских букв там нету.
А что вы имеете в веду " не типа " СправочникСсылка.Номенклатура"" ???
18 NcSteel
 
06.07.15
00:40
(17) ТО и имею в виду, что реквизит "Номенклатура" ТЧ "Товар" не типа "СправочникСсылка.Номенклатура".

А так отладчик в зубы и смотри
19 fantom41k
 
06.07.15
00:41
да так и есть не номенклатура является типом СправочникСсылка.Номенклатура, а Поцент наценки является тиом СправочникСсылка.ПроцентНаценки
20 fantom41k
 
06.07.15
00:43
данные из справочника ПроцентНаценки присваивается к справочнику Номенклатура в реквезит ПроцентНаценки
21 NcSteel
 
06.07.15
00:43
смотри отладчик
22 fantom41k
 
06.07.15
00:48
Может этот скрин поможет https://yadi.sk/i/pBl9z4QDhgfhi
23 Zamestas
 
06.07.15
00:48
(17) В выделенной на скриншоте строке нажми F9 и посмотри в отладчике - что там не так.
24 NcSteel
 
06.07.15
00:50
Я понял в чем проблема, код выполняется на КЛИЕНТЕ ---- рука лицо !
25 NcSteel
 
06.07.15
00:51
Передавай контекст на сервер и получай значение реквизитов Номенклатуры
26 fantom41k
 
06.07.15
01:07
&НаСервере
Процедура ЗапросНаценки(СтрокаТабличнойЧасти, Проценты)Экспорт
    Проценты = СтрокаТабличнойЧасти.Номенклатура.ПроцентНаценки.Наценка;    
    КонецПроцедуры

&НаКлиенте
Процедура ТоварНоменклатураПриИзменении(Элемент)
    
Проценты = ЗапросНаценки(СтрокаТабличнойЧасти, Проценты);
    
КонецПроцедуры

что не так?
27 fantom41k
 
06.07.15
01:08
выдает ошибку
{Документ.Касса.Форма.Касса.Форма(13)}: Метод объекта не обнаружен (ЗапросНаценки)
    Проценты = РасчетСуммы.ЗапросНаценки(СтрокаТабличнойЧасти, Проценты);
28 Zamestas
 
06.07.15
01:15
(27) Вам бы документацию покурить на предмет того, что такое процедуры и функции, а так же про видимость переменных в пределах модуля и процедур/функций + про клиент/серверное выполнение кода. Иначе тут можно то пятницы на гуще гадать.
29 fantom41k
 
06.07.15
01:19
а есть чтото типо
Функция Процент(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
    
  //создать всомогательный обект отбор.
  Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
  //Получить Актуальные значения ресурсов регистра.
  ЗначенияРесурсов = РегистрыСведений.Цена.ПолучитьПоследнее(АктуальнаяДата, Отбор);
  Возврат ЗначенияРесурсов.ПроцентНаценки;
        
КонецФункции

только для вытягивания реквезита из сравочника а не из Регистра сведений ?????
30 hhhh
 
06.07.15
01:34
(26) ЗапросНаценки - это процедура или функция? Вы хотя бы для себя определитесь.
31 fantom41k
 
06.07.15
09:45
(30)  ЗапросНаценки это процедура !
если можно сделать выборку реквизита наценка с помощю функции то подскажите как?
32 hhhh
 
06.07.15
09:54
(31) если процедура, то что за идиотское присваивание?


Проценты = РасчетСуммы.ЗапросНаценки(СтрокаТабличнойЧасти, Проценты);

процедура ведь ничего не возвращает.
33 fantom41k
 
06.07.15
10:10
(32)  ну это я уже понял и сейчас пытаюсь сделать с помощью функции но вот только не очень получается (
34 fantom41k
 
06.07.15
10:11
пытаюсь зделать на примере функции > (29)
35 fantom41k
 
06.07.15
10:37
подскажите что не так почему Проценты в отладчике пишет не определено?
Функция ЗапросНаценки(ЭлементНоменклатура, Проценты) Экспорт
    
  //создать всомогательный обект отбор.
  Отбор = Новый Структура("Номенклатура", ЭлементНоменклатура);
  //Получить Актуальные значения ресурсов регистра.
  Проценты = ЭлементНоменклатура.ПроцентНаценки.Наценка;
  Возврат Проценты;  
КонецФункции
36 fantom41k
 
06.07.15
10:37
А ЭлеменНноменклатуры выводит как положено
37 fantom41k
 
06.07.15
11:05
Все проблема решена Помогла функция. (35)