Вход | Регистрация


1С:Предприятие ::

Метки:

Сортировка в отчете

Я
   Гном
21.03.04 - 10:46
Проблема такова: ТиС v9.0 необходимо вывести в отчет номенклатуру след. образом -
Сначала идут названия родительских групп,затем сама номенклатура и т.д .
Голову уже сломал с этой сортировкой, пока ничего не выходит...
P.S. Тему про печать прайса я смотрел, тут немного другая ситуация, в наличие уже есть заполненая ТЗ с номенклатурой, вот эту ТЗ и надо отсортировать....
 
  Рекламное место пустует
   SnarkHunter
 
1 - 21.03.04 - 10:58
Обычный запрос по справочнику даст тебе нужную иерархию... ТЗ-то откуда взялась?
   Гном
2 - 21.03.04 - 11:13
ТЗ формируется после анализа 2-ух запросов по регистру ОстаткиТМЦ(необходимо было выбрать остатки на 2 даты и по определенному признаку выбрать элементы)
   327
3 - 21.03.04 - 11:40
ТЗ.... НоваяКолонка.... Признак Сортировки .... Заполнение его .... Сортировка ...
   Гном
4 - 21.03.04 - 13:36
И так до 8 уровня справочника??
   skunk
 
5 - 21.03.04 - 13:40
а для чего два запроса... по регистру на две даты легко канает задание периода... начало и конец... а там потом сортируй как надо...
   Гном
6 - 21.03.04 - 13:45
Я пока ещё не профессионал, поэтому пришлось сделать как проще, но сортировать то результат пришлось бы и в том и в другом случае..
   327
7 - 21.03.04 - 13:48
Заполнение всей ТЗ.... хоть 10 запросов... хоть 100... это твои проблемы

Затем.... НоваяКолонка....
Затем заполнение новой колонки "Признак Сортировки" ...
Сортировка
Печать .....


И где здесь уровни справочника?....

Можно даже новую колонку не делать.... с признаком...
Если предусмотреть в запросе формирование колонки с признаком сортировки....
   skunk
 
8 - 21.03.04 - 13:51
не думал, что два запроса скрестить было бы проще... :)
подожди не много, я не много с будуна, вчера на денюхе был... ))
к вечеру отойду ченить придумаю...

ты пока напише конкретнее что дано... и что надо получить
   Гном
9 - 21.03.04 - 14:02
Имеется некоторая таблица значений, которая заполнена уже отобранной номенклатурой. Необходимо чтобы  при печати группы располагались примерно так:
Родительская группа(уровень1)->
Родительская группа(уровень2)->
и т.д.->
Номенклатура

Количество уровней у справочника номенклатура - 8
   skunk
 
10 - 21.03.04 - 14:27
либо я гоню... либо чего то не понимаю...

такой запрос не поможет...

"//{{ЗАПРОС(Сформировать)

|Период с ВыбНачПериода по ВыбКонПериода;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоНачОст = НачОст(Количество);
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура;
|"//}}ЗАПРОС
 
 
   Гном
11 - 21.03.04 - 14:45
У меня вот так:
"//{{Запрос(сформировать)

|Период с НачДата по НачДата;
|Скл = Регистр.ОстаткиТмц.Склад;
|Товар = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТмц.Количество;
|Группировка Товар;
|Функция ВсегоКолво = КонОст(Количество);";
Если ПустоеЗначение(Номенклатура) = 0 Тогда
ТекстЗапроса = ТекстЗапроса + "Условие((Товар в Список666) и (Скл = Склад));";     
КонецЕсли;
Если (Фильтр.РазмерСписка() > 0 )  и (ПустоеЗначение(Номенклатура) = 1) Тогда
ТекстЗапроса = ТекстЗапроса + "Условие((Товар в Фильтр) и (Скл = Склад));";      
КонецЕсли;
ТекстЗапроса1 = 
"//{{Запрос(сформировать)

|Период с КонДата по КонДата;
|Скл = Регистр.ОстаткиТмц.Склад;
|Товар = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТмц.Количество;
|Группировка Товар;
|Функция ВсегоКолво = КонОст(Количество);";
Если ПустоеЗначение(Номенклатура) = 0 Тогда
ТекстЗапроса1 = ТекстЗапроса1 + "Условие((Товар в список666) и (Скл = Склад));";     
КонецЕсли;
Если (Фильтр.РазмерСписка() > 0 )  и (ПустоеЗначение(Номенклатура) = 1) Тогда
ТекстЗапроса1 = ТекстЗапроса1 + "Условие((Товар в Фильтр) и (Скл = Склад));";      
КонецЕсли;
   327
12 - 21.03.04 - 14:47
хирен его знает, как ты заполняешь ТЗ... ну и фих с ней

тз.NewColumn( "Срт","Строка" ,
 Metadata.Reference("Номенклатура").DescriptionLength* 
 Metadata.Reference("Номенклатура").LevelsLimit, , "Сор" );      
    for Индекс = 1 to Тз.LinesCnt() do
        тз.GetLineByNumber(Индекс);
        тз.Срт = TrimAll(тз.Номенклатура.FullDescr());    
    endDo;            
    
    тз.Sort("Срт");           
    
    тз отсортирована по алфавиту
    в виде 
    Группа1
        Группа2
            Элемент группы2
            Элемент группы2
            Элемент группы2
            группа3        
                Элемент группы3
                Элемент группы3
                Элемент группы3
            Элемент группы2
            Элемент группы2
            Элемент группы2
            Элемент группы2
    Группа12 
    Группа13
    Группа14
    Группа15


При таком способе все сортировано.... Но в группах подгруппы тоже отсортированы по алфавиту ....
Надо немного изменеть формируемую строку СРТ для сбора подгрупп (с элементами в них) в начале или конце списка группы....
   skunk
 
13 - 21.03.04 - 14:54
Делай все одним запросом только:
ВыбНачПериода = НачДата + 1 день ибо КонОст(НачДата + 1) = НачОст(ВыбНачПериода)
   Гном
14 - 21.03.04 - 15:08
(12) Metadata.Reference("Номенклатура").DescriptionLength* 
Metadata.Reference("Номенклатура").LevelsLimit,
можно эту часть по-русски..
Может я чего то не догоняю, но у меня в ТЗ нет групп, так что по-моему это чуть-чуть не подходит..
Если кому интересно, то я уже сделал до 3-его уровня
справочника (Вывод групп), могу выложить, а дальше слишком заморочено получается...
   skunk
 
15 - 21.03.04 - 15:18
(14)брось в мыло skunk_ <> mail ru    "_" за сканком обязателен
   327
16 - 21.03.04 - 15:46
Metadata.Reference("Номенклатура").DescriptionLength
длина наименования в справочнике Номенклатура

Metadata.Reference("Номенклатура").LevelsLimit
количество уровней в справочнике номенклатура

Дележка по группам... делается непосредственно при печати
   Гном
17 - 21.03.04 - 15:51
Так меня непосредственно это и интересует..ведь вся заморочка как раз в том , чтобы на печати позиции располагались также, как и в справочнике..
   Гном
18 - 21.03.04 - 16:15
(15) нормально отослалось??
   skunk
 
19 - 21.03.04 - 16:47
(18)ты хоть бы маякнул тогда, что выслал... сейчас гляну.. :)
   skunk
 
20 - 21.03.04 - 16:54
+19 да есть... даже два раза :)
   Гном
21 - 21.03.04 - 16:55
Это все Опера....Бяка
   327
22 - 21.03.04 - 17:42
Если основная преставление справочника - Сортировка по наименованию, тогда после (12) так и будет .....
   skunk
 
23 - 21.03.04 - 18:03
(21)смотрел твой отчет... правда у меня он чего ни фига не кажет... попробуем объясниться на пальцах...

как тебе его надо выводить:

вариант 1
что типа 12

вариант 2
группа1
группа2
 группа3
  все элементы группы3

группа1
группа2
 группа4
  все элементы группы4

группа1
группа2
 все жлементый группы2

и т.д.

вариант 3
 свой, желательно описать
   327
24 - 21.03.04 - 18:23
А величину отступа слева при печати группы делать просто.... и даже очень просто

    if тз.Номенклатура.IsGroup() = 1 then
       // печать группы          

        назв = Left ("_____Это якобы пробелы - много пробелов ________________________", 
               тз.Номенклатура.Level()*3)+
               TrimAll(тз.Номенклатура.Description);
              // *3 - т.к. пробелы при печати узкие - увеличиваем размер 

              // горизонт отступа

        таб.PutSection("ГруппаТовара");
       // в таком виде - все группы выводятся одним шрифтом,

       // но с разным отступом

       // ежели хоцца еще и разным оформлением.... то примерно так

        
       //if тз.Номенклатура.Level() =1 then

       //    таб.PutSection("ГруппаТовара1");

       //elsIf тз.Номенклатура.Level() =2 then

       //    таб.PutSection("ГруппаТовара2");

       //тз.Номенклатура.Level() =3 then

       //    таб.PutSection("ГруппаТовара3");    

       //    .......

       //    

       //и так далее     

       //    

       //endIf;  

        
    else
       // печать элемента               
       ...... че там надо ....
        таб.PutSection("СамТоварец");
        
    endIf;
   Гном
25 - 21.03.04 - 19:11
(23) так ты сделай приход того товара, которого небыло на остатках на начальную дату, тогда должен показать..
(12) я не очень понял, ну отсортирую я ТЗ, а группы то как выводить??
   skunk
 
26 - 21.03.04 - 19:20
(25)скажи как группы тебе выводить...
   Гном
27 - 21.03.04 - 19:23
Как в справочнике Номенклатура, у меня ведь с этим основная запарка, если пустая группа, то ее выводить не надо...
   skunk
 
28 - 21.03.04 - 19:43
про пустую группу не проблема... ты просто скажи надо вариант такой то (см 23)... сортировка в справочнике номенклатура (не правленой) по наименованию, коду, артиклу и по моему не включать в прайс
   Гном
29 - 21.03.04 - 19:54
Наверное я тупой........
примерно так
группа11(уровень1)->
Еслиестьэлементы(не группы!с родителем группа1),то они->
Группа2(Родитель - Группа1)
элементы(если есть)
Группа21(Родитель - Группа1)
элементы(если есть)
Так до нужного уровня->
Группа12(уровень1)
Здесь тоже самое, что и в группе11
Сортировка по наименованю.
Вроде нормально объяснил.....
   skunk
 
30 - 21.03.04 - 20:13
(30)ну вроде более менее ясно... хм только не понятно... ну да ладно... посмотрю...
   skunk
 
31 - 22.03.04 - 05:21
(29)глянь почту...



Список тем форума
Рекламное место пустует   Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует