Имя: Пароль:
1C
1C 7.7
v7: Вопрос по ТЗ
0 Aerosol
 
19.11.13
21:22
Здравствуйте, встала такая проблема в 7-ке(да-да, она еще где-то используется):

По результатам некоторых манипуляций с данными, есть таблица значений с колонками: МенеджерПродажи, Номенклатура, МесяцПродажи, СуммаПродажи.
Допустим, отчет был сформирован за 3 месяца, сентябрь, октябрь и ноябрь. Соответственно, значение колонки МесяцПродажи в трех вариантах.

Для корректного вывода данных в печатную форму в том формате, в котором требуется, мне нужно преобразовать ТЗ в такой формат: чтобы все эти тре месяца стали колонками, то есть, таблица состояла бы из колонок: МенеджерПродажи, Номенклатура, Месяц1, Месяц2, Месяц3, СуммаПродажи. И, соответственно, потом свернуть таблицу и выводить.

Вопрос: черт побери, это вообще реально сделать - создать программно определенное количество колонок по месяцам ?

ЗЫ Надеюсь, я доступно изложил мысль.

ЗЗЫ Заранее спасибо !
1 Aerosol
 
19.11.13
21:25
Все бы ничего, если бы можно было создать колонку таким образом: ТЗ.НоваяКолонка(Параметр);. Но нельзя же ..
2 НикДляЗапросов
 
19.11.13
21:29
ну одна колонка месяц, зачем Х колонок?
3 Тьма
 
19.11.13
21:29
(1)Почему нельзя?
4 Aerosol
 
19.11.13
21:30
(3) Ну, я пишу НоваяКолонка(тут переменная какая-то) - ругается
5 Aerosol
 
19.11.13
21:31
(2) Ну, отчет выводится в дебильной форме, где куча присоединений секций итд. Грубо говоря, в одну строчку выводится позиция и развертка, сколько по месяцам было ее продано. А в результате запроса из регистра продаж все это вразнобой. Долго объяснять, надо так :)
6 Aerosol
 
19.11.13
21:31
(3) Например, ТЗ.НоваяКолонка(Запрос.Месяц) - не катит.
7 Тьма
 
19.11.13
21:32
(4)Ну так переменная должна содержать строку, которая может быть именем колонки.
8 Aerosol
 
19.11.13
21:33
(7) А = Строка(Запрос.Месяц);
    ТЗ.НоваяКолонка(А);

Типа такого ?
9 mehfk
 
19.11.13
21:34
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Для й = 1 По 10 Цикл
    ТЗ.НоваяКолонка("Месяц" + й + "");
КонецЦикла;
ТЗ.ВыбратьСтроку();
10 Aerosol
 
19.11.13
21:37
(9) Да это понятно. Как потом обращаться к этим программно созданным колонкам ?:)
11 mehfk
 
19.11.13
21:40
Так, например
ПолучитьЗначение(<?>,);
Синтаксис:
ПолучитьЗначение(<Строка>,<Колонка>)
Назначение:
Получить значение заданной ячейки таблицы значений. Возвращает значение заданной ячейки.
Параметры:
<Строка> - номер строки.
<Колонка> - номер или идентификатор колонки.
12 Тьма
 
19.11.13
21:41
(10)
Например, можно запихнуть даты начал месяцев в список значений. Номер значения в списке значений будет соответствовать номеру колонки Месяц<Номер> И с этим жить дальше.
13 КонецЦикла
 
19.11.13
21:41
Открою секред. Колонки можно вообще не именовать
ТЗ.НоваяКолонка("");
ТЗ.НоваяКолонка("");
ТЗ.ВыбратьСтроку();

От этого они не перестают иметь порядковый номер и ИД
14 Aerosol
 
19.11.13
21:43
(13) Это я знаю, правда, не использовал никогда. И как к такой колонке обращаться ? Допустим, в цикле для получения значения пишем  а = ТЗ.НаименованиеКолонки.

Что в таком случае писать вместо НаименованиеКолонки ?
15 Тьма
 
19.11.13
21:45
(14)См (11)
16 Aerosol
 
19.11.13
21:48
(15) Аааа ... Все, туплю. Всем большое спасибо за разбирательство моей тупости.

Как я не люблю 7.7, вовек бы ее не видел, да вот используется все равно у нас...
17 КонецЦикла
 
19.11.13
21:54
(16) Какая нахрен разница, абы работало

ЗЫ. С такими вопросами не верится что и 8.х любишь :)
18 Aerosol
 
19.11.13
21:55
(17) Еще больше не люблю, да и не особо сталкиваюсь ни с 7.7, ни с 8.Х. Я вообще абапер :) Просто иногда приходится что-нибудь пописывать.
19 Aerosol
 
19.11.13
21:57
(17) К январю 15 года мы полностью должны перейти на сапец. Правда, если я и коллеги будем такой хренью заниматься, то вряд ли ..:)
20 Aerosol
 
19.11.13
21:58
(17) Хотя, и на СКД, и так порой что-то, да и обмены всякие и на 8.2 ваяю ...
21 КонецЦикла
 
19.11.13
22:19
(19) Ох, ептыть
22 Злопчинский
 
19.11.13
23:48
не парься, твою ТЗ
МенеджерПродажи, Номенклатура, МесяцПродажи, СуммаПродажи.
.
всунть в качестве входных данных для универсального отчета по ТЗ и крути группировки и шахматки
.
http://infostart.ru/public/14794/