Имя: Пароль:
1C
1С v8
как перевести элемент табличной части в число?
,
0 9451523
 
11.02.16
13:27
Доброго времени дня всем
возможно ли элемент табличной части документа перевести в числовой формат?
Котировка = ЭлементыФормы.ТабличнаяЧасть1.Колонки.Котировка

при отработке кода вылетаю в ошибку:
Преобразование значения к типу Число не может быть выполнено  

как можно Котировка перевести в число?
С Уважением Дамир
1 ДенисЧ
 
11.02.16
13:28
Что отладчик говорит про ЭлементыФормы.ТабличнаяЧасть1.Колонки.Котировка ?
2 ObjectRelation Model
 
11.02.16
13:28
как можно колонку перевести в число? тоже не понимаю
3 mastodont
 
11.02.16
13:30
(0) тебе наверно все же надо перевести в число значение в какой-то строке/колонке.
4 9451523
 
11.02.16
13:31
да именно значение в колонке Котировка перевести в число
5 Lexey_
 
11.02.16
13:32
(4) код показывай
6 9451523
 
11.02.16
13:33
Процедура Пересчет(Стч)
    Стч = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяКолонка.Имя;    
        Сообщить(ТипЗнч(Котировка));
          
        
    Валюта = "сум"; //Договор.ВалютаВзаиморасчетов;
    Курс= 2800 ; //ПолучитьКурсВалюты(Валюта,КонецДня(Дата)).Курс;
    Кратность = 1; //ПолучитьКурсВалюты(Валюта,КонецДня(Дата)).Кратность;

    Кратность = ?(Кратность=0,1,Кратность);
        Если (Стч = "Сорт") или (Стч = "Котировка") или (Стч = "Класс") или (Стч = "Тип") или (Стч = "Коэффициент") или (Стч = "Процент") Тогда
        Если Стч <> "Коэффициент" Тогда
            Коэффициент = 0;
        КонецЕсли;
        Если Стч <> "Процент" Тогда
            Процент = 0;
        КонецЕсли;
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту);
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли Стч = "КоличествоВес" Тогда
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли Стч = "Скидка_" Тогда
        Цена = глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту);
        Цена = Цена -(Цена*Скидка_/100);
        Сумма = КоличествоВес*Цена/1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли (Стч = "СуммаБух") или (Стч = "Комиссия") Тогда
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    ИначеЕсли Стч = "Сумма" Тогда
        КоличествоВес = ?(КоличествоВес=0,1000,КоличествоВес);
        Цена = Сумма/КоличествоВес*1000;
        СуммаБух = Сумма*Курс/Кратность;
        Комиссия = Сумма*КомиссияКонтрагента/100;
        ВсегоБух = СуммаБух+Комиссия*Курс/Кратность;
    КонецЕсли;
        
КонецПроцедуры //Пересчет
7 aka AMIGO
 
11.02.16
13:34
(4) поддержу (1) - надо смотреть в отладчике.
8 xaozai
 
11.02.16
13:34
(0) Вам не колонка нужна, а значение из строки.
Котировка = Стр["Котировка"];
9 ЧеловекДуши
 
11.02.16
13:35
(8) Это 7.7 :)
10 Lexey_
 
11.02.16
13:36
(6) и в какой строке ошибка?что в отладчике на этой строке?
11 Jonny_Khomich
 
11.02.16
13:37
Дамир, учите платформу 1с.
С уважением, Евгений.
12 ЧеловекДуши
 
11.02.16
13:37
(6) Автор, ты что такое написал? :)

Бред сивой кобылы, либо все же у тебя 1С 7.7 :)
13 xaozai
 
11.02.16
13:38
(6) Зачем там в первой же строке процедуры передаваемый параметр переопределяется?
14 9451523
 
11.02.16
13:41
Да Вы правы код из семерки , восьмую версию только начал изучать, отладчик говорит что
Преобразование значения к типу Число не может быть выполнено
15 mastodont
 
11.02.16
13:42
(0) у тебя управляемое приложение или обычное?
используй ТекущиеДанные что бы получить текущую строку таблицы.
а уж в строке получай значение колонки...
16 mastodont
 
11.02.16
13:43
17 Lexey_
 
11.02.16
13:43
(14) ясно, пытать бесполезно
18 9451523
 
11.02.16
13:44
этот код в разработке еще поэтому так тупо выглядит ,
у меня обычное приложение,
19 mastodont
 
11.02.16
13:44
(14) вот например как ты в экзеле преобразуешь к число колонку "А"?
20 aka AMIGO
 
11.02.16
13:45
(14) - это не отладчик сообщает, а платформа.
Умеешь с отладчиком работать?
21 9451523
 
11.02.16
13:47
в семерку могу AMIGO в восемерке только начинаю
22 mastodont
 
11.02.16
13:47
(18) почитай книжку Радченко, сэкономишь кучу времени  и нервов...
23 9451523
 
11.02.16
13:48
читаю уже, там такие тонкости не описаны
24 aka AMIGO
 
11.02.16
13:51
(21) разница-то не велика..
Поставь точку останова на оператор
Стч = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяКолонка.Имя;

вызови табло
запусти отчет.. вроде и всё..
25 ЧеловекДуши
 
11.02.16
13:51
(21) Если познал 7-ку, 8-ка почти одинакова. +свои грабли + плюшки :)
26 mastodont
 
11.02.16
13:54
возвращаясь к (0)

Стр = ЭлементыФормы.ТабличнаяЧасть1.ТекущиеДанные;
Котировка = Стр.Котировка;
27 ЧеловекДуши
 
11.02.16
13:55
+ Преобразование Строка в число в 8-ке происходит с исключением. Увы, лучше либо знать заранее, что там число, либло выносить в отдельную функцию.

+ из числа в строку тоже весело. 1С в 8.ххх это делает под бодрым флагом форматирования основываясь на данных системы.
т.е. Число 2000.00, может быть в виде строки "2 000,00" или "2'000.00" Это уже как выставишь в ОС-и.
...Обход: используй слово Формат(Число,"форматная строка") :)

А так, у 1С 8.хх табличных частей может быть много, очень много, поэтому нельзя обращаться напрямую. Только непосредственно через сам табличный объект.
Отладчик в 8-ке куда веселей, так что научись им пользоваться. Вопросов будет меньше.
28 mastodont
 
11.02.16
13:57
(25) семерка ломает голову в ненужную сторону.
29 9451523
 
11.02.16
13:59
ты прав mastodont после семерки тяжело переучиватся мышление другое вырабатывается
30 9451523
 
11.02.16
14:05
mastodont твой код сработал
Стр = ЭлементыФормы.ТабличнаяЧасть1.ТекущиеДанные;
Котировка = Стр.Котировка;
Спасибо Всем реально выручили
С Уважением Дамир
31 1Сергей
 
11.02.16
14:08
(28) (29) чушь
32 hhhh
 
11.02.16
14:11
(30) семерочный код нельзя переписывать в восьмерку тупо строчку за строчкой. Там совершенно другая философия. Поэтому восьмерка и тормозит, потому что ее вот так бывшие семерочники писали.
33 ЧеловекДуши
 
11.02.16
14:24
(28) Бред.  1С 7.7 на прямых запросах. Дает оценку Запросам от 1С и их "гибкого" использования и "настройки" :)
34 ЧеловекДуши
 
11.02.16
14:24
(29) Это от лени :)
35 ЧеловекДуши
 
11.02.16
14:26
+(32) +100500 :)
Все кто пишет, про перенос с 1С 7.7 на 1С 8.ххх... Не осознаю, что нет переноса, есть новое написание :)