Проблема С Группировкой (метод Свернуть)

Тема в разделе "1C и всё что с ней связано", создана пользователем nestovby, 16 мар 2012.

  1. nestovby

    nestovby Гость

    Делал отчет для универа у себя, на своей базе - все группирует и сворачивает как нужно. Но когда принес в универ, там запустил, и все элементы не сгруппировались, т.е. вывелись просто по порядку.
    Может быть я что-то не правильно описал в методе "свернуть"? Но ведь у меня на компе все сворачивает, все хорошо! Никак не пойму в чем дело.
    может быть подскажите в чем тут я мог ошибиться?
    Код ( (Unknown Language)):
    Процедура Сформировать()
    перем пд,фонд, Ст1гоРазряда, итогоСтавка, ИтогоФонд;
    Таб=СоздатьОбъект("ТаблицаЗначений");
    СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
    ПрикДл=СоздатьОбъект("Справочник.ПриказыДлительногоДействия");
    КадрДанные=СоздатьОбъект("Справочник.КадровыеДанные");
    ДопУчСт= СоздатьОбъект("Справочник.ДоплатыЗаУченуюСтепень");
    ДопУчЗв= СоздатьОбъект("Справочник.ДоплатыЗаУченыеЗвания");
    Таб.НоваяКолонка("Степень","Перечисление.УченаяСтепень");
    Таб.НоваяКолонка("Ставка","Число",4,2);
    Таб.НоваяКолонка("ЧислоСтавокНеППС","Число",4,2);
    Таб.НоваяКолонка("ЧислоСтДляППС","Число",4,2);
    Таб.НоваяКолонка("ЧислоСтавокДляППС","Число",4,2);
    Таб.НоваяКолонка("Звание","Перечисление.УченоеЗвание");                                               
    Таб.НоваяКолонка("Совместитель","Справочник.ВнутренниеСовместители");
    СпрСотр.ИспользоватьДату(ДатаОт);
    СпрСотр.ПорядокНаименований();
    СпрСотр.ВыбратьЭлементы();
    Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
    ПрикДл.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
    ПрикДл.ВыбратьЭлементы();
    Пока ПрикДл.ПолучитьЭлемент()=1 Цикл
    КадрДанные.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
    КадрДанные.ВыбратьЭлементы();
    пока кадрДанные.ПолучитьЭлемент()=1 цикл
    Таб.НоваяСтрока();
    Таб.Степень=КадрДанные.УченаяСтепень.ученаястепень;
    Таб.Звание=КадрДанные.УченоеЗвание;
    Таб.Ставка=?(ПустоеЗначение(ПрикДл.Приказ.ВнСовместитель)=1,СпрСотр.Ставка,ПрикДл.Приказ.ВнСовместитель.Ставка.Получить(ДатаОт));
    Таб.Совместитель=ПрикДл.Приказ.ВнСовместитель;

    ДопУчЗв.выбратьэлементы();
    пока ДопУчЗв.получитьЭлемент()=1 цикл
    если ДопучЗв.УченоеЗвание=Таб.Звание тогда
    Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);
    КонецЕсли;
    конецЦикла;
    ДопУчСт.выбратьэлементы();               
    пока допучст.получитьэлемент()=1 цикл
    если ДопУчСт.УченаяСтепень=таб.Степень тогда
    Таб.ЧислоСтДляППС=ДопУчСт.ЧислоСтавокДляППС.Получить(ДатаОт);
    конецЕсли;
    конецЦикла;
    конеццикла;
    КонецЦикла;
    КонецЦикла;                                  
    // !!!!!!!!!!!!!!!
    Таб.Свернуть("Звание,Степень,Совместитель,ЧислоСтДляППС,ЧислоСтавокДляППС","Ставка");
    ///!!!!!!!!!!
    ТабД=СоздатьОбъект("Таблица");
    ТабД.ВывестиСекцию("Заголовок");
    ТабД.ПовторятьПриПечатиСтроки(3,3);
    ТабД.ВывестиСекцию("Шапка");
    Таб.Сортировать("Ставка");
    Таб.Свернуть("Звание,Степень,Совместитель,Ст1гоРазряда, фонд,ЧислоСтДляППС,ЧислоСтавокДляППС","Ставка");
    Таб.ВыбратьСтроки();
    Пока Таб.ПолучитьСтроку()=1 Цикл          
    Ст1гоРазряда=Таб.ЧислоСтавокДляППС+Таб.ЧислоСтДляППС;
    фонд=Ст1гоРазряда*таб.ставка*Константа.МТ.Получить(ДатаОт);
    ТабД.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВыбратьСтроки();
    Пока Таб.ПолучитьСтроку()=1 Цикл          
    ИтогоФонд=ИтогоФонд+(Таб.ЧислоСтавокДляППС+Таб.ЧислоСтДляППС)*таб.ставка*Константа.МТ.Получить(ДатаОт);
    итогоСтавка=итогоСтавка+таб.ставка;
    КонецЦикла;                  
    ТабД.ВывестиСекцию("Итого");
    КС=ТабД.КоличествоСтраниц();
    ТабД.Показать("Фонд доплат");
    КонецПроцедуры
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Не знаю, какая у вас задача, но интуитивно то, что имеет тип "число" должно быть во втором параметре.
     
  3. Paume

    Paume Well-Known Member

    Регистрация:
    15 дек 2010
    Сообщения:
    110
    Симпатии:
    0
    Фигню ты какую-то написал.
    Сначала у тебя:

    Таб.Свернуть("Звание,Степень,Совместитель,ЧислоСтДляППС,ЧислоСтавокДляППС","Ставка");

    потом откуда-то появились еще колонки и сворачиваешь уже по ним:

    Таб.Свернуть("Звание,Степень,Совместитель,Ст1гоРазряда, фонд,ЧислоСтДляППС,ЧислоСтавокДляППС","Ставка");

    ВыводСекции у тебя отрабатывает же в цикле по второй свертке, а не по первой.
     
  4. Hryv

    Hryv Гость

    поддерживаю, что это Свернуть лишнее
     
Загрузка...
Похожие Темы - Проблема Группировкой (метод
  1. c0de3r
    Ответов:
    5
    Просмотров:
    127
  2. DobermannTT
    Ответов:
    10
    Просмотров:
    136
  3. SoulPaladin
    Ответов:
    4
    Просмотров:
    133
  4. Artael
    Ответов:
    1
    Просмотров:
    110
  5. ENSLER
    Ответов:
    0
    Просмотров:
    103

Поделиться этой страницей