7.7 Выборка продаж и остатков по определённым продуктам

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем module, 30 окт 2011.

  1. TopicStarter Overlay
    module
    Offline

    module

    Регистрация:
    27 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток всем.
    Есть небольшая обработка для Торговля и склад, которая создаёт 4 dbf файла, в одном файле выгружаются контрагенты, во 2-й каталог продукции, в третий остатки продукции на складе, и в 4-й продажи за определённый период. Столкнулся с небольшой загвоздкой: в одной из баз, на складе номенклатуры очень много лишней, насчёт каталога продукции решил проблему дополнительным атрибутом - флажком, можно единичкой. Теперь не знаю, как быть с продажами, чтобы выгружались продажи только по определённым товарам, по тем, которые помечены флажком или единичкой, та же самая проблема с остатками. Что добавить в запросы??


    Продажи:
    Код:
    Запрос1=СоздатьОбъект("Запрос");
    ТекстЗапроса="
    |//{{ВЫБРАТЬ
    |ПЕРИОД С {НачДата} По {КонДата};
    |Регистратор= Регистр.Продажи.ТекущийДокумент;
    |Дата= Регистр.Продажи.ТекущийДокумент.ДатаДок;
    |НомерДок= Регистр.Продажи.ТекущийДокумент.НомерДок;
    |Код= Регистр.Продажи.Номенклатура.Код;
    |Арт= Регистр.Продажи.Номенклатура.CCHBC;
    |Товар= Регистр.Продажи.Номенклатура;
    |Количество= Регистр.Продажи.Количество;
    |Стоимость= Регистр.Продажи.ПродСтоимость;
    |КоличествоВ= Регистр.Продажи.КоличествоВ;
    |СтоимостьВ= Регистр.Продажи.ПродСтоимостьВ;
    |КодКлиента= Регистр.Продажи.Покупатель.Код;
    //ДатаПродажи= Регистр.Продажи.ДатаДокумента;
    |Группировка Регистратор;
    |Группировка Товар;
    |Условие(Товар в ТМЦ);
    |Функция СуммаКол      = Сумма(Количество);
    |Функция СуммаСтоим      = Сумма(Стоимость);
    |Функция СуммаСтоимВ      = Сумма(СтоимостьВ);
    |Функция СуммаКолВ = Сумма(КоличествоВ);";
    //******************************************************************************
    //дат=Запрос1.ДатаПродажи;
    Если Запрос1.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    Пока Запрос1.Группировка(1) = 1 Цикл 
    Пока Запрос1.Группировка(2) = 1 Цикл
    Док=			Запрос1.Регистратор;
    Если Запрос1.Товар.ЭтоГруппа()=0 Тогда
    Если Запрос1.СуммаКол<>0  <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда	</span>
    ДатаДок=		Док.ДатаДок;		
    Файл3.Добавить();
    Файл3.УстановитьЗначениеПоля("CODE",Запрос1.Код);
    Файл3.УстановитьЗначениеПоля("ART",Запрос1.Арт);                              
    Файл3.УстановитьЗначениеПоля("NAME",Запрос1.Товар.Наименование);
    Файл3.УстановитьЗначениеПоля("SOLD",Запрос1.Количество);
    Файл3.УстановитьЗначениеПоля("MONEYR",Запрос1.Стоимость);
    Файл3.УстановитьЗначениеПоля("RETURN",Запрос1.КоличествоВ);
    Файл3.УстановитьЗначениеПоля("RMONEYR",Запрос1.СтоимостьВ);
    Файл3.УстановитьЗначениеПоля("DOC_NUMBER",Запрос1.НомерДок);
    Файл3.УстановитьЗначениеПоля("CLIENTCODE",Запрос1.КодКлиента);
    Файл3.УстановитьЗначениеПоля("TPCODE","190");
    Файл3.УстановитьЗначениеПоля("MANFID","8052");	      
    Файл3.УстановитьЗначениеПоля("SOLDDAY",ДатаДок);
    Файл3.УстановитьЗначениеПоля("ORDER_DATE",ДатаДок);
    Файл3.УстановитьЗначениеПоля("DDATE",ДатаДок+1);
    Файл3.Записать();
    
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла; 
    
    Файл3.ЗакрытьФайл();
    
    ____________________________________________________

    Остатки:
    Код:
    Запрос=СоздатьОбъект("Запрос");
    ДатаН=НачДата;
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Загол");	
    Пока ДатаН <= КонДата  Цикл 
    ТекстЗапроса="
    |//{{ВЫБРАТЬ 
    |ПЕРИОД С {ДатаН} По {ДатаН};
    |Регистратор= Регистр.ОстаткиТМЦ.ТекущийДокумент;
    |КодТовара=				Регистр.ОстаткиТМЦ.Номенклатура.Код;
    |Арт = 		Регистр.ОстаткиТМЦ.Номенклатура.CCHBC;
    |Товар = Регистр.ОстаткиТМЦ.Номенклатура;
    |Кол=				Регистр.ОстаткиТМЦ.Количество;
    |Группировка Товар без групп; 
    |Условие (Товар в ТМЦ);
    |Функция КонОст= КонОст(Кол);"; 		
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;                        
    Пока Запрос.Группировка(1) = 1 Цикл  
    Если Запрос.КонОст<>0  Тогда  
    Если Запрос.Товар.ЭтоГруппа()=0 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда		</span>
    Файл2.Добавить();
    Файл2.УстановитьЗначениеПоля("CODE",Запрос.КодТовара);
    Файл2.УстановитьЗначениеПоля("ART",Запрос.Арт);                              
    Файл2.УстановитьЗначениеПоля("NAME",Запрос.Товар.Наименование);
    Файл2.УстановитьЗначениеПоля("STOCK",Запрос.Кол);
    Файл2.УстановитьЗначениеПоля("CURR_DATE",ДатаН);
    Файл2.УстановитьЗначениеПоля("MANFID","8052");			
    Файл2.Записать();
    a=Запрос.КодТовара;
    b=Запрос.Арт;                              
    c=Запрос.Товар.Наименование;
    d=Запрос.Кол;
    е= ДатаН;
    f="8052";	
    Таб.ВывестиСекцию("мак");
    
    КонецЕсли;	
    КонецЕсли;
    КонецЦикла;
    ДатаН=ДатаН+1;
    КонецЦикла;
    Таб.Показать(); 
    Файл2.ЗакрытьФайл();
    
  2. TopicStarter Overlay
    module
    Offline

    module

    Регистрация:
    27 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    неужели никто не подскажет?!) ну ведь прям чую, что там всё просто. Но самому разобраться не получается....какое-то может условие прописать в запросе?!?! Очень срочно нужно, не знаю как быть((
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Добавить Переменную запроса и условие в запрос...
    Код:
    ...
    |Атр=Регистр.ОстаткиТМЦ.Номенклатура.ВашАтрибут;
    ....
    |Условие (Атр=1);
    
    
  4. TopicStarter Overlay
    module
    Offline

    module

    Регистрация:
    27 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное, очень помогло!!!

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