8.х УТ Управление торговлей! ИНВЕНТАРИЗАЦИЯ

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем bobuspeh, 22 фев 2008.

  1. TopicStarter Overlay
    bobuspeh
    Offline

    bobuspeh

    Регистрация:
    22 дек 2007
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Народ!!! Помогите пожалуйста!!!
    не могу решить задачу!
    док.инвентаризации, заполняеться через ТСД номенклатурой и количеством.
    есть действо: перезаполнить учетные кол-ва и суммы.
    проблема в следующем, что у мена к примеру в документе 70 ед, а по сладу числить 100, в документ кидаеться только 70, остальные 30 по учетному количеству не запоняються...
    вот код:
    Помогите пожалуйста!

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

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