|
Заполнение таблицы циклом. | ☑ | ||
---|---|---|---|---|
0
progaoff
23.07.15
✎
11:19
|
Ребята помогите проблему решить, ниже приведенный код, заполняет область детальных записей. Но отображает дату одним числом, допустим если это 06.07 а в таблице 6
Макет = ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("КонПериода", КонПериода); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("Организация", Организация); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1; ТабДок.Очистить(); ОбластьЗаголовок.Параметры.Организация=Организация; ОбластьЗаголовок.Параметры.Период=ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),"ФП = Истина"); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); Запрос.Текст = "ВЫБРАТЬ | ФактическиеГрафикиСпециалистов.Период КАК День, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФактическиеГрафикиСпециалистов.Специалист) КАК КвоСпециалистов, | ПлановыеГрафикиСпециалистов.Количество КАК КоличествоМастеровВСмену, | ПлановыеГрафикиСпециалистов.Количество КАК КоличествоМастеровМаникюра |ИЗ | РегистрСведений.ФактическиеГрафикиСпециалистов КАК ФактическиеГрафикиСпециалистов | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеГрафикиСпециалистов КАК ПлановыеГрафикиСпециалистов | ПО ФактическиеГрафикиСпециалистов.Организация = ПлановыеГрафикиСпециалистов.Организация | И ФактическиеГрафикиСпециалистов.Должность = ПлановыеГрафикиСпециалистов.Должность |ГДЕ | ФактическиеГрафикиСпециалистов.Период <= &КонПериода | И ФактическиеГрафикиСпециалистов.Период >= &НачПериода | И ФактическиеГрафикиСпециалистов.Организация = &Организация | И ФактическиеГрафикиСпециалистов.Должность = &Должность | И ПлановыеГрафикиСпециалистов.Период <= &КонПериода | И ПлановыеГрафикиСпециалистов.Период >= &НачПериода | |СГРУППИРОВАТЬ ПО | ФактическиеГрафикиСпециалистов.Период, | ПлановыеГрафикиСпециалистов.Количество, | ПлановыеГрафикиСпециалистов.Количество | |УПОРЯДОЧИТЬ ПО | День"; Для j=1 По 2 Цикл ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); Если j=1 Тогда Должность=Справочники.Должности.Парикмахер; Запрос.УстановитьПараметр("Должность", Должность); Иначе Должность=Справочники.Должности.МастерМаникюра; Запрос.УстановитьПараметр("Должность", Должность); КонецЕсли; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); ОбластьДетальныхЗаписей.Параметры.План="План"+Должность; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ном=ДеньНедели(ВыборкаДетальныеЗаписи.День); Если j=1 Тогда ОбластьДетальныхЗаписей.Параметры["День"+Ном]=ВыборкаДетальныеЗаписи.КоличествоМастеровВСмену; Иначе ОбластьДетальныхЗаписей.Параметры["День"+Ном]=ВыборкаДетальныеЗаписи.КоличествоМастеровМаникюра; КонецЕсли; КонецЦикла; ТабДок.Вывести(ОбластьДетальныхЗаписей); ВыборкаДетальныеЗаписи.Сбросить(); ВерхОбъединения=ТабДок.ВысотаТаблицы; Область=ТабДок.Область("R"+ВерхОбъединения+"C2:R"+ВерхОбъединения+"C23"); Область.Шрифт=Новый Шрифт(, , Истина, , , ); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ОбластьДетальныхЗаписей.Параметры.План="Факт по датам июль"+Должность +Символы.ПС+" (дата/количество мастеров)"; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Ном=ДеньНедели(ВыборкаДетальныеЗаписи.День); ОбластьДетальныхЗаписей.Параметры["День"+Ном] = День(ВыборкаДетальныеЗаписи.День); ОбластьДетальныхЗаписей.Параметры["Кол"+Ном] = ВыборкаДетальныеЗаписи.КвоСпециалистов; Область=ОбластьДетальныхЗаписей.Область("R1C"+(Ном+3)+":R1C"+(Ном+3)); Если j=1 Тогда Если ВыборкаДетальныеЗаписи.КвоСпециалистов<>ВыборкаДетальныеЗаписи.КоличествоМастеровВСмену Тогда Область.ЦветТекста=WebЦвета.Красный; Иначе Область.ЦветТекста=WebЦвета.Черный; КонецЕсли; Иначе Если ВыборкаДетальныеЗаписи.КвоСпециалистов<>ВыборкаДетальныеЗаписи.КоличествоМастеровМаникюра Тогда Область.ЦветТекста=WebЦвета.Красный; Иначе Область.ЦветТекста=WebЦвета.Черный; КонецЕсли; КонецЕсли; Если Ном=7 Тогда ТабДок.Вывести(ОбластьДетальныхЗаписей); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ОбластьДетальныхЗаписей.Параметры.План="Факт по датам"+Должность; КонецЕсли; КонецЦикла; ТабДок.Вывести(ОбластьДетальныхЗаписей); НизОбъединения=ТабДок.ВысотаТаблицы; Область=ТабДок.Область("R"+(ВерхОбъединения+1)+"C2:R"+НизОбъединения+"C2"); Область.Объединить(); ТабДок.ЗакончитьАвтогруппировкуСтрок(); КонецЦикла; ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); |
|||
1
palpetrovich
23.07.15
✎
11:22
|
ты пальцем хоть-бы ткнул где твоя дата в печФорсу передается... ну честнослово лень в простыне этой рыться
|
|||
2
salvator
23.07.15
✎
11:25
|
Наверно поэтому, не?
ОбластьДетальныхЗаписей.Параметры["День"+Ном] = День(ВыборкаДетальныеЗаписи.День); |
|||
3
Галахад
гуру
23.07.15
✎
11:25
|
Там русским по белому написано, выводить день вместо даты.
|
|||
4
progaoff
23.07.15
✎
11:51
|
Подскажите как переделать???
|
|||
5
Mankubus
23.07.15
✎
11:52
|
ОбластьДетальныхЗаписей.Параметры["День"+Ном] = ВыборкаДетальныеЗаписи.День;
|
|||
6
progaoff
23.07.15
✎
12:05
|
{Форма.ФормаОтчета.Форма(84)}: Поле объекта не обнаружено (День8)
ОбластьДетальныхЗаписей.Параметры["День"+Ном]=ВыборкаДетальныеЗаписи.КоличествоМастеровВСмену; Вот такую фигню выдает |
|||
7
progaoff
23.07.15
✎
12:25
|
{Форма.ФормаОтчета.Форма(99)}: Поле объекта не обнаружено (Дата02.07.2015 0:00:00)
ОбластьДетальныхЗаписей.Параметры["Дата"+Ном]= ОбластьДетальныхЗаписей; Вот такую |
|||
8
Лефмихалыч
23.07.15
✎
12:28
|
Не твое это. Бросай
|
|||
9
progaoff
23.07.15
✎
12:30
|
Вумный да?
|
|||
10
progaoff
23.07.15
✎
12:31
|
Вот это совет! Спасибо! Я же не знал что мне делать! Вот он просветитель мой!
|
|||
11
salvator
23.07.15
✎
12:32
|
(10) Спокуха. Тебе в (5) дали ответ. Измени одну строчку.
|
|||
12
progaoff
23.07.15
✎
12:35
|
Поменял, вылезла ошибка, {Форма.ФормаОтчета.Форма(99)}: Поле объекта не обнаружено (Дата02.07.2015 0:00:00)
ОбластьДетальныхЗаписей.Параметры["Дата"+Ном]= ОбластьДетальныхЗаписей; |
|||
13
hhhh
23.07.15
✎
12:37
|
ОбластьДетальныхЗаписей.Параметры["Дата"+Ном]= ОбластьДетальныхЗаписей;
переходи на более легкие наркотики |
|||
14
salvator
23.07.15
✎
12:38
|
(12) Еще раз посмотри как написано в (5). Найди 10 отличий.
|
|||
15
salvator
23.07.15
✎
12:38
|
И определение переменной "Ном" не трогай.
Одну строчку поменяй. Одну, Карл! |
|||
16
progaoff
23.07.15
✎
12:43
|
Так я и не трогал, поменял одну строчку..
|
|||
17
Alexperumov
23.07.15
✎
12:45
|
(16) ОбластьДетальныхЗаписей.ДЕНЬ - ты точно ДЕНЬ написал?
|
|||
18
Alexperumov
23.07.15
✎
12:46
|
(17) Т.Е. ВыборкаДетальныеЗаписи.День ))
|
|||
19
progaoff
23.07.15
✎
12:47
|
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Ном=День(ВыборкаДетальныеЗаписи.День); ОбластьДетальныхЗаписей.Параметры["День"+Ном] = ВыборкаДетальныеЗаписи.День; ОбластьДетальныхЗаписей.Параметры["Кол"+Ном] = ВыборкаДетальныеЗаписи.КвоСпециалистов; Область=ОбластьДетальныхЗаписей.Область("R1C"+(Ном+3)+":R1C"+(Ном+3)); Если j=1 Тогда Если ВыборкаДетальныеЗаписи.КвоСпециалистов<>ВыборкаДетальныеЗаписи.КоличествоМастеровВСмену Тогда Область.ЦветТекста=WebЦвета.Красный; Иначе Область.ЦветТекста=WebЦвета.Черный; КонецЕсли; |
|||
20
progaoff
23.07.15
✎
12:47
|
Да
|
|||
21
salvator
23.07.15
✎
12:48
|
(16) Не звизди.
У тебя Ном=ДеньНедели(ВыборкаДетальныеЗаписи.День); Возвращается число, а никак не дата. |
|||
22
progaoff
23.07.15
✎
12:49
|
Ном=ДеньНедели(ВыборкаДетальныеЗаписи.День);
На вот это Ном=День(ВыборкаДетальныеЗаписи.День); Я поменял только что |
|||
23
salvator
23.07.15
✎
12:49
|
(22) Молодец.
|
|||
24
hhhh
23.07.15
✎
12:56
|
(22) ну тогда чему удивляешься? Программа правильно пишет. В неделе 7 дней. А ты ей суёшь День8. Она офигевает.
|
|||
25
progaoff
23.07.15
✎
13:02
|
Блин ступил и правда....спасибо большое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |