|   |   | 
| 
 | Операции сравнения на больше-меньше допустимы только для значений совпадающих пр | ☑ | ||
|---|---|---|---|---|
| 0
    
        ktu78 04.09.15✎ 17:20 | 
        Добрый день, коллеги. 
 При выполнении выборки запроса для проверки наличия ТМЦ на складе и в партии смотри код: //проверка наличия ТМЦ на складе и в партии Для Каждого ТекСтрока Из СписокПеремещенийТМЦ Цикл Запрос = ПроверкаНаличияТМЦНаСкладеВПартии(Ссылка, СкладОтправитель, ТекСтрока.Партия); Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.КоличествоСклад < Выборка.КоличествоДок Тогда Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Не хватает товаров на складе в размере:"+Строка(Выборка.КоличествоДок-Выборка.КоличествоСклад)+" единиц"; Сообщение.Сообщить(); Отказ=Истина; КонецЕсли; КонецЦикла; КонецЦикла; ........ Функция ПроверкаНаличияТМЦНаСкладеВПартии(Документ, Склад, Партия) //контроль наличия на складе отправителе Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ТМЦОстатки.ТМЦ, | ТМЦОстатки.Склад, | ТМЦОстатки.Партия, | ТМЦОстатки.КоличествоОстаток КАК КоличествоСклад, | ПеремещениеТМЦСписокПеремещенийТМЦ.Количество КАК КоличествоДок |ИЗ | Документ.ПеремещениеТМЦ.СписокПеремещенийТМЦ КАК ПеремещениеТМЦСписокПеремещенийТМЦ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТМЦ.Остатки( | , | Склад = &Склад | И Партия = &Партия) КАК ТМЦОстатки | ПО ПеремещениеТМЦСписокПеремещенийТМЦ.ТМЦ = ТМЦОстатки.ТМЦ |ГДЕ | ПеремещениеТМЦСписокПеремещенийТМЦ.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("Склад",Склад); Запрос.УстановитьПараметр("Партия",Партия); Возврат Запрос; КонецФункции При проведении документа Перемещение ТМЦ выдается ошибка: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.ПеремещениеТМЦ.МодульОбъекта(20)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) Если Выборка.КоличествоСклад < Выборка.КоличествоДок Тогда помогите пожалуйста, заранее благодарен | |||
| 1
    
        Господин ПЖ 04.09.15✎ 17:21 | 
        у тебя там null     | |||
| 2
    
        ДенисЧ 04.09.15✎ 17:22 | 
        хм... А почему при левом соединении не используется ЕСТЬNULL?     | |||
| 3
    
        Масянька 04.09.15✎ 17:22 | 
        (0) Щас придет Ненавижу1С и он тебе популярно объяснит, что Неопределено <> NULL :)))))     | |||
| 4
    
        sash-ml 04.09.15✎ 17:22 | 
        isnull(ТМЦОстатки.КоличествоОстаток,0) КАК КоличествоСклад,     | |||
| 5
    
        ktu78 04.09.15✎ 17:31 | 
        Добавил в запрос 
 ЕСТЬNULL(ТМЦОстатки.КоличествоОстаток, 0) КАК КоличествоСклад, | ЕСТЬNULL(ПеремещениеТМЦСписокПеремещенийТМЦ.Количество, 0) КАК КоличествоДок все равно выскакивает Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.ПеремещениеТМЦ.МодульОбъекта(20)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) Если Выборка.КоличествоСклад < Выборка.КоличествоДок Тогда | |||
| 6
    
        Масянька 04.09.15✎ 17:39 | 
        (5) А нету остатков... Вообще...     | |||
| 7
    
        palsergeich 04.09.15✎ 17:41 | 
        Религия не позволяет сделать остонову по ошибке и самому просмотреть что же там на самом деле то в переменных. Мб где то не NULL а НЕОПРЕДЕЛЕНО? Или вообще другой тип данных?     | |||
| 8
    
        Господин ПЖ 04.09.15✎ 17:41 | 
        и вообще... запрос в цикле... куда мама смотрит?     | |||
| 9
    
        Брегорьян 04.09.15✎ 17:41 | 
        экое громкое имя у регистра     | |||
| 10
    
        palsergeich 04.09.15✎ 17:42 | 
        Кстати да Оо и небось параметры вирт таблицы не стоят, а все в ГДЕ Оо.     | |||
| 11
    
        ktu78 04.09.15✎ 17:49 | 
        Пожалуйста не показывайте ваше остроумие, лучше помогите конкретно     | |||
| 12
    
        ktu78 04.09.15✎ 17:51 | 
        Применил такую конструкцию:
 КС = Число (Выборка.КоличествоСклад); КД = Число (Выборка.КоличествоДок); Ничего не дает! Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.ПеремещениеТМЦ.МодульОбъекта(18)}: Преобразование значения к типу Число не может быть выполнено КС = Число (Выборка.КоличествоСклад); | |||
| 13
    
        Масянька 04.09.15✎ 17:51 | 
        (11) Да нет никакого остроумия... Просто Неопределено <> NULL... Религия, блин, такая :(     | |||
| 14
    
        Масянька 04.09.15✎ 17:52 | 
        (12) Нет остатков. Нет. Сколько раз еще повторять?     | |||
| 15
    
        Брегорьян 04.09.15✎ 17:53 | 
        (11) соберись и скажи, чем помочь. пока собираешься всё поймёшь ;)     | |||
| 16
    
        Господин ПЖ 04.09.15✎ 18:10 | 
        >Просто Неопределено <> NULL
 оно тут откуда - итогов нет + Число (Выборка.КоличествоСклад) сломалось бы >Нет остатков при пустом результате не попал бы в цикл Пока Выборка.Следующий() Цикл | |||
| 17
    
        Брегорьян 04.09.15✎ 18:11 | 
        (16) автор врёт?     | |||
| 18
    
        Масянька 04.09.15✎ 18:14 | 
        (16) Рекомендую, прежде чем отвечать, читать всю (!!!) ветку.     | |||
| 19
    
        Господин ПЖ 04.09.15✎ 18:32 | 
        (18) ты себе совет даешь, на будущее что ли?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |