|
Проблема с колонками | ☑ | ||
---|---|---|---|---|
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
|
Ура получилось) всем спасибо) у меня просто строки и шапка было без ограничений справа. как только поставил все зароботало) Ещё раз всем огромное спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |