Имя: Пароль:
1C
1С v8
Получение остатков
0 Rumpil
 
08.05.12
16:47
Добрый день, господа. Есть отчет "Остатки товаров", в котором есть колонка "Зарезервировано", при двойном клике по цифре в этой колонке открывается расшифровка зарезервированного количество - то есть по каким документам. В запросе вроде я получаю не обороты, а именно остатки - то есть текущий резерв, тем не менее в расшифровке мне открываются абсолютно все документы, которые делали движения по регистру движений + и -.

Т.е был Товар начальный остаток = 5, из них 3 зарезервировали, 1 уже по резерву продали. На тек. момент остаток = 4, при этом 2 в резерве, в расшифровке должно показывать так:

Резервирование 002 +1 шт
Резервирование 003 +1 шт

а показывает

Резервирование 001 +1 шт
Продажа 001        - 1шт
Резервирование 002 +1 шт
Резервирование 003 +1 шт

Вот код расшифровки:

   Макет = ПолучитьМакет("МакетВидРасшифровкиЗарезервировано");
   Запрос = Новый Запрос;    
   Запрос.Текст =    
   "ВЫБРАТЬ
   |    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезервирования,
   |    ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад,
   |    ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Товар,
   |    ТоварыВРезервеНаСкладахОстатки.Подразделение КАК Подразделение,
   |    ТоварыВРезервеНаСкладахОстатки.Клиент КАК Клиент,
   |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Кол
   |ИЗ
   |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
   |ГДЕ
   |    1 = 1
   |    И ТоварыВРезервеНаСкладахОстатки.Номенклатура = &прНоменклатура
   |    И ТоварыВРезервеНаСкладахОстатки.Склад = &прСклад";
       Запрос.УстановитьПараметр("прНоменклатура", Номенклатура);
   Запрос.УстановитьПараметр("прСклад", Склад);
   
   ЗАпрос.Текст = ЗАпрос.Текст + "
   |УПОРЯДОЧИТЬ ПО
   |ТоварыВРезервеНаСкладахОстатки.ДокументРезерва ";
   
   Результат = Запрос.Выполнить();
   
   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьДокСтроки = Макет.ПолучитьОбласть("ДокСтроки");
   ОбластьИтСтроки = Макет.ПолучитьОбласть("ИтСтроки");    
   
   ТабДок.Очистить();
   
   ОбластьЗаголовок.Параметры.Склад = Склад;
   ОбластьЗаголовок.Параметры.Товар = Номенклатура;
   ТабДок.Вывести(ОбластьЗаголовок);
   
   ТабДок.Вывести(ОбластьШапка);
   ТабДок.НачатьАвтогруппировкуСтрок();
   
   ВыборкаДокСтроки = Результат.Выбрать();
   
   ОбКол=0;
   Пока ВыборкаДокСтроки.Следующий() Цикл
               ОбластьДокСтроки.Параметры.Подраз = ВыборкаДокСтроки.Подразделение;
       ОбластьДокСтроки.Параметры.ДокументРезервирования = ВыборкаДокСтроки.ДокументРезервирования;
       
       Если ВыборкаДокСтроки.Кол=0 тогда
           ОбластьДокСтроки.Параметры.Кол = "0";
       Иначе
           ОбластьДокСтроки.Параметры.Кол = ВыборкаДокСтроки.Кол;
       КонецЕсли;
       ОбКол=ОБКол+ВыборкаДокСтроки.Кол;
       
       ТабДок.Вывести(ОбластьДокСтроки);
   КонецЦикла;
   ОбластьИтСтроки.Параметры.ОбКол = ОбКол;    
   ТабДок.Вывести(ОбластьИтСтроки);
   
   ТабДок.ЗакончитьАвтогруппировкуСтрок();
1 Rumpil
 
08.05.12
16:54
ап
2 Мимохожий Однако
 
08.05.12
17:02
Так в чём вопрос то?
3 Rumpil
 
08.05.12
17:18
(2) вопрос в том почему показываются обороты, хотя по запросу я получаю остатки ?
4 Галахад
 
гуру
08.05.12
17:23
(3) Не просто остатки, а остатки в разрезе ДокументРезервирования
5 Rumpil
 
08.05.12
17:27
(4) ну да
6 Rumpil
 
08.05.12
17:34
(4) скорее по документу резерва - а этом может быть как продажа так и резервирование товара
AdBlock убивает бесплатный контент. 1Сергей