Имя: Пароль:
1C
 
Как из столбца сделать строку
0 r-d-v2008
 
08.01.11
18:39
Добрый всем день! Помогите пожалуйста из столбца сделать строку
Процедура ДействияФормыСформировать(Кнопка)
   ТабЗнач= новый ТаблицаЗначений;
   ТабЗнач.Колонки.Добавить("Контрагент");
   ТабЗнач.Колонки.Добавить("Кол_во");
   ТабЗнач.Колонки.Добавить("Ставка");
   ТабЗнач.Колонки.Добавить("Сумма");
   ТабЗнач.Колонки.Добавить("Остаток");
   Макет=ПолучитьМакет("Молоко");
   ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапка=Макет.ПолучитьОбласть("Шапка");
   ОбластьСтрока=Макет.ПолучитьОбласть("Строка");
   ОбластьИтог=Макет.ПолучитьОбласть("Итоги");
   ОбластьПодвал=Макет.ПолучитьОбласть("Подвал");
   Запрос = Новый Запрос;
   Запрос.Текст= "ВЫБРАТЬ
                 |    епСубЗначенияПоказателей.Контрагент КАК контрагент,
                 |    епСубЗначенияПоказателей.Количество как кол_во,
                 |    епСубЗначенияПоказателей.Период,
               //  |    епСубОплатыПоДоговорам.Регистратор,
                 |    епСубНачислениеСубсидийХозяйств.Начисления.Ставка как ставка,
                 |    епСубНачислениеСубсидийХозяйств.Начисления.ЗначениеПоказателя ,
                 |    епСубНачислениеСубсидийХозяйств.Начисления.Сумма как сумма
                 |ИЗ
                 |    РегистрСведений.епСубЗначенияПоказателей КАК епСубЗначенияПоказателей,
                 |    Документ.епСубНачислениеСубсидийХозяйств КАК епСубНачислениеСубсидийХозяйств";
             //    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.епСубНачислениеСубсидийХозяйств КАК епСубНачислениеСубсидийХозяйств
             //    |        ПО епСубОплатыПоДоговорам.Регистратор = епСубНачислениеСубсидийХозяйств.Ссылка";
   Результат=Запрос.Выполнить();
   Выборка=Результат.Выбрать();
   ТабДок = новый ТабличныйДокумент;
   ТабДок.ПолеСверху = 5;
   ТабДок.ПолеСнизу  = 5;
   ТабДок.ПолеСлева  = 5;
   ТабДок.ПолеСправа = 5;
   ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   //Область = Макет.ПолучитьОбласть("Строка");
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапка);
   Пока Выборка.Следующий()Цикл
       //СтрокаТаблицы=ТабЗнач.Добавить();
       ОбластьСтрока.Параметры.Контрагент=Выборка.Контрагент;
       ОбластьСтрока.Параметры.Кол_во=Выборка.Кол_во;
       ОбластьСтрока.Параметры.Ставка=Выборка.Ставка;
       ОбластьСтрока.Параметры.Сумма=Выборка.Сумма;

   КонецЦикла;
   //ОбластьСтрока.Параметры.Контрагент=Контрагент;
   
   ТабДок.Вывести(ОбластьСтрока);
   ТабДок.Вывести(ОбластьИтог);
   ТабДок.Вывести(ОбластьПодвал);
   ТабДок.Показать("Молоко");
КонецПроцедуры
Мне нужно из столбца Кол_во сделать строку
1 Rie
 
08.01.11
18:46
(0) Что понимается под "сделать строку"?
2 LamerSql
 
08.01.11
18:48
(0) Неужели нельзя регистры и документы нормально называть?
какую строку? и зачем это нужно?
3 r-d-v2008
 
08.01.11
18:51
Ну т.е. сейчас у меня кол_во идет так
200
230
300
и т.д.
а мне нужно чтобы 200 230 300
4 LamerSql
 
08.01.11
18:53
(3) умник контрагента куда денешь?
5 LamerSql
 
08.01.11
18:53
это же количество для разных контрагентов.
6 r-d-v2008
 
08.01.11
18:55
Вообще у меня кол_во у одного контрагента
7 Rie
 
08.01.11
18:55
(3) "Идёт" - это выводится в отчёт?
Но у тебя же каждое количество выводится возле своего контрагента?
Как ты себе представляешь этот отчёт - контрагенты, суммы и пр. - в столбик, а количества - в строку?
8 r-d-v2008
 
08.01.11
18:56
Тогда как мне сделать?
9 Rie
 
08.01.11
18:56
(6) А суммы и ставки - пусть в столбец выводятся?
И "у одного контрагента" - это как? (Судя по запросу, контрагентов там может быть выше крыши; а если он один - что он делает в выборке запроса?)
10 LamerSql
 
08.01.11
18:57
(6) ты пишешь хе-ню сейчас, у тебя будет столько контрагентов в выборке сколько их есть в регистре.
11 Rie
 
08.01.11
18:58
(8) Сделать - что?
Что ты хочешь получить? Хоть бы от руки нарисовал и выложил на radikal.ru
12 LamerSql
 
08.01.11
18:59
ничего не выкладывай мой совет:

1. Позвать специалиста
2. Заплатить специалисту
13 LamerSql
 
08.01.11
19:00
(12) 1) так как нет понимания того какой запрос пишешт.
2) Нет понимания того, что тебе нужно.
14 Defender aka LINN
 
08.01.11
19:13
(0) Открой для себя СКД
15 r-d-v2008
 
08.01.11
19:18
Вот выложил WWW.Kiass.ru/soft/Отчет.rar
16 r-d-v2008
 
08.01.11
19:23
Ну помогите пожалуйста!
17 Rie
 
08.01.11
19:31
(16) С радостью бы помогли!
Но так и осталось непонятным - что такое "сделать строку".
Количества - они по каждому контрагенту свои. И расположены в _столбец_ (в выложенном образце отчёта).
18 r-d-v2008
 
08.01.11
19:36
В регистре значения идут в столбец. А в отчете идут в строку обратите внимание на цифры и все поймете
19 Rie
 
08.01.11
19:40
(18) Обратил внимание. И ничего не понял - где там строка, если там - столбец. "ноябрь" и "с н/г" - это _разные_ (по идее) количества, получаемые _разными_ (по идее) способами.
20 r-d-v2008
 
08.01.11
19:44
вы смотрите поголовье и надой за 2009 год
21 r-d-v2008
 
08.01.11
19:44
цифры в строку проставляются
22 r-d-v2008
 
08.01.11
19:45
или мне нужно переделать документ и тогда ничего выдумывать не надо
23 Rie
 
08.01.11
19:46
(20), (21) Смотрю. И что? В разных ячейках - совсем разные цифры. И их, заметим, ровно 2 (каждая - на свою дату). Так и получи эти ровно 2 цифры (каждая - под своим именем), помести в макет два параметра (один - для начала года, другой - для ещё какой-то даты). И не мучь себя, пытаясь открыть зонтик правой рукой в левом ухе.
24 r-d-v2008
 
08.01.11
19:47
но если переделывать документ тогда отразить поголовье за все 12 месяцев при том что число месяца может менятся
25 r-d-v2008
 
08.01.11
19:49
как я получу если в регистре идет все в один столбец
26 Rie
 
08.01.11
19:54
(25) А Период?
27 r-d-v2008
 
08.01.11
19:54
что период?
28 Rie
 
08.01.11
20:03
(26) Сгруппируй по периоду. Или отфильтруй по периоду и объедини.
29 Rie
 
08.01.11
20:03
(28)->(27)
30 Rie
 
08.01.11
20:04
+(28) И тебе ведь вовсе не обязательно на каждую запись выборки из результата запроса выводить строку в макет.
А группировки в запросах позволят сотворить чудо.
31 r-d-v2008
 
08.01.11
20:05
пример можно я не совсем понял как это
32 Rie
 
08.01.11
20:09
(31) Сделай два запроса. Один на начало года, другой - на нужную дату (при помощи условия ГДЕ Период=&ВыбДата).
Отсортируй записи в них при помощи УПОРЯДОЧИТЬ ПО.
Ну а дальше - беги циклом по обоим сразу и выводи свой макет.
33 r-d-v2008
 
08.01.11
20:13
если было всего две даты это сейчас две даты а в конце года их будет 12
34 Rie
 
08.01.11
20:17
(33) Прочитай о методе Присоединить табличного документа.
Не оно?
35 Lama12
 
08.01.11
20:23
Транспонировать предлагали?
36 r-d-v2008
 
08.01.11
20:25
что значит транспонировать?
37 Lama12
 
08.01.11
20:26
38 Rie
 
08.01.11
20:27
(35) Не надо там ничего транспонировать. Надо данные в запросе получить в нужном порядке.
39 Rie
 
08.01.11
20:27
(36) Может, действительно имеет смысл позвать специалиста?
40 r-d-v2008
 
08.01.11
20:27
хорошо пример можете дать как это сделать
41 r-d-v2008
 
08.01.11
20:29
А на какой х.. тогда я?
42 Rie
 
08.01.11
20:34
Как верно было замечено в (14) - стоит посмотреть в сторону СКД. IMHO, она тут вполне уместна.
43 los_hooliganos
 
08.01.11
20:42
(0) Контрольные слова в голову: Транспорирование, PIVOT, кросс-таблица, СКД.
44 r-d-v2008
 
08.01.11
20:46
Все вопрос снят проблему решил
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший