Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Разработка отчета с использованием макета


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1   VOKINSEL

VOKINSEL

      Рядовой

    • Пользователи
    • Сообщений: 4
    • Регистрация: 04-March 11
    • Откуда:Днепропетровск , Днепропетровская Область , Украина

Отправлено 04 March 2011 - 22:53

Добрый всем день.

Пытаюсь сварганить отчет об остатках и вот какая проблема:

Все выводится, Но. Склады повторяются в виде
(
склад1->товар1,
склад1->товар2,
склад1->товар3
)

А хотелось бы, чтобы было так:

склад1->товар1,
->товар2,
->товар3
склад2->товар1,
->товар2,
->товар3

Code

ТабДок = Новый ТабличныйДокумент;
     ТабДок.Очистить();
     Макет = ПолучитьМакет("МатериальнаяВедомость");
     Запрос = Новый Запрос;
     Запрос.Текст =  
     "ВЫБРАТЬ
     |    ТоварыОстаткиИОбороты.Отдел КАК Склад,
     |    ТоварыОстаткиИОбороты.Товар КАК Товар,
     |    ТоварыОстаткиИОбороты.КоличествоНачальныйОстаток КАК ОстНач,
     |    ТоварыОстаткиИОбороты.КоличествоПриход КАК Прих,
     |    ТоварыОстаткиИОбороты.КоличествоРасход КАК Расх,
     |    ТоварыОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстКон
     |ИЗ
     |    РегистрНакопления.Товары.ОстаткиИОбороты КАК ТоварыОстаткиИОбороты
      
     |СГРУППИРОВАТЬ ПО
     |    ТоварыОстаткиИОбороты.Товар,
     |    ТоварыОстаткиИОбороты.Отдел,
     |    ТоварыОстаткиИОбороты.КоличествоНачальныйОстаток,
     |    ТоварыОстаткиИОбороты.КоличествоПриход,
     |    ТоварыОстаткиИОбороты.КоличествоРасход,
     |    ТоварыОстаткиИОбороты.КоличествоКонечныйОстаток";
      
     Результат = Запрос.Выполнить();
      
     ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
     ОбластьШапкаТабличнойЧасти = Макет.ПолучитьОбласть("ШапкаТабличнойЧасти");
     ОбластьДетальныеЗаписиСклад = Макет.ПолучитьОбласть("ДетальныеЗаписиСклад");
     ОбластьДетальныеЗаписи = Макет.ПолучитьОбласть("ДетальныеЗаписи");
      
     ТабДок.Вывести(ОбластьШапка);
     ТабДок.Вывести(ОбластьШапкаТабличнойЧасти);
      
     ВыборкаДетальныеЗаписи = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
      
     Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
         ОбластьДетальныеЗаписиСклад.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
         ОбластьДетальныеЗаписи.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
         ТабДок.Вывести(ОбластьДетальныеЗаписиСклад);
         ТабДок.Вывести(ОбластьДетальныеЗаписи);
     КонецЦикла;
     ТабДок.Показать();

Может условие какое нужно. Подскажите пожалуйста

  • 0

#2   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 05 March 2011 - 03:25

Это... результат надо не просто перебирать, а по Группировкам обходить и группировка Склад должна предшествовать группировке Товар.
Читаем о Запросах и думаем - все получится)
  • 0
Киев

#3   VOKINSEL

VOKINSEL

      Рядовой

    • Пользователи
    • Сообщений: 4
    • Регистрация: 04-March 11
    • Откуда:Днепропетровск , Днепропетровская Область , Украина

Отправлено 05 March 2011 - 03:52

Спасибо за ответ, буду еще смотреть запросы. Но ведь обход у меня и так по группировкам, склад и товар поменял местами, но проблема не исчезла =(
  • 0

#4   Zaval

Zaval

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 1109
    • Регистрация: 26-December 07
    • Откуда: , ,

Отправлено 05 March 2011 - 04:20

) Стоп. Есть два момента. Данные в Запросе - вижу, есть группировки, правда, порядок весьма сомнителен...
Но Вам же треба в ТабДок вывести - вот здесь обход группировок нужен. И выводить можно весьма разнообразные области макета)
  • 0
Киев

#5   VOKINSEL

VOKINSEL

      Рядовой

    • Пользователи
    • Сообщений: 4
    • Регистрация: 04-March 11
    • Откуда:Днепропетровск , Днепропетровская Область , Украина

Отправлено 05 March 2011 - 05:07

Все получилось. Спасибо огромнейшее. Подсказал то, что нужно.

Вот что я исправил:
1) В запрос добавил

Code

         |ИТОГИ  
  |СУММА(ОстНач),СУММА(Прих), СУММА(Расх), СУММА(ОстКон)  
  |ПО Склад";

2) И изменил структуру цикла (добавил вложенный цикл)

Code

         Пока ВыборкаДетальныеЗаписиСклад.Следующий() Цикл
   ОбластьДетальныеЗаписиСклад.Параметры.Заполнить(ВыборкаДетальныеЗаписиСклад);
   ТабДок.Вывести(ОбластьДетальныеЗаписиСклад);
   ВыборкаДетальныеЗаписиТМЦ = ВыборкаДетальныеЗаписиСклад.Выбрать();
   Пока ВыборкаДетальныеЗаписиТМЦ.Следующий() Цикл
    ОбластьДетальныеЗаписиТМЦ.Параметры.Заполнить(ВыборкаДетальныеЗаписиТМЦ);
    ТабДок.Вывести(ОбластьДетальныеЗаписиТМЦ);
   КонецЦикла;
  КонецЦикла;

  • 0


Обратно в Программирование и конфигурирование 1С Предприятия 8 обычный интерфейс

Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных