8.х При не оперативном проведение списывает не то

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем MevMix, 25 июл 2011.

  1. TopicStarter Overlay
    MevMix
    Offline

    MevMix Опытный в 1С

    Регистрация:
    21 фев 2011
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Добрый день!!! Конфиг пишется мною 1с 8.1.

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

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      230 КБ
      Просмотров:
      16
  2. TopicStarter Overlay
    MevMix
    Offline

    MevMix Опытный в 1С

    Регистрация:
    21 фев 2011
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    тему мона закрыватьнашел трабл нет во втором случае
    Код:
    |ГДЕ
    |	КомплектацияНоменклатурыПереченьНоменклатуры.Ссылка = &Ссылка
    

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