Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:24

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

Автор ech0, 17 янв 2011, 08:52

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

ech0

Доброго всем времени суток!
Помогите пожалуйста новичку в следующем вопросе:
При формировании дебиторской задолженности вылетает следующая ошибка: Преобразование значения к типу Число не может быть выполнено.
{ВнешнийОтчет.ДебиторскаяЗадолженностьНовоеВремя(707)}: Преобразование значения к типу Число не может быть выполнено
    СтрокаТЗ.КоличествоSKU             = окр(пКоличествоSKU/пКолвоКонтрагентов);
Если например я формирую дебиторку с 01.11.2010 по сегодняшний день, то работает все хорошо, а если формирую с 01.12.2010 то выдает ошибку.
Помогите разобраться пожалуйста, и если не трудно то напишите пошагово что и в какой строке поменять.
Заранее спасибо.

progmikon

Нужно посмотреть в отладчике, какие значения у вас принимают переменные
пКоличествоSKU
пКолвоКонтрагентов

Очевидно, что в какой-то момент их значением является не число.

cska-fanat-kz

Цитата: progmikon от 17 янв 2011, 17:24
Нужно посмотреть в отладчике, какие значения у вас принимают переменные
пКоличествоSKU
пКолвоКонтрагентов

Очевидно, что в какой-то момент их значением является не число.

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

Slin

skype: slin-dev

ech0

Цитата: Slin от 18 янв 2011, 07:37
применяйте в запросах функцию ЕСТЬNULL
СтрокаТЗ.КоличествоКонтрагентов    = пКолвоКонтрагентов;
    СтрокаТЗ.КоличествоSKU             = окр(пКоличествоSKU/пКолвоКонтрагентов);
   СтрокаТЗ.Отгрузка               = пОтгрузка;
Подскажите пожалуйста куда именно вписать здесь функцию ЕСТЬNULL

***Vjacheslav***

Цитата: Slin от 18 янв 2011, 07:37
применяйте в запросах функцию ЕСТЬNULL
там написано в запросе в котором вы формируете ТаблицуЗначений(я правильно понял СтрокаТЗ - это строка таблицы значений?.) просто из текста не понятно,если можно полный текст. А как вариант в отладчике (Отладка->Остановка по ошибке -> устанавливаешь галочку останавливаться при ошибке) запускаешь отладку. и когда она остановиться по этой ошибке проверяй какая из переменных у тебя неправильная.(выделяешь переменную->Ctrl+F9).

nomer13

Попробуйте так:

Если окр(пКоличествоSKU/пКолвоКонтрагентов) = NULL или
         окр(пКоличествоSKU/пКолвоКонтрагентов) =  Неопределено тогда
СтрокаТЗ.КоличествоSKU             = 0;
Иначе
СтрокаТЗ.КоличествоSKU             =  окр(пКоличествоSKU/пКолвоКонтрагентов);
КонецЕсли;

ech0

Цитата: nomer13 от 18 янв 2011, 09:29
Попробуйте так:

Если окр(пКоличествоSKU/пКолвоКонтрагентов) = NULL или
         окр(пКоличествоSKU/пКолвоКонтрагентов) =  Неопределено тогда
СтрокаТЗ.КоличествоSKU             = 0;
Иначе
СтрокаТЗ.КоличествоSKU             =  окр(пКоличествоSKU/пКолвоКонтрагентов);
КонецЕсли;


{ВнешнийОтчет.ДебиторскаяЗадолженностьНовоеВремя(706)}: Преобразование значения к типу Число не может быть выполнено
   Если окр(пКоличествоSKU/пКолвоКонтрагентов) = NULL или

***Vjacheslav***

Побольше текст модуля напиши, желательно с запросом. или от куда берется СтрокаТЗ.

ech0

Цитата: ***Vjacheslav*** от 18 янв 2011, 10:00
Побольше текст модуля напиши, желательно с запросом. или от куда берется СтрокаТЗ.
ЗапросПоказатели = Новый Запрос;
   ЗапросПоказатели.Текст =
   "ВЫБРАТЬ
   |   ПродажиОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
   |   ПродажиОбороты.ДоговорКонтрагента.Владелец.ОсновнойМенеджерПокупателя КАК Ответственный,
   |   ПродажиОбороты.Номенклатура КАК Номенклатура,
   |   СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот,
   |   КОЛИЧЕСТВО(ПродажиОбороты.Номенклатура) КАК КоличествоSKU,
   |   КОЛИЧЕСТВО(ПродажиОбороты.ДоговорКонтрагента.Владелец) КАК КоличествоКонтрагентов
   |ИЗ
   |   РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , ДоговорКонтрагента.Владелец.ОсновнойМенеджерПокупателя = &Ответственный) КАК ПродажиОбороты
   |
   |СГРУППИРОВАТЬ ПО
   |   ПродажиОбороты.ДоговорКонтрагента.Владелец.ОсновнойМенеджерПокупателя,
   |   ПродажиОбороты.Номенклатура,
   |   ПродажиОбороты.ДоговорКонтрагента.Владелец
   |ИТОГИ
   |   СУММА(СтоимостьОборот),
   |   СУММА(КоличествоSKU),
   |   КОЛИЧЕСТВО(КоличествоКонтрагентов)
   |ПО
   |   Ответственный,
   |   Контрагент,
   |   Номенклатура";
   
   ЗапросПоказатели.Параметры.Вставить("ДатаНач", НачалоДня(ДатаНач));
   ЗапросПоказатели.Параметры.Вставить("ДатаКон", КонецДня(ДатаКон));
   ЗапросПоказатели.Параметры.Вставить("Ответственный", фМенеджер);
   
   ТЗПоказатели = Новый ТаблицаЗначений;
   ТЗПоказатели.Колонки.Добавить("КоличествоКонтрагентов");
   ТЗПоказатели.Колонки.Добавить("КоличествоSKU");
   ТЗПоказатели.Колонки.Добавить("Отгрузка");
   СтрокаТЗ = ТЗПоказатели.Добавить();
   
   
   ВыборкаМенеджеры = ЗапросПоказатели.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Ответственный");
   Пока ВыборкаМенеджеры.Следующий() Цикл
      пКолвоКонтрагентов    = 0;
      пКоличествоSKU       = ВыборкаМенеджеры.КоличествоSKU.ЕСТЬNULL;
      пОтгрузка          = ВыборкаМенеджеры.СтоимостьОборот;
      ВыборкаКонтрагенты = ВыборкаМенеджеры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Контрагент");
      Пока ВыборкаКонтрагенты.Следующий() Цикл
         пКолвоКонтрагентов = пКолвоКонтрагентов +1;
      КонецЦикла;
   КонецЦикла;
   
СтрокаТЗ.КоличествоSKU             = 0;
Иначе
СтрокаТЗ.КоличествоSKU             =  окр(пКоличествоSKU/пКолвоКонтрагентов);
КонецЕсли;
   
   
   Возврат ТЗПоказатели;
   

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск