Имя: Пароль:
1C
1C 7.7
v7: Не сворачивает итоги в таблице значений
0 9451523
 
25.07.16
11:28
Привет Всем
Никак не могу свернуть ТаблицуЗначений

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


КонецПроцедуры

Выдает ошибку
тз.Сотр = Док.Сотрудник;
Поле агрегатного объекта не обнаружено (Сотр)

отпускаю метод свернуть ниже цикла ошибку не дает но и не сворачивает
как быть?
1 Злопчинский
 
25.07.16
11:29
2 Builder
 
25.07.16
11:31
После тз.Свернуть("ТабНом","ЕСП");
в таблице останется 2 колонки. Догадайся какие.
3 Злопчинский
 
25.07.16
11:31
"отпускаю метод свернуть ниже цикла ошибку не дает но и не сворачивает" - табном все разные - как он свернет...

и неплохо бы не соплями кидаться, а типизировать колонки
4 Это_mike
 
25.07.16
11:31
Ошибка там же, где обычно...
5 Злопчинский
 
25.07.16
11:32
(4) неужели в 77? надо переходить на 8-ку! там, говорят, все само делается!
6 Это_mike
 
25.07.16
11:33
(3) ну, протипизирует он их, ичо?
"не поможет©"
7 Это_mike
 
25.07.16
11:33
(5) не, хуже.
в ДНК.
8 9451523
 
25.07.16
11:34
Builder в смысле типизировать колонки?
9 9451523
 
25.07.16
11:35
так где ошибка?
10 Злопчинский
 
25.07.16
11:36
(9) ты ветку прочитал?
11 DDwe
 
25.07.16
11:36
(8) "Догадайся какие"!
12 DDwe
 
25.07.16
11:36
(10) Не читатель он.
13 Builder
 
25.07.16
11:36
(9)
тз.Свернуть("ТабНом","ЕСП");
тз.ВыбратьСтроку();
Далее смотреть на свою таблицу и искать там столбец "Сотр".
Когда прояснится, переделать код.
14 9451523
 
25.07.16
11:36
инет тупит досих пор ссылку не открыл
15 Builder
 
25.07.16
11:37
(14) Забудь про ссылку, не поможет.
16 Chameleon1980
 
25.07.16
11:37
а какой тайный смысл воообще в тз.Свернуть("ТабНом","ЕСП");?
17 Рэйв
 
25.07.16
11:38
(0)Если в свертываемой колонке затаилось не "число" то оно и не свернется никогда
18 Злопчинский
 
25.07.16
11:39
(16) .., не задавай таких сложных вопросов! не видишь - у человека спайка между полушариями разрушена, ты ему вопрос задашь - он все остальное забудет!
19 9451523
 
25.07.16
11:39
Chameleon1980 там по месяцам вываливает список работников повторяющиеся значения
20 Builder
 
25.07.16
11:41
(16) Видимо посчитать "ЕСП" по "ТабНом" :)
Но ТС запросами пользоваться не умеет и код писать похоже тоже.
Вангую что планировалось примерно так:

      КонецЦикла;
            Таб.ВывестиСекцию("ЕСП");  
            тз.Свернуть("ТабНом","ЕСП");      
      КонецЦикла;
21 9451523
 
25.07.16
11:41
хорошо прикалыватся инет у нас тормозит
22 Builder
 
25.07.16
11:43
(21) А без инета код не написать?
23 Builder
 
25.07.16
11:49
Ну как то так наверно, лениво все переделывать, но работать должно :)

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

        Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
     пп = 0;
    Док = СоздатьОбъект("Документ.НачислениеЗП");
    Док.УстановитьФильтр(1,0);
    Док.ВыбратьДокументы(НачДата,КонДата);
    Таб.ВывестиСекцию("Шапка");  
    Пока Док.ПолучитьДокумент()=1  цикл

       тз = СоздатьОбъект("ТаблицаЗначений");
       тз.НоваяКолонка("ТабНом");
       тз.НоваяКолонка("Сотр");
       тз.НоваяКолонка("Инн");
       тз.НоваяКолонка("Месяц");
       тз.НоваяКолонка("ЕСП","Число",15,2);

        ТекДок = Док.ТекущийДокумент();
        Док.ВыбратьСтроки();
        
         Пока Док.ПолучитьСтроку()=1 цикл
             тз.НоваяСтрока();
             тз.ТабНом = Док.ТабНомер;
             тз.Сотр = Док.Сотрудник;
             тз.Инн = Док.Сотрудник.ИНН;
             тз.Месяц = Формат(Док.ДатаДок,"Д ММММ");
             тз.ЕСП = Док.ПФизЗП;
          
             пп = пп+1;
            
         КонецЦикла;

         тз.Свернуть("ТабНом","ЕСП");      
         Таб.ВывестиСекцию("ЕСП");  
    
КонецЦикла;
    
Таб.ТолькоПросмотр(1);
    
    Таб.Показать("ЕСП", "");    


КонецПроцедуры
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн