Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 10:09

Помогите плиз..

Автор Sus, 06 июл 2011, 11:23

0 Пользователей и 1 гость просматривают эту тему.

Sus

Только начал работать с 1С8.2, подскажите есть три склада, надо сделать отчет о движении товаров на складе, как сделать чтоб выводило товар только по указанному складу, а у меня выводит во всех случаях по всем....

chuevsf

А где Ваш пример кода? Какое усилие сделали Вы?

Sus

Процедура КнопкаСформироватьНажатие(Кнопка)
      
   Запрос = Новый Запрос;

   Запрос.Текст =
      "ВЫБРАТЬ
      |   ХозрасчетныйОстаткиИОбороты.Субконто1.Код КАК Код,
      |   ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование КАК Наименование,
      |   ХозрасчетныйОстаткиИОбороты.Субконто1.БазоваяЕдиницаИзмерения КАК ЕдИзм,
      |   ХозрасчетныйОстаткиИОбороты.Субконто3.Родитель.Наименование КАК Склад,
      |   ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КолНачОст,
      |   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммНачОст,
      |   ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КолПр,
      |   ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммПр,
      |   ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КолРасх,
      |   ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммРасх,
      |   ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КолКонОст,
      |   ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммКонОст,
      |   Хозрасчетный.Код КАК КодСчет,
      |   ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Код КАК КодРод,
      |   ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Наименование КАК НаименованиеРод
      |ИЗ
      |   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, ДвиженияИГраницыПериода, , , ) КАК ХозрасчетныйОстаткиИОбороты
      |      ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный
      |      ПО ХозрасчетныйОстаткиИОбороты.Счет = Хозрасчетный.Ссылка
      |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
      |      ПО ХозрасчетныйОстаткиИОбороты.Субконто2 = Номенклатура.Ссылка
      |         И ХозрасчетныйОстаткиИОбороты.Субконто3 = Номенклатура.Ссылка
      |         И ХозрасчетныйОстаткиИОбороты.Субконто1 = Номенклатура.Ссылка
      |УПОРЯДОЧИТЬ ПО
      |   Склад
      |ИТОГИ ПО
      |   НаименованиеРод";
   Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
   Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

   Результат = Запрос.Выполнить();
   
               
   Выборка = Запрос.Выполнить().Выбрать();
   ЭлементыФормы.Результат.Очистить();
      
   ТабДок = ЭлементыФормы.Результат;
   Макет = ПолучитьМакет("Макет");
   облИмя = Макет.ПолучитьОбласть("Имя");
   облСтрПер = Макет.ПолучитьОбласть("СтрПер");
   облШапка = Макет.ПолучитьОбласть("Шапка");
   облДетали = Макет.ПолучитьОбласть("Детали");   
   облГруппа = Макет.ПолучитьОбласть("Группа");
   облГруппа2 = Макет.ПолучитьОбласть("Группа2");
   
   ТабДок.Вывести(облИмя);
   
   СК = Формат(Склад);
   облГруппа2.Параметры.СК = СК;
   ТабДок.Вывести(облГруппа2);
   
      
   СтрокаПериода = "с  " + Формат(НачалоПериода, "ДФ = ""дд.ММ.гггг""; ДП = ""-""")
         + "  по  "      + Формат(КонецПериода, "ДФ = ""дд.ММ.гггг""; ДП = ""-""");
      
   облСтрПер.Параметры.СтрокаПериода = СтрокаПериода;
   ТабДок.Вывести(облСтрПер);
   
   ТабДок.Вывести(облШапка);
   
   
   Пока Выборка.Следующий() Цикл
      Если Выборка.ЕдИзм = NULL Тогда
         облГруппа.Параметры.Заполнить(Выборка); табДок.Вывести(облГруппа);
      Иначе
         облДетали.Параметры.Заполнить(Выборка); табДок.Вывести(облДетали);
      КонецЕсли;
             
      
   КонецЦикла;
   
      
   ТабДок.Показать();
      
КонецПроцедуры

Процедура Кнопка1Нажатие(Элемент)
   
   УстановкаПериода(НачалоПериода, КонецПериода);
   
КонецПроцедуры

Процедура УстановкаПериода(ДатаНач, ДатаКон)
   
   НП = Новый НастройкаПериода;
   НП.ВариантНастройки = ВариантНастройкиПериода.Период;
   
   НП.УстановитьПериод(НачалоДня(ДатаНач), ?(ДатаКон = '00010101', ДатаКон, КонецДня(ДатаКон)));

   Если НП.Редактировать() Тогда

      НачалоПериода = НП.ПолучитьДатуНачала();
      КонецПериода = НП.ПолучитьДатуОкончания();
      
   КонецЕсли;
КонецПроцедуры

cannabis_86

Чесно говоря, очень мне не нравится ваш запрос. Слишком замудрен). Анализируйте 41 счет(+10 счет, если используете). И условие ставьте по Субконто2="Тот склад, который вам нужен"

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск