|
Как передать период в СКД? | ☑ | ||
---|---|---|---|---|
0
letovd
19.07.19
✎
14:22
|
Как передать период в предопределенную процедуру отчета "ПриКомпоновкеРезультата"?
Вернее даже не период, а ДатуНачала и ДатуОкончания. |
|||
1
ДенисЧ
19.07.19
✎
14:24
|
Через реквизиты отчёта, например...
Откуда ты собрался из передавать? |
|||
2
letovd
19.07.19
✎
14:26
|
(1) Из формы отчета, в модуль объекта
|
|||
3
Джинн
19.07.19
✎
14:29
|
Реквизит отчета Период с типом СтандартныйПериод. В параметрах что-то типа &Период.ДатаНачала или НачалоПериода(&Период.ДатаНачала, "Месяц") в зависимости от потребности.
|
|||
4
letovd
19.07.19
✎
14:33
|
В общем в модуле объекта есть процедура, которая рассчитывает и заполняет ТЗ из РегистраСведений.
В эту процедуру нужно передать ДатуНачала и ДатуОкончания |
|||
5
letovd
19.07.19
✎
14:40
|
(3) А можно ли как-то передать ДатаНачала и ДатаОкончания из параметров в модуль объекта?
http://ipic.su/img/img7/fs/vvv.1563536398.jpg |
|||
6
VS-1976
19.07.19
✎
14:46
|
(5) Если компоновщик доступен ( настройки ), поищи там, по идее должны параметры быть там инициализированы...
|
|||
7
letovd
19.07.19
✎
14:54
|
(6) Они здесь Настройки.ПараметрыДанных.ДоступныеПараметры.Элементы
|
|||
8
azernot
19.07.19
✎
14:54
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
НачалоПериода = Неопределено; КонецПериода = Неопределено; ПараметрыДанныхПользовательские = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; ПараметрыВПользовательскихНастройках = Ложь; Для Каждого Элемент Из ПараметрыДанныхПользовательские Цикл Если ТипЗнч(Элемент) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда Продолжить; КонецЕсли; Если Элемент.Параметр = Новый ПараметрКомпоновкиДанных("Период") Тогда НачалоПериода = Элемент.Значение.ДатаНачала; КонецПериода = Элемент.Значение.ДатаОкончания; ПараметрыВПользовательскихНастройках = Истина; КонецЕсли; КонецЦикла; Если НЕ ПараметрыВПользовательскихНастройках Тогда Для Каждого Элемент Из КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы Цикл Если ТипЗнч(Элемент) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда Продолжить; КонецЕсли; Если Элемент.Параметр = Новый ПараметрКомпоновкиДанных("Период") Тогда НачалоПериода = Элемент.Значение.ДатаНачала; КонецПериода = Элемент.Значение.ДатаОкончания; КонецЕсли; КонецЦикла; КонецЕсли; Если НачалоПериода = Неопределено И КонецПериода = Неопределено Тогда Возврат; КонецЕсли; |
|||
9
letovd
19.07.19
✎
15:20
|
(6) (8)
Можно по индексу Период = Настройки.ПараметрыДанных.Элементы.Получить(0).Значение; Но в этот момент значения ДатаНачала и ДатаОкончания неопределены |
|||
10
letovd
19.07.19
✎
15:24
|
Как из СтандартногоПериода достать датуначала и датуокончания строкой?
|
|||
11
Джинн
19.07.19
✎
15:26
|
(5) А на кой ляд она Вам там понадобились? Какое-то извращение делаете?
|
|||
12
letovd
19.07.19
✎
15:26
|
Короче так.
Период = Настройки.ПараметрыДанных.Элементы.Получить(0).Значение; ДатаНачала = Период.ДатаНачала; ДатаОкончания = Период.ДатаОкончания; |
|||
13
letovd
19.07.19
✎
15:29
|
(11) Ага, вместо того чтобы дату через реквизит передавать, передаю через параметр СКД...
|
|||
14
Джинн
19.07.19
✎
15:29
|
(12) Опасно вслепую брать. Поправите параметры или их порядок и отчет навернется.
|
|||
15
letovd
19.07.19
✎
15:31
|
(14) Да, действительно. Просто интересно стало...
|
|||
16
letovd
19.07.19
✎
15:34
|
(3) В параметрах чего?
|
|||
17
Джинн
19.07.19
✎
15:36
|
(16) СКД
|
|||
18
PR
19.07.19
✎
15:37
|
(1) Через реквизиты не получится
|
|||
19
PR
19.07.19
✎
15:38
|
(0) Передавай через параметры компоновщика
|
|||
20
letovd
19.07.19
✎
15:39
|
(18) С чего вы взяли?
Работает все, только их не нужно передавать в процедуру, просто вызвать реквизит в процедуре |
|||
21
PR
19.07.19
✎
15:39
|
Если что-то не лезет в параметры компоновщика, передавай через временное хранилище
|
|||
22
yavasya
19.07.19
✎
15:41
|
(0) тебе нужно в форму отчета перенести параметры СКД, а грязноизвращаться
|
|||
23
letovd
19.07.19
✎
15:42
|
(22) Да у меня скд берет данные из ТЗ. Для формирования ТЗ нужна дата
|
|||
24
letovd
19.07.19
✎
15:42
|
Уже все, спасибо
|
|||
25
PR
19.07.19
✎
15:43
|
(18), (20) Хм, пардон, реквизит получилось передать
Я просто помню так заполнял ТЗ для выборки из нее в запросе и в итоге передавалась пустая ТЗ |
|||
26
letovd
19.07.19
✎
15:49
|
(25) Да я сам тупанул...
|
|||
27
PR
19.07.19
✎
16:06
|
А, вспомнил
Не получится обойтись без созданной формы А с созданной формой да, работает Я пробовал сделать так В модуле отчета сразу же при инициализации заполняется ТЗ (реквизит отчета), которую потом нужно использовать Так вот она в процедуре ПриКомпоновкеРезультата всегда пустая? то есть хочется один раз заполнить и все, а она заполняется каждый раз при формировании отчета |
|||
28
PR
19.07.19
✎
16:09
|
+(27) Реквизиты в этом случае тоже пустые
|
|||
29
PR
19.07.19
✎
16:22
|
Странно, кстати, что с созданной формой работает сохранение реквизитов, даже если я их заполнил программно, не располагая на форме
Получается, что если я что-то заполнил в модуле формы, то это не обнулится при вызове ПриКомпоновкеРезультата, а если в модуле объекта, то обнулится |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |