|
как двигаться по ячейкам области шапка в макете? | ☑ | ||
---|---|---|---|---|
0
avz07
19.06.13
✎
18:00
|
вот мой код:
Аналітик=Справочники.СписокТА.НайтиПоКоду("977"); ТабДок=Новый ТабличныйДокумент; Макет = ЭтотОбъект.ПолучитьМакет("Макет"); ОблШапка=Макет.ПолучитьОбласть("Шапка|Клиенты"); ОблШапка.Параметры.ТА=Аналітик; ТабДок.Очистить(); ТабДок.Вывести(ОблШапка); Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ |КлиентыТАСрезПоследних.ДеньНедели КАК ДеньНедели |ИЗ |РегистрСведений.КлиентыТА.СрезПоследних(&наДату, ТА.Ссылка = &Аналітик) КАК КлиентыТАСрезПоследних |ГДЕ |КлиентыТАСрезПоследних.Активный | |СГРУППИРОВАТЬ ПО |КлиентыТАСрезПоследних.ДеньНедели | |УПОРЯДОЧИТЬ ПО |КлиентыТАСрезПоследних.ДеньНедели.Порядок"; Запрос.УстановитьПараметр("Аналітик", Аналітик); Запрос.УстановитьПараметр("наДату", ТекущаяДата()); Массив=Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ДеньНедели"); Для Каждого ЭлементМассива ИЗ Массив Цикл ОблШапка=Макет.ПолучитьОбласть("Шапка|Дни"); ОблШапка.Параметры.ДеньНедели=ЭлементМассива; ТабДок.Присоединить(ОблШапка); КонецЦикла; |
|||
1
avz07
19.06.13
✎
18:14
|
мне нужно двигаться ячейками из полученными названиями дней Области ("Шапка | Дни")и тогда сравнивать их со значениями выборки, в которой есть перечень дней.так я хочу сделать сортировку, т.е. установить соответствие заголовков таблицы с содержанием ячеек. Продолжение кода: Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ |КлиентыТАСрезПоследних.Клиенты.Наименование КАК КлиентыНаименование, |КлиентыТАСрезПоследних.ДеньНедели КАК ДеньНедели |ИЗ |РегистрСведений.КлиентыТА.СрезПоследних(&наДату, ТА.Ссылка = &Аналітик) КАК КлиентыТАСрезПоследних |ГДЕ |КлиентыТАСрезПоследних.Активный | |СГРУППИРОВАТЬ ПО |КлиентыТАСрезПоследних.Клиенты, |КлиентыТАСрезПоследних.ДеньНедели, |КлиентыТАСрезПоследних.Клиенты.Наименование | |УПОРЯДОЧИТЬ ПО |КлиентыТАСрезПоследних.ДеньНедели.Порядок |ИТОГИ ПО |КлиентыНаименование"; Запрос.УстановитьПараметр("Аналітик", Аналітик); Запрос.УстановитьПараметр("наДату", ТекущаяДата()); Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий()Цикл ОблДетали=Макет.ПолучитьОбласть("Детали|Клиенты"); ОблДетали.Параметры.Наименование=Выборка.КлиентыНаименование; ТабДок.Вывести(ОблДетали); Выб=Выборка.Выбрать(); Пока Выб.Следующий()Цикл ОблДетали=Макет.ПолучитьОбласть("Детали|Дни"); ОблДетали.Параметры.ДеньНедели=Выб.ДеньНедели; ТабДок.Присоединить(ОблДетали); КонецЦикла; КонецЦикла; ТабДок.Показать(); Помогите пожалуйста |
|||
2
Ювелир
19.06.13
✎
18:21
|
(1)(0)"мне нужно двигаться ячейками из полученными названиями дней" мая твая панимай, но у тебя же массива однако есть? Зачим двигаться ячейками, кады мона двигать массивами? )))
|
|||
3
avz07
19.06.13
✎
18:36
|
я пишу из Украины, поэтому простите меня за мой русский (могу на украинском писать без ошибок, но поймет меня народ на форуме, не знаю?)
|
|||
4
avz07
19.06.13
✎
18:40
|
массивами я сделал и пахало, но от меня мой шеф захотел чтобы я сделал иначе. обращаюсь сюда потому, что самому не выходит.мало опыта ((
|
|||
5
Ювелир
19.06.13
✎
18:46
|
(3) извиняю, (4) нафига это шефу? Ежли работает - чего же боле?
|
|||
6
avz07
19.06.13
✎
18:51
|
хз ..
я сейчас заканчиваю стажировку, предпоследний день. все было хорошо, а сегодня дал такое задание (говорит для проверки умений и улучшение опыта) и мне не получается сделать ... |
|||
7
avz07
19.06.13
✎
18:58
|
Для Каждого ЭлементМассива ИЗ Массив Цикл
Выб=Выборка.Выбрать(); Пока Выб.Следующий()Цикл ОблДетали=Макет.ПолучитьОбласть("Детали|Дни"); Если Выб.ДеньНедели=ЭлементМассива Тогда ОблДетали.Параметры.ДеньНедели=Выб.ДеньНедели; Прервать; иначе ОблДетали.Параметры.ДеньНедели="-------"; КонецЕсли; КонецЦикла; ТабДок.Присоединить(ОблДетали); КонецЦикла; КонецЦикла; вот так было сделано. я так понимаю, эту часть надо перешаманиты. но как?? |
|||
8
avz07
19.06.13
✎
19:01
|
Помогите, мне ну очень надо ..!
|
|||
9
Ювелир
19.06.13
✎
19:06
|
(8) Берешь запоминаешь ячейки в которые осуществил вывод в массив потом читаешь из этих ячеек, криво конечно. Или область поименовать. Вот описание, обрати внимание на возвращаемое значение - Тип: ОбластьЯчеекТабличногоДокумента.
Область, в которую был осуществлен вывод. Присоединить (Join) Синтаксис: Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>) Параметры: <Таблица> (обязательный) Тип: ТабличныйДокумент; ПолеТабличногоДокумента. Выводимая таблица. <Уровень> (необязательный) Тип: Число. Уровень используется для автоматической группировки колонок табличного документа. Соседние колонки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются. <ИмяГруппы> (необязательный) Тип: Строка. Название группы, к которой относятся выводимые колонки. <Открыта> (необязательный) Тип: Булево. Истина - выведенная группа будет открыта, Ложь - группа будет выведена в свернутом виде. Возвращаемое значение: Тип: ОбластьЯчеекТабличногоДокумента. Область, в которую был осуществлен вывод. |
|||
10
avz07
19.06.13
✎
19:16
|
Как считать все ячейки (их будет 7, соответственно как дней в неделе), чтобы их потом записать в массив. Каким методом?
|
|||
11
Ювелир
19.06.13
✎
19:33
|
Ты используешь метод присоединить когда выводишь дни недели он и возвращает требуемое.
|
|||
12
kosts
19.06.13
✎
19:50
|
(0) Такие таблицы, в которых заранее неизвестно количество колонок называются кросс-таблица, смотри материал по этой теме. Выводится с помощью единственного запроса. Если разобраться, то совсем просто.
Вот пример http://1cexpo.ru/obuchenie-1s-predpriyatie/23-prakticheskoe-ispolzovanie-zaprosov-v-1s-8/50-kross-otchyoty.html |
|||
13
avz07
19.06.13
✎
19:58
|
Большое спасибо!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |