Содержание

2.42 Отчет по остаткам на складе готовой продукции.

В принципе, конфигурация создана. Осталось только добавить пару отчетиков. Один отчет – Счет60 у нас уже есть. Создадим теперь отчет по остаткам на складе.
Вводим новый отчет "ОстаткиГотовойПродукции".
В модуль формы пишем:
Процедура ПриОткрытии()
  ДатО = РабочаяДата();
КонецПроцедуры
//==========================================================
Процедура Сформировать()
  Таб = СоздатьОбъект("Таблица");
  Таб.ИсходнаяТаблица("Таблица");
  Ит = СоздатьОбъект("БухгалтерскиеИтоги");
  Ит.ИспользоватьПланСчетов(ПланыСчетов.Наш);
  Ит.ИспользоватьРазделительУчета(Константа.ОснФирма);
  Скл="По всем складам";
  Суб=1;
  Если ВСклад.Выбран()=1 Тогда
    Ит.ИспользоватьСубконто(ВидыСубконто.МестоХранения,ВСклад,2);
    Скл="По складу: "+СокрЛП(Строка(ВСклад));
    Суб=2;
  КонецЕсли;
  Ит.ИспользоватьСубконто(ВидыСубконто.Изделие,,1);
  Ит.ВыполнитьЗапрос(,ДатО,"40");
  Таб.ВывестиСекцию("Шапка");
  ИтКол=0;
  ИтСумС=0;
  ИтСумР=0;
  ИтСумН=0;
  Ит.ВыбратьСубконто(Суб);
  Пока Ит.ПолучитьСубконто(Суб)=1 Цикл
    Изд=Ит.Субконто(Суб);
    Цен=Изд.Цена.Получить(ДатО);
    Кол=Ит.СКД(3);
    СумС=Ит.СКД(1);
    СумР=Окр(Кол*Цен,2,1);
    СумН=Окр(СумР*(1+Изд.НДС.Значение/100),2,1);
    ИтКол=ИтКол+Кол;
    ИтСумС=ИтСумС+СумС;
    ИтСумР=ИтСумР+СумР;
    ИтСумН=ИтСумН+СумН;
    Таб.ВывестиСекцию("Строка");
  КонецЦикла;
  Таб.ВывестиСекцию("Подвал");
  Таб.ТолькоПросмотр(1);
  Таб.ПараметрыСтраницы(2);
  Таб.Показать("Сформировать","");
КонецПроцедуры

Делаем шаблон печатной формы

2.43 Отчет по покупателям.

Создадим теперь отчет по 62-ому счету - "Покупатели". В поле ДатН пишем формулу Дат("Н"), а в поле ДатК – Дат("К"). В модуль формы:
Процедура Сформировать()
  Запрос=СоздатьОбъект("Запрос");
// Создаем запрос по базе данных
  ТекстЗапроса="
  |Период с ДатН по ДатК;
  |Пок = Операция.Субконто.Контрагент;
  |Сум = Операция.Сумма;
  |Сч = Операция.Счет;
  |Функция СумСНК = СНК(Сум) когда (Сч=СчетПоКоду(""62""));
  |Функция СумСНД = СНД(Сум) когда (Сч=СчетПоКоду(""62""));
  |Функция СумКО = КО(Сум) когда (Сч=СчетПоКоду(""62""));
// Нас интересуют кредитовые
  |Функция СумДО = ДО(Сум) когда (Сч=СчетПоКоду(""62""));
// и дебетовые обороты
  |Функция СумСКК = СКК(Сум) когда (Сч=СчетПоКоду(""62""));
  |Функция СумСКД = СКД(Сум) когда (Сч=СчетПоКоду(""62""));
  |Условие (Сч=СчетПоКоду(""62""));
// Другие чтоб не лезли... Если не поставить - в отчет
// Поставщики попадут с нулями
  |Группировка Пок упорядочить по Пок.Наименование без Групп;";
  Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
    Сообщить("Запрос не выполнен");
    Возврат;
  КонецЕсли;
  ИтНачК=0;
  ИтНачД=0;
  ИтИзмК=0;
  ИтИзмД=0;
  ИтКонК=0;
  ИтКонД=0;
// Это переменные для итога
  Таб=СоздатьОбъект("Таблица");
  Таб.ИсходнаяТаблица("");
  Таб.ВывестиСекцию("Шапка");
  Пока Запрос.Группировка(1)=1 Цикл
    Клн=Запрос.Пок;
    НачК=Запрос.СумСНК;
    НачД=Запрос.СумСНД;
    ИзмК=Запрос.СумКО;
    ИзмД=Запрос.СумДО;
    КонК=Запрос.СумСКК;
    КонД=Запрос.СумСКД;
// Получаем разные сальдо и обороты...
    ИтНачК=ИтНачК+НачК;
    ИтНачД=ИтНачД+НачД;
    ИтИзмК=ИтИзмК+ИзмК;
    ИтКонД=ИтКонД+КонД;
    ИтКонК=ИтКонК+КонК;
    ИтИзмД=ИтИзмД+ИзмД;
// Складываем для окончательного итога
    Таб.ВывестиСекцию("Строка");
  КонецЦикла;
  Таб.ВывестиСекцию("Подвал");
  Таб.ТолькоПросмотр(1);
  Таб.ПараметрыСтраницы(1,100,1);
  Таб.Показать("");
КонецПроцедуры
//==========================================================
Процедура Дат(Тип)
// Процедура с переменной
  Если  Тип="Н" Тогда
    Если ДатН > ДатК Тогда
      ДатН=ДатК;
    КонецЕсли;
  ИначеЕсли Тип="К" Тогда
    Если ДатК < ДатН Тогда
      ДатК=ДатН;
    КонецЕсли;
  КонецЕсли;
КонецПроцедуры
//==========================================================
ДатК=ТекущаяДата();
ДатН=НачМесяца(ДатК);
В этом отчете мы воспользовались не привычным нам уже объектом БухгалтерскиеИтоги, а объектом Запрос. С ним мы активно работали в первой методичке.
Создаем шаблон печатной формы
Проверяем работу отчета.


Предыдущая Содержание Следующая