Имя: Пароль:
1C
 
Обход готового табличного документа
0 ProTeZ
 
18.09.07
12:22
Граждане, подскажите. Есть готовый табличный документ после построителя отчета.

Нужно пройти по уровням табличного документа и изменить цифры в итогах по группам, как это сделать? Интересуют методы работы с табличным документом и его областями в синтаксис помощнике ни чего не могу найти :(
1 luns
 
18.09.07
12:28
Никак... только если знаковое поле выводить со служебной инфой потом прятать. А вообще это изврат. Если такое понадобилось, то это значит неверно что-то ДО вывода отчета.
2 Wladimir_spb
 
18.09.07
12:34
Возможно, но довольно неудобно. Имхо, лучше запрос подправить.

ТабличныйДокумент (SpreadsheetDocument)
Область (Area)
Вариант синтаксиса: По имени
Синтаксис:
Область(<Имя области>)
Параметры:
<Имя области> (обязательный)
Тип: Строка. Имя области или адрес в формате "R1C1:R2C2", где число после "R" обозначает номер строки, число после "C" - номер колонки, символом ":" (двоеточие) разделяются координаты левого верхнего и правого нижнего угла области. В качестве имени также можно передавать пересечение двух областей, записываемое как "<Имя области 1> | <Имя области 2>".
Описание:
Получает область табличного документа как область ячеек табличного документа, либо как рисунок с указанным именем. Область может состоять из нескольких расположенных подряд строк или колонок, либо быть прямоугольной областью таблицы. Используется для получения области табличного документа по имени.
3 IronDemon
 
18.09.07
12:36
Макет = ДокументРезультат;
ТекущаяОбласть = Неопределено;

Пока Истина Цикл
   ТекущаяОбласть = Макет.НайтиТекст("Заказ", ТекущаяОбласть, Макет.Область(), Истина, Истина, Истина, Ложь);
   Если ТекущаяОбласть <> Неопределено Тогда
       
       Поз = Найти(ТекущаяОбласть.Имя,"C");
       НачСтрока=Число(Сред(ТекущаяОбласть.Имя,2,СтрДлина(ТекущаяОбласть.Имя)-Поз-1))+1;
       НачКолонка=Прав(ТекущаяОбласть.Имя,СтрДлина(ТекущаяОбласть.Имя)-Поз+1);
       Имя= "R"+Строка(Макет.ВысотаТаблицы-1)+Прав(ТекущаяОбласть.Имя,СтрДлина(ТекущаяОбласть.Имя)-Поз+1);
       ИмяОбласти="R"+НачСтрока+НачКолонка+":"+Имя;
       Макет.Область(ИмяОбласти).Защита=Ложь;
       Макет.Область(ИмяОбласти).ЦветФона = ЦветаСтиля.ЦветФонаКнопки;
       Макет.Область(ИмяОбласти).СодержитЗначение = Истина;
       Макет.Область(ИмяОбласти).ТипЗначения = ПолучитьОписаниеТиповЧисла(10,2);
       
   Иначе
       
       Прервать;
   
   КонецЕсли;
КонецЦикла;
4 luns
 
18.09.07
12:38
Дай угадаю - надо типой поправить который через "УниверсальныйОтчет" сделан?
5 ProTeZ
 
18.09.07
13:00
(4) неа. задачка следующая
Есть некий план оплат по периодам.
Есть оплаты. В отчет должно выводиться следующее.

запланировано:
янв 10 000
февр 10 000
март 10 000
август 30 000

оплачено
август 40 000

В отчет
Янв 0
Февр 0
март 0
август 20 000
6 ProTeZ
 
18.09.07
13:01
может подскажете что можно с запросом натворить, чтобы всё ок стало
7 ave-kuban
 
18.09.07
13:15
Используй период - месяц
8 ProTeZ
 
18.09.07
13:18
Если соединять два запроса один с планом, другой с оплатоми, даже по периоду месяц. То не получу данные нужного вида :(

Будет что-то типа

Январь 10 000
февраль 10 000
март 10 000
Август  -10 00.

А надо чтобы как выше написано. Уже весь моск сломал :((
9 ProTeZ
 
18.09.07
13:18
Даже русский язык забыл )
10 IronDemon
 
18.09.07
13:31
(5) А почему в августе 20 000
11 IronDemon
 
18.09.07
13:36
(10) Понял 60 000 - 40 000.
Соедини по периоду запланировано <= период оплаты
12 ProTeZ
 
18.09.07
13:46
Непомогает :(
13 ProTeZ
 
18.09.07
14:16
Вот кусок текста запроса, который план и оплату отнимает. оборот.приход - это план, оборот.расход - оплаты

ВЫБРАТЬ
   СУММА(Обороты.СуммаПриход) КАК СуммаПриход,
   Обороты.Период КАК Период,
   Обороты.Проект КАК Проект,
   Обороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
   Обороты.Организация КАК Организация,
   Обороты.Контрагент КАК Контрагент,
   Обороты.СтатьяЗатратПоПроекту КАК СтатьяЗатратПоПроекту,
   СУММА(Обороты.СуммаРасход) КАК СуммаРасход,
   СУММА(ВЫБОР
           КОГДА Обороты.СуммаПриход - Обороты.СуммаРасход < 0
               ТОГДА 0
           ИНАЧЕ Обороты.СуммаПриход - Обороты.СуммаРасход
       КОНЕЦ) КАК НУЖНАЯСУММА
ИЗ
   (ВЫБРАТЬ
       ОбязательстваПоДоговорамОбороты.Период КАК Период,
       ОбязательстваПоДоговорамОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
       ОбязательстваПоДоговорамОбороты.Контрагент КАК Контрагент,
       ОбязательстваПоДоговорамОбороты.Организация КАК Организация,
       ОбязательстваПоДоговорамОбороты.Проект КАК Проект,
       ОбязательстваПоДоговорамОбороты.СтатьяЗатратПоПроекту КАК СтатьяЗатратПоПроекту,
       СУММА(ОбязательстваПоДоговорамОбороты.СуммаПриход) КАК СуммаПриход,
       ОбязательстваПоДоговорамОбороты1.СуммаРасход КАК СуммаРасход
   ИЗ
       РегистрНакопления.ОбязательстваПоДоговорам.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ОбязательстваПоДоговорамОбороты
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОбязательстваПоДоговорам.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ОбязательстваПоДоговорамОбороты1
           ПО ОбязательстваПоДоговорамОбороты.Проект = ОбязательстваПоДоговорамОбороты1.Проект
               И ОбязательстваПоДоговорамОбороты.СтатьяЗатратПоПроекту = ОбязательстваПоДоговорамОбороты1.СтатьяЗатратПоПроекту
               И ОбязательстваПоДоговорамОбороты.ДоговорКонтрагента = ОбязательстваПоДоговорамОбороты1.ДоговорКонтрагента
               И ОбязательстваПоДоговорамОбороты.Контрагент = ОбязательстваПоДоговорамОбороты1.Контрагент
               И ОбязательстваПоДоговорамОбороты.Период <= ОбязательстваПоДоговорамОбороты1.Период
   
   СГРУППИРОВАТЬ ПО
       ОбязательстваПоДоговорамОбороты.Организация,
       ОбязательстваПоДоговорамОбороты.Контрагент,
       ОбязательстваПоДоговорамОбороты.ДоговорКонтрагента,
       ОбязательстваПоДоговорамОбороты.Период,
       ОбязательстваПоДоговорамОбороты.СтатьяЗатратПоПроекту,
       ОбязательстваПоДоговорамОбороты.Проект,
       ОбязательстваПоДоговорамОбороты1.СуммаРасход) КАК Обороты

СГРУППИРОВАТЬ ПО
   Обороты.Проект,
   Обороты.ДоговорКонтрагента,
   Обороты.СтатьяЗатратПоПроекту,
   Обороты.Контрагент,
   Обороты.Период,
   Обороты.Организация

УПОРЯДОЧИТЬ ПО
   Период
ИТОГИ
   СУММА(СуммаПриход),
   СУММА(СуммаРасход),
   СУММА(НУЖНАЯСУММА)
ПО
   ОБЩИЕ,
   Период,
   ДоговорКонтрагента,
   Контрагент,
   Организация,
   Проект,
   СтатьяЗатратПоПроекту
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший