Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отчет Кросс-таблица в 7.7 , Как сделать?          
Flexy Подменю пользователя
сообщение 22.05.12, 13:57
Сообщение #1

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Привет.Пытаюсь сделать отчет, но что-то не получается.
Скрин:
Код:
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформ)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Товар = Документ.РасходнаяНакладная.Товар;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |Количество = Документ.РасходнаяНакладная.Количество;
    |Функция КоличествоСумма = Сумма(Количество);
    |Группировка Товар без групп;
    |Группировка Контрагент без групп;
    |Условие(Товар в ВыбТовар);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    Если Флаг = 1 Тогда
    Запрос.Выгрузить(ТЗ,,0);
    ТЗ.Свернуть("Контрагент, Товар", "Количество");
    Возврат;
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица1");
    // Заполнение полей "Заголовок"
      Таб.ВывестиСекцию("Заголовок|ШАпка");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    
    Пока Запрос.Группировка(1) = 1 Цикл
        
        Таб.ВывестиСекцию("Товар");
        
        Пока Запрос.Группировка(2) = 1 Цикл
            
            Таб.ВывестиСекцию("Контрагент");
КонецЦикла;
    
    КонецЦикла;

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформ", "");

Я так понимаю тут надо либо как-то хитро с группировкой играться...либо...с секциями таблицы.

Шаблон в 1С:


Сообщение отредактировал Flexy - 22.05.12, 14:00

Kaliban Подменю пользователя
сообщение 22.05.12, 14:09
Сообщение #2

Говорящий
Иконка группы
Группа: Местный
Сообщений: 97
Спасибо сказали: 28 раз
Рейтинг: 0

С секциями.
Запустите конструктор запроса к БИ типа Шахматка.
Общий смысл поймете.

Спасибо сказали: Flexy,

nysysimara Подменю пользователя
сообщение 22.05.12, 14:14
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

ВыбТовар - это список необходимых товаров?
тогда
В Заголовке вместо Запрос.Товар - переменную например загТовар
В ТекстЗапроса поменять порядок группировок: сначала Контрагент, потом - товар
и
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок|ШАпка");  
Для Сч=1 По ВыбТовар.РазмерСписка() Цикл
    загТовар = ВыбТовар.ПолучитьЗначение(Сч)
    Таб.ПрисоединитьСекцию("Заголовок|Товар");
КонецЦикла;
Пока Запрос.Группировка(1) = 1 Цикл   //Контрагент
    Таб.ВывестиСекцию("Контрагент|ШАпка");
    
    Пока Запрос.Группировка(2) = 1 Цикл  //Товар
        Таб.ПрисоединитьСекцию("Контрагент|Товар");
        
    КонецЦикла;
КонецЦикла;


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Flexy Подменю пользователя
сообщение 22.05.12, 14:20
Сообщение #4

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(nysysimara @ 22.05.12, 14:14) *
ВыбТовар - это список необходимых товаров?
тогда
В Заголовке вместо Запрос.Товар - переменную например загТовар
В ТекстЗапроса поменять порядок группировок: сначала Контрагент, потом - товар

Товар это поле ввода с типом Справочник.Номенклатура.В Моем случае он содержит группу товара "Алкоголь".
Группировки менять местами я пробовал.Но тогда у меня товар выводился столько раз, скольким контрам он был продан.
Бухии нет под рукой что бы глянуть как там формируется шахматка.
Может есть еще варианты какие?

nysysimara Подменю пользователя
сообщение 22.05.12, 15:02
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

в запросе группировки так:
 
|Группировка Контрагент без групп;
|Группировка Товар без групп;

после запроса если можно, использовать вашу ТЗ
если нет -создать др.таблицу знач.
Если Флаг = 1 Тогда
    Запрос.Выгрузить(ТЗ,,0);
    ТЗ.Свернуть("Контрагент, Товар", "Количество");
    Возврат;
Иначе
    Запрос.Выгрузить(ТЗ,,0);
    ТЗ.Свернуть("Товар", "Количество");
        ТЗ.Сортировать("Товар");
КонецЕсли;

потом как-то так
 Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок|ШАпка");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
    загТовар = ТЗ.Товар;
    Таб.ПрисоединитьСекцию("Заголовок|Товар");
КонецЦикла;
Пока Запрос.Группировка(1) = 1 Цикл   //Контрагент  
    текКонтр = Запрос.Контрагент;
    Таб.ВывестиСекцию("Контрагент|ШАпка");
    
    КвоТовара=0; //то что вывести в Таб
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
        загТовар = ТЗ.Товар;
        Если Запрос.Получить(текКонтр,загТовар)=1 Тогда
            КвоТовара=Запрос.КоличествоСумма;
        КонецЕсли;
        Таб.ПрисоединитьСекцию("Контрагент|Товар");
        
    КонецЦикла;
КонецЦикла;




Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: Flexy,

sava1 Подменю пользователя
сообщение 22.05.12, 15:24
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

А зачем тз?
Простой обход группировок (вторая группировка ВсеВошедшие в Запрос)


Вывод заголовка :

пока запрос.Группировка(1)=1 Цикл
   таб.ВывестиСекцию()

   пока запрос.Группировка(2)=1 Цикл
        таб.присоединитьСекцию(...);
   конеццикла;
   прервать;
конеццикла



 i 

Пожалуйста, выделяйте код
 


Сообщение отредактировал Vofka - 22.05.12, 16:09

Спасибо сказали: Домовик,

Домовик Подменю пользователя
сообщение 22.05.12, 16:01
Сообщение #7

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

sava1 верно говорит. не выводит по товарам, скорее из-за отсутствия ВсеВошедшие в запрос.
по поводу группировок тоже верно указали.


Группировка Контрагент без групп
группировка товар всеВошедшие в запрос;

попробуйте пока без шапки это вывести.

Сообщение отредактировал Домовик - 22.05.12, 16:12

Flexy Подменю пользователя
сообщение 22.05.12, 16:20
Сообщение #8

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Пробовал.Таким образом выводит только одного самого первого контрагента.
А товара выводит по всем контрам.Короче много.
Мне же надо, что бы если в папке Алкоголь 4 позиции, то должно выводить их 4.
А контрагентов с количеством разворачивало в разрезе этого товара.

Домовик Подменю пользователя
сообщение 22.05.12, 16:37
Сообщение #9

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

не может быть, чтобы одного контрагента выводило.

мне тогда задача не понятна. А разве количество колонок-товаров не по всем контрагентам? просто ячейки будут заполняться только по нужному контрагенту. а разве нет так шахматка устроена?


Сообщение отредактировал Домовик - 22.05.12, 16:38

Flexy Подменю пользователя
сообщение 22.05.12, 16:39
Сообщение #10

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Домовик @ 22.05.12, 16:37) *
не может быть, чтобы одного контрагента выводило.

мне тогда задача не понятна. А разве количество колонок-товаров не по всем контрагентам? просто ячейки будут заполняться только по нужному контрагенту. а разве нет так шахматка устроена?

Да.Что-то типа того.Т.е. товар должен быть в таблице фиксированный (естественно тот по которому были движения), а контрагенты и количество товара должно меняться.

Домовик Подменю пользователя
сообщение 22.05.12, 16:49
Сообщение #11

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

вам верно подсказали, тяните код.

sava1 Подменю пользователя
сообщение 22.05.12, 20:41
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

|Группировка Контрагент без групп;
|Группировка Товар без групп;

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");

Пока Запрос.Группировка(1) = 1 Цикл   //Контрагент
    Таб.ВывестиСекцию("Заголовок|ШАпка");
    
    Пока Запрос.Группировка(2) = 1 Цикл  //Товар
        Таб.ПрисоединитьСекцию("Контрагент|Товар");
        
    КонецЦикла;
    Прервать;
КонецЦикла;

Запрос.вНачалоВіборки();

Пока Запрос.Группировка(1) = 1 Цикл   //Контрагент
    Таб.ВывестиСекцию("Контрагент|Шапка");
    
    Пока Запрос.Группировка(2) = 1 Цикл  //Товар
        Таб.ПрисоединитьСекцию("Контрагент|Товар");
        
    КонецЦикла;
    Прервать;
КонецЦикла;


Наименования секций могут біть не те - не вижу макета

Домовик Подменю пользователя
сообщение 23.05.12, 6:31
Сообщение #13

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

sava1,прервать при втором обходе нужно убрать.
ВсеВошедшие в запрос нужно. Иначе будет выдавать в строках разное количество колонок.только те ячейки, по которым есть количество.

Спасибо сказали: Flexy,

sava1 Подменю пользователя
сообщение 23.05.12, 7:05
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Согласен (код копировал - прощелкал)

Спасибо сказали: Flexy,

Flexy Подменю пользователя
сообщение 23.05.12, 8:27
Сообщение #15

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Ребят, Спасибо.Получилось. icon_beer17.gif
Утром смотрел как в Бухии формирует шапку.Имхо ваш вариант для меня проще оказался.
Есть правда небольшой нюанс.Перестало Итоги выводить...

Сообщение отредактировал Flexy - 23.05.12, 9:31

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 3:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!