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

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

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

Оффлайн Smolik

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день! Я новичок в 1с, глубоко не вникал еще в конфигуратор, но появилась необходимость срочно решить данную ошибку.

При заполнении определенной формы появляется ошибка

{Документ.ОПС_НачислениеАрендыУслуг.МодульОбъекта(660)}: Преобразование значения к типу Число не может быть выполнено

НайденныеСтроки[0].Результат = Окр(НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней,2);

Подскажите, пожалуйста, простым языком, в чем суть решения.


Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
ну самое простое, вот это вот в результате 
( НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней ) -  НЕ ЧИСЛО!!!
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Smolik

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Вот здесь код всей операции. Подскажите, пожалуйста, как его отредактировать правильно?
Цитировать
Функция РассчитатьНачисленияПоАренде(Контрагенты = Неопределено, КомментироватьРасчет = Ложь) Экспорт
   
   //массивы для хранения индексов строк табличных частей,
   //используются для расчета по одному сотруднику
   МассивИндексыСтрокНачисления = Новый Массив();
   
   Отказ = Ложь;
   // Перечитаем объект и соберем данные для заполнения наборов записей регистров
   НачатьТранзакцию();
   Прочитать();
   ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать();
   
   // позиционируем выборку
   ВыборкаПоШапкеДокумента.Следующий();
   ВыборкаПоАренде = СформироватьЗапросПоАренде(Контрагенты).Выбрать();
   ЗафиксироватьТранзакцию();
   
   НормаДней = ОПС_ПроведениеРасчетовПоАренде.ПолучитьДанныеКалендаря(ПериодРегистрации);
   
   Пока ВыборкаПоАренде.Следующий() Цикл
      
      ПроверитьЗаполнениеСтрокиАренда(ВыборкаПоАренде, Отказ);
      Отказ = Ложь;
      
      Если НЕ Отказ Тогда
         ПараметрыОтбора = Новый Структура;
         ПараметрыОтбора.Вставить("ПодразделениеОрганизации",    ВыборкаПоАренде.ПодразделениеОрганизации);         
         ПараметрыОтбора.Вставить("Контрагент",                ВыборкаПоАренде.Контрагент);
         ПараметрыОтбора.Вставить("ДоговорКонтрагента",          ВыборкаПоАренде.ДоговорКонтрагента);
         ПараметрыОтбора.Вставить("Объект",                   ВыборкаПоАренде.ОбъектАренды);
         ПараметрыОтбора.Вставить("Авторасчет",                Истина);
         
         НайденныеСтроки = НачисленияПоАренде.НайтиСтроки(ПараметрыОтбора);
         
         Если НайденныеСтроки.Количество() > 0 Тогда
            ВсегоДней = ((НайденныеСтроки[0].ДатаОкончания - НайденныеСтроки[0].ДатаНачала)/(60*60*24)) + 1;
            ПредКоэфИндексации       = 1;
            ТекКоэфИндексации    = 1;
            НайденныеСтроки[0].СуммаИндексации = 1;
            
            Если ВыборкаПоАренде.Индексация тогда
               ПредКоэфИндексации       = ОПС_ПроведениеРасчетовПоАренде.РассчитатьКоэффициентИндексации(ДобавитьМесяц(ПериодРегистрации, -2), ДобавитьМесяц(ПериодРегистрации,-2), ВыборкаПоАренде.ДоговорКонтрагента);
               ТекКоэфИндексации       = ОПС_ПроведениеРасчетовПоАренде.РассчитатьКоэффициентИндексации(ДобавитьМесяц(ПериодРегистрации, -1), ПериодРегистрации, ВыборкаПоАренде.ДоговорКонтрагента);
               СуммаНачисленийПредПериода = РегистрыСведений.ОПС_НачисленияПоАренде.ПолучитьСуммуНачислений(ДобавитьМесяц(ПериодРегистрации, -1), Организация, ВыборкаПоАренде.Контрагент, ВыборкаПоАренде.ДоговорКонтрагента, ВыборкаПоАренде.ОбъектАренды);
               НайденныеСтроки[0].Результат = Окр(НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней,2);
               Если (НайденныеСтроки[0].Индексация И СуммаНачисленийПредПериода > 0)Тогда
                  НайденныеСтроки[0].СуммаИндексации = МАКС(0, НайденныеСтроки[0].Результат - Окр(СуммаНачисленийПредПериода*ВсегоДней/НормаДней, 2));
               КонецЕсли;
            Иначе
               НайденныеСтроки[0].Результат = Окр(НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней,2);            
            КонецЕсли;
         КонецЕсли;
         
      КонецЕсли;
      
   КонецЦикла;

   Если Отказ Тогда
                  
      Возврат Не Отказ;
      
   КонецЕсли;
      
   Записать();
   
   Возврат Не Отказ;
   
КонецФункции // РассчитатьНачисления()

Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
вот такое самое простое (костыльное) решение (под отладчиком, все по другому сделал бы)

вот эту строчку
НайденныеСтроки[0].Результат = Окр(НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней,2);

замените на такую конструкцию

   Попытка
      НайденныеСтроки[0].Результат = Окр(НайденныеСтроки[0].Площадь*НайденныеСтроки[0].Ставка*ВсегоДней/НормаДней,2);
   Исключение
      //лкОшибка = ОписаниеОшибки();
      лкОшибка = "Не удалось расчитать Аренду по Площадь: " + НайденныеСтроки[0].Площадь
         + ", Ставка: " + НайденныеСтроки[0].Ставка
         + ", ВсегоДней: " + ВсегоДней + ", НормаДней: " + НормаДней;
      Сообщить(лкОшибка);
      НайденныеСтроки[0].Результат = 0;
   КонецПопытки;

Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Smolik

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Теперь просто выдает вот такую ошибку, не заполняя ничего по-прежнему.

Цитировать
Не удалось расчитать Аренду по Площадь: 521, Ставка: 200, ВсегоДней: 21, НормаДней:

Скриншот:


Прошу прощения, если сильно туплю :(

Оффлайн LexaK

  • *****
  • Сообщений: 1654
  • РЕПУТАЦИЯ: 471
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Вот!!!
Цитировать
Не удалось расчитать Аренду по Площадь: 521, Ставка: 200, ВсегоДней: 21, НормаДней:
у вас НормаДней - НЕТ



Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Smolik

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо Вам большое!
Нужно было всего навсего зайти в календарь и записать его.


Теги:
 

Значения некоторых колонок являются суммами некоторых колонок, которые в свою очередь так же являются суммами других. Как упорядочить?

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

Ответов: 2
Просмотров: 735
Последний ответ 26 Июн 2017, 14:32
от AsadRoman
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

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

Ответов: 1
Просмотров: 1613
Последний ответ 11 Июл 2016, 09:00
от vitasw
Не получается изменить значение в поле формы (Тип справочник) в зависимости от выбранного значения в поле табличной части.

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

Ответов: 8
Просмотров: 676
Последний ответ 07 Ноя 2018, 14:46
от AIFrame
Склеить значения 2-х объектов формы (поле) в другое поле

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

Ответов: 1
Просмотров: 1748
Последний ответ 15 Июн 2015, 07:15
от cska-fanat-kz
Присвоить начение для реквизита из значения реквизита справочника для печатной формы

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

Ответов: 18
Просмотров: 12337
Последний ответ 21 Май 2014, 11:01
от cska-fanat-kz

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
35 Сообщений
wise wise
33 Сообщений
AIFrame AIFrame
32 Сообщений
alexandr_ll
31 Сообщений
DmitriyF DmitriyF
13 Сообщений
SGIRG SGIRG
12 Сообщений
vova-1c@xaker.ru
11 Сообщений
Shohana
11 Сообщений
kiksi
10 Сообщений
Мария112689
10 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal