Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
29 Мар 2017, 16:11
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Преобразование значения к типу Число не может быть выполнено  (Прочитано 358 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн damir-it

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-26
  • Сайт: 
  • Профессия: Программист 7.7
Уважаемые форумчане
С недавнего времени начал изучать восьмую версию платформы 1С, до этого программировал на семерке, возникла необходимость создать новый документ в 1С 8 версии по образцу документа с 1с 7.7 , с глобального модуля семерки перенес функцию для этого документа в общий модуль восьмерки, при проверке вылетела ошибка;
{ОбщийМодуль.ОбщегоНазначенияГлобальный.Модуль(3809)}: Преобразование значения к типу Число не может быть выполнено
   Процент = ?(Процент=0,СортКласс*100,Процент);   // 

вот функция этого документа;

Функция глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту=0) Экспорт
   Перем СортКлас;
   УстЦена = 22.046;
   Скидка = 0.15;
   КодТипа = ?(ПустаяСтрока(КодТипа)=0,КодТипа,?(Тип=5,"35","36"));
   Если (Тип = 5) и (СокрЛП(КодТипа) = "34") Тогда
       КоэфТип = 0.987;
   ИначеЕсли (Тип = 4) и (СокрЛП(КодТипа) = "36") Тогда
      КоэфТип = 1.0137;
   Иначе
      КоэфТип = 1.000;
   КонецЕсли;
   Если Коэффициент = 0 Тогда
       Коэффициент = КоэфТип;
   КонецЕсли;
   
   СортКлас = 0.00;
   Если Сорт = 1 Тогда
       Если Класс = Перечисления.Классы.хороший Тогда
         СортКласс = 0.05;
      ИначеЕсли Класс = Перечисления.Классы.высший Тогда
         СортКласс = 0.04;
      ИначеЕсли Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.035;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.075;
      КонецЕсли;
   ИначеЕсли Сорт = 2 Тогда
       Если Класс = Перечисления.Классы.Олий Тогда
         СортКласс = 0.02;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.01;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.045;
      ИначеЕсли Класс = Перечисления.Классы.высший Тогда
         СортКласс = -0.08;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.12;
      КонецЕсли;
   ИначеЕсли Сорт = 3 Тогда
      Если Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.035;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.07;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.115;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.16;
      КонецЕсли;   
   ИначеЕсли Сорт = 4 Тогда
      Если Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.15;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.20;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.25;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.30;
      КонецЕсли;   
   ИначеЕсли Сорт = 5 Тогда
      Если Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.45;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.50;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.55;
      КонецЕсли;   
   КонецЕсли;
   Сообщить(СортКласс);
   Процент = ?(Процент=0,СортКласс*100,Процент);   // 
   Цена = Котировка*УстЦена;
    Цена = Цена-Цена*Скидка;
   Цена = Цена+Цена*Процент/100;
   Цена = Цена*Коэффициент;
   //Добавляем расчет с учетом скидки по контракту
   Цена = Цена - Цена * СкидкаПоКонтракту / 100;
   Возврат Цена;
КонецФункции

восьмерку осваивать начал совсем недавно, поэтому сильно не пинайте,
вроде все правильно не могу понять где здесь ошибка.
Разъясните пожалуйста
С Уважением Дамир


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
СортКлас = 0.00;

ошибка вот тут.
сами догадаетесь почему?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн damir-it

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-26
  • Сайт: 
  • Профессия: Программист 7.7
я подкорректировал функцию;
глРассчитатьЦенуХлопка(Котировка,Сорт,Класс,Тип,КодТипа,Коэффициент,Процент, СкидкаПоКонтракту=0) Экспорт
   
   УстЦена = 22.046;
   Скидка = 0.15;
   КодТипа = ?(ПустаяСтрока(КодТипа)=0,КодТипа,?(Тип=5,"35","36"));
   Если (Тип = 5) и (СокрЛП(КодТипа) = "34") Тогда
       КоэфТип = 0.987;
   ИначеЕсли (Тип = 4) и (СокрЛП(КодТипа) = "36") Тогда
      КоэфТип = 1.0137;
   Иначе
      КоэфТип = 1.000;
   КонецЕсли;
   Если Коэффициент = 0 Тогда
       Коэффициент = КоэфТип;
   КонецЕсли;
   
   
   Если Сорт = 1 Тогда
       Если Класс = Перечисления.Классы.хороший Тогда
         СортКласс = 0.05;
      ИначеЕсли Класс = Перечисления.Классы.высший Тогда
         СортКласс = 0.04;
      ИначеЕсли Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.035;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.075;
      КонецЕсли;
   ИначеЕсли Сорт = 2 Тогда
       Если Класс = Перечисления.Классы.Олий Тогда
         СортКласс = 0.02;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.01;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.045;
      ИначеЕсли Класс = Перечисления.Классы.высший Тогда
         СортКласс = -0.08;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.12;
      КонецЕсли;
   ИначеЕсли Сорт = 3 Тогда
      Если Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.035;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.07;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.115;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.16;
      КонецЕсли;   
   ИначеЕсли Сорт = 4 Тогда
      Если Класс = Перечисления.Классы.лучший Тогда
         СортКласс = -0.15;
      ИначеЕсли Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.20;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.25;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.30;
      КонецЕсли;   
   ИначеЕсли Сорт = 5 Тогда
      Если Класс = Перечисления.Классы.средний Тогда
         СортКласс = -0.45;
      ИначеЕсли Класс = Перечисления.Классы.хороший Тогда
         СортКласс = -0.50;
      ИначеЕсли Класс = Перечисления.Классы.плохой Тогда
         СортКласс = -0.55;
      КонецЕсли;   
   КонецЕсли;
   Сообщить(СортКласс);
   Процент = ?(Процент=0,СортКласс*100,Процент);   // 
   Цена = Котировка*УстЦена;
    Цена = Цена-Цена*Скидка;
   Цена = Цена+Цена*Процент/100;
   Цена = Цена*Коэффициент;
   //Добавляем расчет с учетом скидки по контракту
   Цена = Цена - Цена * СкидкаПоКонтракту / 100;
   Возврат Цена;
КонецФункции
все равно вылетаю в ошибку;
Преобразование значения к типу Число не может быть выполнено
   Процент = ?(Процент=0,СортКласс*100,Процент);

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1096
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
отсутствие этой строки не решает проблему ;)
ее надо ИС ПРА ВИТЬ.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн ls600

  • ****
  • Сообщений: 319
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
не хватает буквы "с" СортКласс = 0.00;.


Теги:
 

Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 640
Последний ответ 11 Июл 2016, 09:00
от vitasw
Как сложить значения Столбца "Объем"

Автор anton.kislovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 18
Просмотров: 10252
Последний ответ 10 Окт 2013, 00:24
от mixqn
Ошибка "Итератор для значения не определён"

Автор КараулРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 508
Последний ответ 17 Авг 2016, 11:25
от Караул
Очистить значение типа "Хранилище значения"

Автор ЛеонидРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4120
Последний ответ 22 Ноя 2009, 17:45
от Никитина
Как получить значения элементов формы "ПриИзменении"?

Автор OptyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 4525
Последний ответ 07 Май 2015, 14:38
от Opty

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
alex0402
127 Сообщений
MuI_I_Ika MuI_I_Ika
57 Сообщений
Norfolk
52 Сообщений
LexaK
48 Сообщений
друган
20 Сообщений
alexandr_ll
20 Сообщений
Константин5825
18 Сообщений
AsadRoman
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

  • Точка Гостей: 995
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal