|   |   | 
| 
 | Как передать период в СКД? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Странно, кстати, что с созданной формой работает сохранение реквизитов, даже если я их заполнил программно, не располагая на форме
 Получается, что если я что-то заполнил в модуле формы, то это не обнулится при вызове ПриКомпоновкеРезультата, а если в модуле объекта, то обнулится | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |