Имя: Пароль:
1C
1C 7.7
v7: Не работает УстановитьИнтервал() в модуле формы журнала документов
,
0 CepeLLlka
 
23.11.18
15:39
Уважаемые гуру, подскажите пожалуйста, почему вот это не работает в модуле формы журнала документов..

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон)
    Если ДатаНач <= Константа.ДатаЗапретаРедактирования Тогда
        Предупреждение("Вам не разрешён просмотр документов с датой меньше "+Константа.ДатаЗапретаРедактирования, 4);
        УстановитьИнтервал(Константа.ДатаОграниченияПросмотра, ДатаКон, 1)
    КонецЕсли;
КонецПроцедуры

А вот это работает..
Процедура КнопкаУстИнт()
    УстановитьИнтервал(Константа.ДатаОграниченияПросмотра,, 1);    
КонецПроцедуры
1 HawkEye
 
23.11.18
15:52
(0) если прямо вот надо установить начало интервала Константа.ДатаОграниченияПросмотра, то делай через фиктивное закрытие, если надо просто не дать установить закрытый период... статусВозврата(0); возврат; вместо УстановитьИнтервал(Константа.ДатаОграниченияПросмотра, ДатаКон, 1)
2 CepeLLlka
 
23.11.18
15:58
(1)Да.. это уже костыли какие-то.. :(

Есть метод.. штатно не работает нифига :( Пичаль
3 CepeLLlka
 
23.11.18
16:00
(1)Большое спасибо за подсказки..
Сейчас попробую с закрытием и открытием формы.. Если будет сильного моргать, то буду выводить сообщение о запрете, пусть заново выбирают..

Спасибо!
4 Ёпрст
 
23.11.18
16:06
ДатаКон чему хоть равна то ?
5 trad
 
23.11.18
16:06
СтатусВозврата(0) - правильный ответ
6 CepeLLlka
 
23.11.18
16:08
(4)ДатаКон которую выбрал пользователь при установке интервала интерактивно..
7 Ёпрст
 
23.11.18
16:11
Да, тут только ложное закрытие формы спасёт
8 CepeLLlka
 
23.11.18
16:12
(7)Есть примеры реализации? А то чёт у меня не вышло вот так сразу с разбега.. :)
9 Ёпрст
 
23.11.18
16:12
(5) ну не совсем, если нужно точную границу указать..
10 Ёпрст
 
23.11.18
16:14
(8)
Перем НужнаяДата;

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон)
    
    НужнаяДата = ТекущаяДата();
    Форма.Закрыть(0);
    
    
КонецПроцедуры
//======================================================================
Процедура ПриЗакрытии()
    Если ПустоеЗначение(НужнаяДата) =0 Тогда
        СтатусВозврата(0);
        УстановитьИнтервал(,НужнаяДата,1);
        НужнаяДата="";
    КонецЕсли;
КонецПроцедуры // ПриЗакрытии
11 Ёпрст
 
23.11.18
16:14
своё условие еще воткнешь и привет
12 CepeLLlka
 
23.11.18
16:44
(11)Ну ты жёсткий.. Всё чётко получилось.. Я только ещё в НужнойДате конец периода передавал..

Спасибо тебе большое..

А я думал по другому.. думал нужно одну форму закрыть, а другую открыть с новым отбором.. начал там уже велосипеды мутить :) Спасибо! :)
13 Масянька
 
23.11.18
16:50
(12) Он не жесткий... Он шибко умный :)))
14 CepeLLlka
 
23.11.18
17:12
(13)Да я это и имел ввиду.. что типа вообще всё знает, профи :)
15 HawkEye
 
23.11.18
18:47
(12) оно потому и называется ложное, что форма не закрывается...