8.х Проблема при вводе на основании

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alexisinfire, 13 май 2008.

  1. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Здрасте всем.

    Такая проблема:
    В обработчик проведения документа включен элемент проверки наличия ресурсов в регистре:

    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ВыдачаКомплектацииСостав.Номенклатура,
    |    ВыдачаКомплектацииСостав.Количество,
    |    Основной1Остатки.КоличествоОстаток КАК КоличествоНаСкладе,
    |    ВыдачаКомплектацииСостав.Цена,
    |    ВыдачаКомплектацииСостав.НДС,
    |    ВыдачаКомплектацииСостав.ВидРассчета
    |ИЗ
    |    Документ.ВыдачаКомплектации.Состав КАК ВыдачаКомплектацииСостав
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Основной1.Остатки(
    |                ,
    |                Номенклатура В (&ПарНоменклатура)
    |                    И Склад = &Склад
    |                    И Цена В (&Цена)
    |                    И НДС В (&НДС)
    |                    И ВидРассчета В (&ВидРассчета)) КАК Основной1Остатки
    |        ПО ВыдачаКомплектацииСостав.Номенклатура = Основной1Остатки.Номенклатура
    |ГДЕ
    |    ВыдачаКомплектацииСостав.Ссылка = &Ссылка
    |
    |ДЛЯ ИЗМЕНЕНИЯ
    |    РегистрНакопления.Основной1.Остатки";
    Запрос.УстановитьПараметр("ПарНоменклатура", Состав.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("Склад", Справочники.Подразделение.СкладНакопитель);
    Для Каждого ТСС Из Состав Цикл
    Запрос.УстановитьПараметр("Цена", ТСС.Цена);
    Запрос.УстановитьПараметр("НДС", ТСС.НДС);
    Запрос.УстановитьПараметр("ВидРассчета", ТСС.ВидРассчета);
    КонецЦикла;
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Результат = Запрос.Выполнить().Выбрать();
    
    Пока Результат.Следующий() Цикл
    Остаток = ?(Результат.КоличествоНаСкладе = Null, 0, Результат.КоличествоНаСкладе);
    Если Остаток < Результат.Количество Тогда
    Сообщить("Товара " + СокрЛП(Результат.Номенклатура) + " по цене " 
    +СокрЛП(Результат.Цена)+ " с НДС " +СокрЛП(Результат.НДС)+ "% с видом рассчета - " 
    +СокрЛП(Результат.ВидРассчета)
    + " на СКЛАДЕ НАКОПИТЕЛЕ имеется только " +Остаток);
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    КонецЦикла;
    
    В Документе присутствует табличная часть, в нее вводятся элементы, проводимые по регистру. Если строк с элементами больше чем одна, то выдается отказ и пишется "остаток = 0", а если строка одна, то документ проводится. И остаток, в случае отказа, пишется достоверный.
    Почему так? И как ето исправить?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Сделайте соединение по номенклатуре - зачем условие?
  3. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное) :unsure:
    Без условия работает)

Поделиться этой страницей