| 
    
        
     
     | 
    
  | 
Проблема с колонками | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Новичёк123123    
     06.08.11 
            ✎
    14:27 
 | 
         
        Доброго времени суток) такая беда нужно вывести от чет по амортизации в котором должны быть колонки по месяцам, количество этих колонок выбирается из количества месяцев в указанном периоде 
  
        макет выглядит так http://saveimg.ru/show-image.php?id=45d2267efb71b98fff3c6863e90f60f9 сам код Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ДатаКон", ДатаКон); Результат=Запрос.Выполнить(); Результат=Результат.Выбрать(); ТабДок=Новый ТабличныйДокумент; Макет=ПолучитьМакет("Макет"); ОбластьШапки=Макет.ПолучитьОбласть("Шапка"); ОбластьМесяца=Макет.ПолучитьОбласть("Месяц"); ОбластьСтроки=Макет.ПолучитьОбласть("Строка"); ОбластьШапки.Параметры.Организация=Организация; ТабДок.Вывести(ОбластьШапки); Пока Результат.Следующий()=1 Цикл Если Результат.Организация=Организация или ЗначениеЗаполнено(Организация)=Ложь Тогда ОбластьСтроки.Параметры.ОсновноеСредство=Результат.ОсновноеСредство.Наименование; ОбластьСтроки.Параметры.ОрганизацияСтрока=Результат.Организация; ОбластьСтроки.Параметры.ИнвНом=Результат.ИнвНом; ОбластьСтроки.Параметры.СчетУчета=Результат.СчетУчета; ОбластьСтроки.Параметры .СпособНачисления=Результат.СпособНачисленияАмортизации; ОбластьСтроки.Параметры.ПервоначальнаяСтоимость=Результат.ПервоначальнаяСтоимость; ОбластьСтроки.Параметры.ЛиквидационнаяСтоимость=Результат.ЛиквидационнаяСтоимость; ОбластьСтроки.Параметры.СрокПолезногоИспользования=Результат.СрокПолезногоИспользования; ОбластьСтроки.Параметры.ИспользованиеДляВычисленияАмортизации=Результат.ИспользованиеДляВычисленияАмортизации; ОбластьСтроки.Параметры.ОстаточнаяСтоимость=Результат.ПервоначальнаяСтоимость-Результат.ЛиквидационнаяСтоимость; ТабДок.Вывести(ОбластьСтроки); Пока ДатаНач<ДатаКон=1 Цикл ОбластьМесяца=Макет.ПолучитьОбласть("Месяц"); ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); ОбластьМесяца.Параметры.АмортизацияЗаМесяц=Результат.ПервоначальнаяСтоимость/Результат.СрокПолезногоИспользования; ТабДок.Вывести(ОбластьМесяца); //ОбластьКолонкиМесяца=Макет.ПолучитьОбласть("Месяц"); //ОбластьКолонкиМесяца.Параметры.Месяц=Месяц(ДатаНач); //ТабДок.Присоеденить(ТабДок,1,ОбластьСтроки,1); ДатаНач=ДобавитьМесяц(ДатаНач,1); КонецЦикла; КонецЕсли; КонецЦикла; ТабДок.Показать("Отчет по амортизации"); а на выходе получаю http://saveimg.ru/show-image.php?id=c42690ccfd50234fa5c99dcff8178bdc вот в этом собственно и беда? Быть может попробовать выделять не всю колонку а просто область привязывать к строке?  | 
|||
| 
    1
    
        DSSS    
     06.08.11 
            ✎
    15:01 
 | 
         
        //ТабДок.Присоеденить зря закомментировал. Организуй цикл и в нем присоединить.     
         | 
|||
| 
    2
    
        Новичёк123123    
     08.08.11 
            ✎
    09:45 
 | 
         
        Спасибо) вопрос а если присоединить оно будет для каждой строчки писать амотртизацию за месяц?     
         | 
|||
| 
    3
    
        vicof    
     08.08.11 
            ✎
    09:48 
 | 
         
        (1) ПрисоедЕнить не заработает     
         | 
|||
| 
    4
    
        Новичёк123123    
     08.08.11 
            ✎
    09:52 
 | 
         
        ТабДок.Присоеденить(ТабДок,1,ОбластьСтроки,1);
  
        а что тут не правильно? выдаёт такую ошибку: {Форма.ФормаОтчета(67)}: Метод объекта не обнаружен (Присоеденить) ТабДок.Присоеденить(ТабДок,1,ОбластьСтроки,1);  | 
|||
| 
    5
    
        hhhh    
     08.08.11 
            ✎
    09:54 
 | 
         
        (4) приколол     
         | 
|||
| 
    6
    
        Wobland    
     08.08.11 
            ✎
    09:54 
 | 
         
        (4) феерично!     
         | 
|||
| 
    7
    
        Wobland    
     08.08.11 
            ✎
    09:55 
 | 
         
        РТФМ: http://www.therules.ru/     
         | 
|||
| 
    8
    
        Новичёк123123    
     08.08.11 
            ✎
    09:56 
 | 
         
        ааа всё увидел) Да действительно лох((     
         | 
|||
| 
    9
    
        Новичёк123123    
     08.08.11 
            ✎
    10:54 
 | 
         
        Понимаю что уже наглость, но не могли бы ещё раз подскать
  
        ставлю при выводе шапки ОбластьШапки=Макет.ПолучитьОбласть("Шапка"); ОбластьМесяца=Макет.ПолучитьОбласть("Месяц"); ОбластьСтроки=Макет.ПолучитьОбласть("Строка"); ОбластьШапки.Параметры.Организация=Организация; ТабДок.Вывести(ОбластьШапки); //Заполним шапку один раз что бы как дебилы не заполнять её каждый раз Пока ДатаНач<ДатаКон=1 Цикл ОбластьМесяца=Макет.ПолучитьОбласть("Шапка|Месяц"); ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); ТабДок.Присоединить(ТабДок,1,"Строка",Ложь); ДатаНач=ДобавитьМесяц(ДатаНач,1); КонецЦикла; виснет и пишет недостаточно памяти  | 
|||
| 
    10
    
        Новичёк123123    
     08.08.11 
            ✎
    10:55 
 | 
         
        забыл коментарий удалить извините(     
         | 
|||
| 
    11
    
        hhhh    
     08.08.11 
            ✎
    10:58 
 | 
         
        (9)
  
        Пока ДатаНач<ДатаКон=1 Цикл это что за иероглифы? Почему ДатаКон = 1?  | 
|||
| 
    12
    
        salvator    
     08.08.11 
            ✎
    11:00 
 | 
         
        (9) Для Сч=0 По КоличествоМесяцев Цикл
  
        ... А количество месяцев, надеюсь, знаешь как получить...  | 
|||
| 
    13
    
        Новичёк123123    
     08.08.11 
            ✎
    11:01 
 | 
         
        Ага понял спасибо) ща попробую)     
         | 
|||
| 
    14
    
        salvator    
     08.08.11 
            ✎
    11:02 
 | 
         
        Еще вот тут
  
        ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); у тебя один и тот же месяц будет. Нужно в цикле прибавлять к ДатаНач по 1-му месяцу  | 
|||
| 
    15
    
        Новичёк123123    
     08.08.11 
            ✎
    11:42 
 | 
         
        КоличествоМесяцев=Месяц(ДатаКон)-Месяц(ДатаНач);
  
        Для Сч=0 По КоличествоМесяцев Цикл ОбластьМесяца=Макет.ПолучитьОбласть("Месяц"); ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); ТабДок.Присоединить(ТабДок,1,"Строка",Ложь); ДатаНач=ДобавитьМесяц(ДатаНач,1); КонецЦикла; всё равно пишет недостаточно памяти(  | 
|||
| 
    16
    
        Wobland    
     08.08.11 
            ✎
    11:44 
 | 
         
        Месяц(ДатаКон)-Месяц(ДатаНач) что даст, если ДатаКон январь, а ДатаНач декабрь?     
         | 
|||
| 
    17
    
        Новичёк123123    
     08.08.11 
            ✎
    11:46 
 | 
         
        так оно выдаёт ошибку даже если Месяц(ДатаКон)-Месяц(ДатаНач)=2     
         | 
|||
| 
    18
    
        Wobland    
     08.08.11 
            ✎
    11:54 
 | 
         
        (17) это я не к тому, что в этом ошибка, а к тому, что делай правильно. КоличествоМесяцев=?(Месяц(ДатаКон)-Месяц(ДатаНач)<0, Месяц(ДатаКон)-Месяц(ДатаНач)+12, Месяц(ДатаКон)-Месяц(ДатаНач)); или как-то так     
         | 
|||
| 
    19
    
        Новичёк123123    
     08.08.11 
            ✎
    11:55 
 | 
         
        а понял) 
  
        делаю вот так работает КоличествоМесяцев=Месяц(ДатаКон)-Месяц(ДатаНач); Для Сч=0 По КоличествоМесяцев Цикл ОбластьМесяца=Макет.ПолучитьОбласть("Месяц"); ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); ТабДок.Вывести(ОбластьМесяца); //ТабДок.Присоединить(ТабДок,1,"Строка",Ложь); ДатаНач=ДобавитьМесяц(ДатаНач,1); КонецЦикла; я что то не то написал в присоеденить?  | 
|||
| 
    20
    
        Wobland    
     08.08.11 
            ✎
    11:55 
 | 
         
        (17) кстати, если Месяц(ДатаКон)-Месяц(ДатаНач)=2, то цикл отработает три раза. так и надо, да?     
         | 
|||
| 
    21
    
        Новичёк123123    
     08.08.11 
            ✎
    11:55 
 | 
         
        присоединить*     
         | 
|||
| 
    22
    
        salvator    
     08.08.11 
            ✎
    11:55 
 | 
         
        (17) Сделай правильный расчет месяца, убери из цикла получение области     
         | 
|||
| 
    23
    
        Новичёк123123    
     08.08.11 
            ✎
    12:13 
 | 
         
        Если Месяц(ДатаКон)-Месяц(ДатаНач)<0 Тогда
  
        КоличествоМесяцев=Месяц(ДатаКон)-Месяц(ДатаНач)+12 Иначе КоличествоМесяцев=Месяц(ДатаКон)-Месяц(ДатаНач); КонецЕсли; Для Сч=0 По КоличествоМесяцев Цикл ОбластьМесяца.Параметры.Месяц=Месяц(ДатаНач); //ТабДок.Вывести(ОбластьМесяца); ТабДок.Присоединить(ТабДок,1,"Шапка",Ложь); ДатаНач=ДобавитьМесяц(ДатаНач,1); КонецЦикла; я не правильно написал присоединить?  | 
|||
| 
    24
    
        Wobland    
     08.08.11 
            ✎
    12:17 
 | 
         
        а имя группы тебе зачем?     
         | 
|||
| 
    25
    
        hhhh    
     08.08.11 
            ✎
    12:21 
 | 
         
        (23) у тебя Сч всегда = 0. Бесконечный цикл. В советское время за это сразу к стенке ставили.     
         | 
|||
| 
    26
    
        Новичёк123123    
     08.08.11 
            ✎
    12:22 
 | 
         
        капец я криворукий я писал  ТабДок.Присоединить(ТабДок,1,"Шапка",Ложь);
  
        а надо было ТабДок.Присоединить(Область месяца); Не не бесконечный там все нормально, я просто к таб док присоеденял сам таб док. вот он и переполнялся. так что меня пока не растреляют)  | 
|||
| 
    27
    
        Новичёк123123    
     08.08.11 
            ✎
    12:23 
 | 
         
        Только терь новый вопрос он отступает одну колонку а потом выводит месяцы. Почему?)     
         | 
|||
| 
    28
    
        salvator    
     08.08.11 
            ✎
    12:32 
 | 
         
        (25) В этой конструкции Сч автоматически на единицу увеличивается.
  
        (27) ОбластьМесяц = ТабДок.ПолучитьОбласть("ИмяСекцииШапки|ИмяСекцииМесяц"); Для Сч=0 По КоличествоМесяцев Цикл ОбластьМесяца.Параметры.Месяц=НазваниеМесяца; ТабДок.Присоединить(ОбластьМесяц); КонецЦикла;  | 
|||
| 
    29
    
        Новичёк123123    
     08.08.11 
            ✎
    13:17 
 | 
         
        Ура получилось) всем спасибо) у меня просто строки и шапка было без ограничений справа. как только поставил все зароботало) Ещё раз всем огромное спасибо)     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |