|   |   | 
| 
 | Ошибка сравнения типов | ☑ | ||
|---|---|---|---|---|
| 0
    
        malex18 04.09.17✎ 11:40 | 
        {Документ.Расходная.МодульОбъекта(51)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
 Если Выборка.Количество > Выборка.КоличествоОстаток Тогда Почему при сравнении "Выборка.количествоОстаток" это неопределенный тип?Если в запросе указал,что естьнулл = 0????? Процедура ОбработкаПроведения(Отказ, Режим) Движения.ОстаткиТоваров.Записывать = Истина; Движения.ОстаткиТоваров.Записывать = Истина; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура, | СУММА(Количество) КАК Количество, | МИНИМУМ(НомерСтроки) КАК НомерСтроки |ПОМЕСТИТЬ ДокТЧ |ИЗ | Документ.Расходная.Товары |ГДЕ | Ссылка = &Ссылка И НЕ Номенклатура.Услуга |СГРУППИРОВАТЬ ПО Номенклатура |; |ВЫБРАТЬ | Остатки.Партия, | ДокТЧ.НомерСтроки, | ДокТЧ.Номенклатура, | ДокТЧ.Количество, | ЕСТЬNULL(Остатки.КоличествоОстаток,0) КАК КоличествоОстаток, | ЕСТЬNULL(Остатки.СтоимостьОстаток,0) КАК СтоимостьОстаток, | ЕСТЬNULL(ОстаткиСКЛ.КоличествоОстаток,0) КАК ОстатокНаСкладе |ИЗ | ДокТЧ КАК ДокТЧ | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, Номенклатура В(ВЫБРАТЬ Номенклатура ИЗ ДокТЧ КАК ДокТЧ)) КАК Остатки | ПО ДокТЧ.Номенклатура = Остатки.Номенклатура | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ОстаткиПоСкладам.Остатки(&МоментВремени, Склад = &Склад | И Номенклатура В(ВЫБРАТЬ Номенклатура ИЗ ДокТЧ КАК ДокТЧ) ) КАК ОстаткиСКЛ | ПО ДокТЧ.Номенклатура = ОстаткиСКЛ.Номенклатура |ИТОГИ МИНИМУМ(Количество), МИНИМУМ(ОстатокНаСкладе), МИНИМУМ(НомерСтроки) |ПО ДокТЧ.Номенклатура"; Запрос.УстановитьПараметр("МоментВремени", МоментВремени() ); Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("Склад", Склад); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Количество > Выборка.КоличествоОстаток Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает товара """ + Выборка.Номенклатура + """, из необходимых " + Выборка.Количество + " в наличии осталось только " + Выборка.КоличествоОстаток; Сообщение.Поле = "Товары[" + (Выборка.НомерСтроки-1) + "].Количество"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); Отказ = Истина; Движения.ОстаткиТоваров.Записывать = Ложь; Движения.ОстаткиПоСкладам.Записывать = Ложь; КонецЕсли; КонецЦикла; Если Отказ Тогда Возврат; КонецЕсли; Выборка.Сбросить(); Пока Выборка.Следующий() Цикл ОсталосьСписать = Выборка.Количество; ВыборкаПартии = Выборка.Выбрать(); Пока ВыборкаПартии.Следующий() И ОсталосьСписать <> 0 Цикл Списать = Мин(ОсталосьСписать, ВыборкаПартии.КоличествоОстаток); Себестоимость = Списать / ВыборкаПартии.КоличествоОстаток * Выборка.Партии.СтоимостьОстаток; Движение = Движения.ОстаткиТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.Количество = Списать; Движение.Стоимость = Себестоимость; Движение.Партия = ВыборкаПартии.Партия; ОсталосьСписать = ОсталосьСписать - Списать; КонецЦикла; Движение = Движения.ОстаткиПоСкладам.ДобавитьРасход(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.Количество = Выборка.Количество; Движение.Склад = Склад; КонецЦикла; КонецПроцедуры | |||
| 1
    
        1dvd 04.09.17✎ 11:42 | 
        NULL <> Неопределено     | |||
| 2
    
        Господин ПЖ 04.09.17✎ 11:43 | 
        >Почему при сравнении "Выборка.количествоОстаток" это неопределенный тип?
 у кого-то в union поля перепутаны | |||
| 3
    
        Альбатрос 04.09.17✎ 11:43 | 
        Даже для поля .количество?     | |||
| 4
    
        dezss 04.09.17✎ 11:43 | 
        Уверен что ругается на Выборка.количествоОстаток, а не на ДокТЧ.Количество?     | |||
| 5
    
        malex18 04.09.17✎ 11:47 | 
        С помощью точки останова смотрю содержимое сравниваемых значений, "выборка.количество" показывает, а "выборка.количествоОстаток" пишет "переменная не определена (КоличествоОстато)     | |||
| 6
    
        dezss 04.09.17✎ 11:50 | 
        (5) Проверь имя переменной. Что-то с ним не так.     | |||
| 7
    
        malex18 04.09.17✎ 11:50 | 
        имя такое же как в запросе. непонятно что-то     | |||
| 8
    
        1dvd 04.09.17✎ 11:50 | 
        (5) букву к украли вражеские программисты     | |||
| 9
    
        dezss 04.09.17✎ 11:51 | 
        (7) скопируй его из запроса.     | |||
| 10
    
        malex18 04.09.17✎ 11:51 | 
        пробовал)     | |||
| 11
    
        dezss 04.09.17✎ 11:52 | 
        (10) Ну посмотри что есть в выборка.     | |||
| 12
    
        malex18 04.09.17✎ 11:53 | 
        в выборке пишет,что количестоОстаток ЕСТЬNUll     | |||
| 13
    
        dezss 04.09.17✎ 11:54 | 
        (12) покажи скрином что хранится в "Выборка" внутри цикла.     | |||
| 14
    
        1dvd 04.09.17✎ 11:54 | 
        ошибка вот здесь:
 |ИТОГИ МИНИМУМ(Количество), МИНИМУМ(ОстатокНаСкладе), МИНИМУМ(НомерСтроки) | |||
| 15
    
        malex18 04.09.17✎ 11:56 | 
        и что здесь не так?     | |||
| 16
    
        1dvd 04.09.17✎ 11:57 | 
        (15) 
 1. нафига тебе вообще итоги, если ты за один проход всё смотришь? 2. Раз уж ты собрался их использовать, то включи в них все переменные, которые хочешь брать | |||
| 17
    
        dezss 04.09.17✎ 12:01 | 
        (14) Блин, точно...не обратил внимания сразу...     | |||
| 18
    
        Serginio1 04.09.17✎ 16:50 | 
        Например сравнение на неустановленность значения в поле с множественными типами 
 |ТИПЗНАЧЕНИЯ(СчетФактура) <> &Тип"; Запрос.УстановитьПараметр("Тип",Тип("NULL")); | |||
| 19
    
        Serginio1 04.09.17✎ 16:51 | ||||
| 20
    
        Хрыч 04.09.17✎ 20:40 | 
        Потому что первая строка в выборке у тебя итоговая, а в ней вычисляются только Количество, ОстатокНаСкладе и НомерСтроки. Поле КоличествоОстаток в итогах значения не имеет. Либо откажись от итогов, либо добавь в них это поле. А скорее всего, ты хотел использовать две выборки: одна с обходом по группировке для фиксации итоговых значений и внутри нее выборка детальных записей, где уже возможно сравнение. Но не вышел из Данилы каменный цветок.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |