![]() |
![]() |
|
СКД. НачалоПериода по-умолчанию | ☑ | ||
---|---|---|---|---|
0
Slon747
06.05.16
✎
10:39
|
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Характеристика, ТоварыНаСкладахОстатки.ВНаличииОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки({&НачалоПериода}) КАК ТоварыНаСкладахОстатки На закладке Параметры добавил НачалоПериода. В Настройках в Параметры указал "Включать в пользовательские настройки". Теперь в Предприятии если в быстрых отборах не заполнить параметр, формирует на сегодня. Как сделать, чтобы формировал на '00010101'? |
|||
1
Nuobu
06.05.16
✎
11:16
|
А если заполнить 00010101, то какую дату он подставляет?
|
|||
2
Slon747
06.05.16
✎
11:20
|
(1) Мне нужно, чтобы если в быстрых отборах не выставить дата начала, он подставлял какую-то древнюю дату. Хоть 01.01.2001
|
|||
3
PCcomCat
06.05.16
✎
11:25
|
Программно отслеживать и ставить.
|
|||
4
PCcomCat
06.05.16
✎
11:26
|
(2) Традиционный вопрос: а нафига?
|
|||
5
Slon747
06.05.16
✎
11:38
|
(4) Данные пример - упрощенный.
В реальности &НачалоПериода и &КонецПериода используются в других запросах этой СКД. Типа: {ГДЕ (ПоступлениеТоваровУслугТовары.Ссылка.Дата >= &НачалоПериода), (ПоступлениеТоваровУслугТовары.Ссылка.Дата <= &КонецПериода) } А в этом запросе мне нужно получать остатки на начало и конец заданного пользователем периода. |
|||
6
Nuobu
06.05.16
✎
11:40
|
Проблема в том, что если ты подставишь именно дату 00010101 00:00:00, то
РегистрНакопления.ТоварыНаСкладах.Остатки({&НачалоПериода}) воспримет это как остатки на сегодня, поэтому подставляй в НачалоПериода дату 00010101 00:00:01, например. |
|||
7
Slon747
06.05.16
✎
11:49
|
(6) А как подставить дату в ТоварыНаСкладах, если в быстром отборе не будет выбрана начальная дата?
|
|||
8
Nuobu
06.05.16
✎
11:52
|
Если ВВыбраномОтбореНеВыставленаНачальнаяДата Тогда
КомпоновщикНастроек.Настройки.Параметры.НайтиПоЗначению("НачалоПериода").Значение = Дата('00010101000001'); КонецЕсли; |
|||
9
Slon747
06.05.16
✎
11:54
|
(8) Это в форме отчета?
|
|||
10
Nuobu
06.05.16
✎
11:55
|
(9) Нет, в отчете.
|
|||
11
Slon747
06.05.16
✎
12:02
|
(10) В модуле отчета?
А в какой процедуре? |
|||
12
Slon747
06.05.16
✎
12:06
|
Вроде как в ПриКомпоновкеРезультата()
|
|||
13
Slon747
06.05.16
✎
12:15
|
Вот так сделал:
//------------------------------- Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Настройки = КомпоновщикНастроек.ПолучитьНастройки(); Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных; ПараметрНачалоПериода = Параметры.Элементы.Найти("НачалоПериода"); Если Не ЗначениеЗаполнено(ПараметрНачалоПериода.Значение) Тогда ПараметрНачалоПериода.Значение = Дата('20010101'); КонецЕсли; КонецПроцедуры //------------------------------- Отладчиков вижу, что значение у параметра меняется, но остатки возвращает всё равно на текущую дату. В чем дело? |
|||
14
Slon747
06.05.16
✎
12:29
|
Принудительно выставляю НачалоПериода (без проверки на заполненность):
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) ПараметрыДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы; МойПараметр = ПараметрыДанных.Найти("НачалоПериода"); МойПараметр.Значение = Дата('20010101'); МойПараметр.Использование = Истина; КонецПроцедуры В запросе: ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки({&НачалоПериода} Выводит остаток на сегодня. Что не так? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |