1С Предприятие 7.7. Документация

       

Отчет по неходовым товарам


Далее приведен пример нетривиального использования запроса для просмотра одновременно многих видов документов. Цель данной процедуры — вывести в отчет перечень неходовых товаров, которые совсем не продавались за заданный период и показать в каждой строке текущий остаток и стоимость этих товаров. В данном примере запрос формируется с целью определить, что в него не вошло.

Процедура Сформировать()

   Перем Запрос, ТекстЗапроса, Таб;

   Рег = СоздатьОбъект("Регистр.ОстаткиТовара");

   Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса = "//{{ЗАПРОС(Сформировать)

   |Период С ДатаНачала По ДатаКонца;

   |ТОВАР = Документ.РасходнаяБН.Товар,

   |   Документ.РасходнаяКредит.Товар, Документ.РасходнаяНал.Товар,

   |   Документ.РасходнаяРеализ.Товар, Документ.Счет.Товар;

   |Группировка ТОВАР упорядочить по ТОВАР.Наименование без групп;

   |"//}}ЗАПРОС

   ;



   Если ДатаКонца >= ПолучитьДатуТА() Тогда

      ТекстЗапроса = ТекстЗапроса + "Период С ДатаНачала;";

   Иначе

      ТекстЗапроса = ТекстЗапроса + "Период С ДатаНачала По ДатаКонца;";

      Per.ВременныйРасчет();

      РассчитатьРегистрыНа(ДатаКонца);

   КонецЕсли;

   // Выполнение Запроса

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

      Возврат;

   КонецЕсли;

   Тов = СоздатьОбъект("Справочник.Товары");

   // обход включая группировки

   Тов.ВключатьПодчиненные(1);

   // упорядочить по наименованиям

   Тов.ПорядокНаименозаний();

   ИтогоОстаток = 0;

   ИтогоСумма = 0;

   Таб = СоздатьОбъект("Таблица");

   Таб.ВывестиСекцию("Отчет");

   Состояние("В отчет выведено " + ЧислоСтрок + " строк.");

   // Запускаем полный цикл по товарам Справочника

   Тов.ВыбратьЭлементы();

   Пока Тов.ПолучитьЭлемент() > 0 Цикл

      Флаг = 0;

      Товар = Тов.ТекущийЭлемент();

      Если Товар.ЭтоГруппа() = 1 Тогда

         Продолжить;

      КонецЕсли;

      // Здесь пытаемся получить из Запроса информацию о товаре,



Содержание раздела