8.х Таблица Значений

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем TamKar, 25 фев 2011.

  1. TopicStarter Overlay
    TamKar
    Offline

    TamKar

    Регистрация:
    16 дек 2009
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Не отражается в регистре Товары на складе расход, подскажите почему

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

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