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

Хранилище

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

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



> Количество Торговых Точек в Разрезе Торговых Агентов по Категориям товаров , Оптимальный вариант          
Flexy Подменю пользователя
сообщение 16.05.12, 11:36
Сообщение #1

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

Привет.Знаю, название темы завернул 32541510.gif
ТИС 7.7
Стоит задача видеть количество категорий товаров торговых точек торговых агентов с возможностью развернуть контрагентами.
Из того, что мне пришло в голову и я пробовал:
Запросом к Расходной выбирал, Торгового агента, Контрагента и Товар.
Потом в группировке по товару выбирал его категории.
Потом по каждому Торговому в ТЗ сворачивал его категории.
В другой ТЗ считал количество-торговых точек торгового.
В общем получлось сложно и геморно.Может кто подскажет более оптимальное решение.
И пока что не представляю каким макаром можно посчитать кол-во торговых точек по категориям.
Видеть нужно такое на выходе.


Ardi Подменю пользователя
сообщение 16.05.12, 11:44
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Делаем одну ТЗ с колонками:
Агент|Товар|Категория|Контрагент|КвоКонтрагентов
Вася1|Това1|Категори1|Контраген1|1
Вася2|Това2|Категори2|Контраген2|1
Вася6|Това4|Категори4|Контраген3|1

А потом из этой ТЗ путем свёртки получаем любые варианты.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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

Flexy Подменю пользователя
сообщение 16.05.12, 12:01
Сообщение #3

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

А как свернуть тз по колонке Категория для каждого Торгового?

Ага, затупил.По ходу ТЗ.Свернуть("Торговый","Категория").

Сообщение отредактировал Flexy - 16.05.12, 12:04

Ardi Подменю пользователя
сообщение 16.05.12, 12:08
Сообщение #4

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ТЗ.Свернуть("Агент,Категория","КвоКонтрагентов")


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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

Flexy Подменю пользователя
сообщение 16.05.12, 12:25
Сообщение #5

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

Что-то не вяжется.Как увидеть сколько продаж было по каждой категории?

Ardi Подменю пользователя
сообщение 16.05.12, 12:34
Сообщение #6

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

в описании темы нету никаких прдаж.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Flexy Подменю пользователя
сообщение 16.05.12, 12:36
Сообщение #7

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

Цитата(Ardi @ 16.05.12, 12:34) *
в описании темы нету никаких прдаж.

Не правильно выразился.Теперь надо как-то увидеть в скольких торговых точках отработала каждая категория.

Ardi Подменю пользователя
сообщение 16.05.12, 12:38
Сообщение #8

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ТЗ.Свернуть("Агент,Категория","КвоКонтрагентов")


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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

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

Блин.Не получается.Быть может что-то еще не так делаю?

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

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Пока Запрос.Группировка(1) = 1 Цикл
        
        // Заполнение полей ТорговыйАгент
    
        ТЗ.НоваяСтрока();
        ТЗ.ТорговыйАгент = Запрос.ТорговыйАгент;
        КвоКатегорий = 0;
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Контрагент
    
        
        ТЗ.Контрагент = Запрос.Контрагент;
        КоличествоКонтрагентов = КоличествоКонтрагентов+1;
        
        Пока Запрос.Группировка(3) = 1 Цикл
                // Заполнение полей Товар
    
        ТЗ.НоваяСтрока();
        ТЗ.Товар = Запрос.Товар;
        
        СпрКатегорий.ИспользоватьВладельца(Запрос.Товар);
        СпрКатегорий.ВыбратьЭлементы();
        Пока СпрКатегорий.ПолучитьЭлемент() = 1 Цикл
             Если СпрКатегорий.Категория.ПометкаУдаления() = 1 Тогда
                 Продолжить;
                Иначе
                 
            ТЗ.НоваяСтрока();
            ТЗ.Категория = СпрКатегорий.Категория;
            ТЗ.КвоКатегорий = КвоКатегорий + 1;
        КонецЕсли;    
        КонецЦикла
        
    КонецЦикла;
    ТЗ.КвоКонтрагентов = КоличествоКонтрагентов;    
КонецЦикла;
    КоличествоКонтрагентов = 0;    
    
    КонецЦикла;
    // Вывод заполненной формы
    
      ТЗ.Свернуть("ТорговыйАгент,Категория","КвоКонтрагентов");

      ТЗ.ВыбратьСтроку();
   КонецПроцедуры

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

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

Flexy, в тему я еще широко и глубоко не вникла. Бросилось в глаза, что функции в запросе не используете, а все суммируете при обходе запроса. Посмотрите через конструктор запроса - там есть функция счетчик - кажется так. и то что вижу, можно сделать только запросом + при обходе присоединять вертикальную секцию (категория) (недавно подобную структуру делала, даже тема была заведена).

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

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

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

Функция счетчик считает только те значения, у которых тип = число.Хотя в СП написано, что она должна считать количество записей в выборке.
У меня нет проблемы в том, что бы присоединить секцию.
Проблема в том, что я не могу посчитать Количество Торговых Точек торгового агента в разрезе категорий товаров.
Еще раз объясню популярно:
Надо видеть что у Торгового Агента Васи Отработано По Категории А1 - 20 точек, по категории Б1 - 5 точек и т.д.
ТЗ как писали выше я уже имею.Но она не сворачивается, как мне надо.


Сообщение отредактировал Flexy - 16.05.12, 16:49

Домовик Подменю пользователя
сообщение 16.05.12, 17:47
Сообщение #12

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

тз на форме обработки создавали? что там заполнено? можно для контроля тз оставить и смотреть рез свертки по кнопке
"сворачиваете" вроде верно

еще вы плюсуюте при обходе, а нужно просто единицу - новая строка(); квоконтрагентов=1;

Сообщение отредактировал Домовик - 16.05.12, 17:55

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

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

счетчик можно заменить таким или похожим способом.(нулевстрока="") в верхних группировках - плюсуюет, т е показывает итоговые суммы.
все бы хорошо, если бы еще группировкой сделать категорию. но это подчиненный справочник к Товару ...

    |контраг = Документ.РасходнаяНакладная.Контрагент.Наименование;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент;
    |Функция Ксчетчик = Сумма(1) когда(контраг <> нулевстрока);



такой счетчик лучше делать по значению верхней группировки. Единички проставятся во всех внутренних группировках. У Вас это ТорговыйАгент

Сообщение отредактировал Домовик - 16.05.12, 21:50

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

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

Еще, если не по ЗАпросу, а по коду обхода Запроса. То привести таблицу к виду, кот указал Ardi, можно где-то так


  Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2) = 1 Цикл
        
        Пока Запрос.Группировка(3) = 1 Цикл
        
        СпрКатегорий.ИспользоватьВладельца(Запрос.Товар);
        СпрКатегорий.ВыбратьЭлементы();
        Пока СпрКатегорий.ПолучитьЭлемент() = 1 Цикл
             Если СпрКатегорий.Категория.ПометкаУдаления() = 1 Тогда
                 Продолжить;
                Иначе
                
            ТЗ.НоваяСтрока();
        ТЗ.ТорговыйАгент = Запрос.ТорговыйАгент;
        ТЗ.Контрагент = Запрос.Контрагент;
             ТЗ.Товар = Запрос.Товар;
       ТЗ.Категория = СпрКатегорий.Категория;
            ТЗ.КвоКонтрагентов=  1;
        КонецЕсли;    
        КонецЦикла
        
    КонецЦикла;
КонецЦикла;
    
    КонецЦикла;




Сообщение отредактировал Домовик - 17.05.12, 8:39

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

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

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

Спасибо.Получилось.Но только ТЗ надо было свернуть 2 раза.
ТЗ.Свернуть("ТорговыйАгент,Категория, Контрагент", "КвоКонтрагентов");
ТЗ.Свернуть("ТорговыйАгент,Категория","КвоКонтрагентов");

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

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

Flexy, а я уже подумала, что Вы меня флудером засчитали. )

про поэтапное сворачивание верно заметили. да. есть такое.

Сообщение отредактировал Домовик - 17.05.12, 13:47

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


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

 

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