Имя: Пароль:
1C
1C 7.7
v7: Получить интервал журнала документов
,
0 vadim777
 
11.01.17
09:59
Обработка, в ней Дата1 и Дата2.
Нужно программно в эти даты получить НачалоИнтервала() и КонецИнтервала() соответственно.
Пока сделал след. образом:
ОткрытьФорму("Журнал.ПриходныеНакладные",тКонт);
Дата1 = тКонт.НачалоИнтервала();
Дата2 = тКонт.КонецИнтервала();
..........
Но при этом журнал остается открытым. Как его закрыть программно?
1 Cool_Profi
 
11.01.17
10:00
тКонт.Закрыть() ?
2 1dvd
 
11.01.17
10:01
смысл получить параметры несуществующей формы?
3 Это_mike
 
11.01.17
10:01
тКонт.Закрыть()?

а вообще, нафига?
4 vadim777
 
11.01.17
10:10
(1) Не работает.
(3) Чтобы даты Дата1 и Дата2 обработки были равные текущему интервалу журналов, заданному в Сервис->Параметры->Журналы
5 linoblack
 
11.01.17
10:16
НачалоСтандартногоИнтервала()
КонецСтандартногоИнтервала()
6 linoblack
 
11.01.17
10:17
Устанавливает вариант задания стандартного интервала отображения журнала документов. Возвращает //текущий// установленный вариант.
7 Это_mike
 
11.01.17
10:18
(4) НачалоСтандартногоИнтервала(<?>)
Синтаксис:
НачалоСтандартногоИнтервала(<Вариант>)
Назначение:
Устанавливает вариант задания стандартного начала интервала отображения журнала документов. Возвращает текущий установленный вариант.
Параметры:
<Вариант> - необязательный параметр. Выражение со значением типа строка или дата. Возможные строковые значения параметра: ''День'', ''Месяц'', ''Квартал'', ''Год'', ''Day'', ''Month'', ''Quarter'', ''Year''. Значением типа дата задается конкретная дата начала интервала журнала документов. Если параметр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается текущий вариант.
8 Это_mike
 
11.01.17
10:18
(5) опередил....
9 Это_mike
 
11.01.17
10:18
(4) закрфть можно через тКонт.Форма.Закрыть()
10 linoblack
 
11.01.17
10:20
(8) ну хоть разочек ))))))
11 Это_mike
 
11.01.17
10:21
(4) кстати, значения из   Сервис->Параметры->Журналы вернут НачалоСтандартногоИнтервала() и КонецСтандартногоИнтервала(), а запрос из журнала вернет тот период, который уставнливается в журнале при открытии. который можт быть и не равен стандартному...
12 Это_mike
 
11.01.17
10:21
(10) злорадствуешь, да?
"акелла промахнулся, акелла промахнулся..."©
13 vadim777
 
11.01.17
10:25
(5,7) Работает, только наполовину - если в системе интервал задан не точной датой, и типа НачалоГода и/или КонецГода, то соответственно и получим текст типа День, Месяц, Квартал, Год.
14 Это_mike
 
11.01.17
10:34
(13) "вон из профессии"©
15 Масянька
 
11.01.17
10:39
(14) Чет ты сегодня добрый...
16 Это_mike
 
11.01.17
10:41
(15) заболел...
17 vadim777
 
11.01.17
10:41
(14) Майк, у меня Дата1 и Дата2 - типа Дата. Когда стандартный интервал не задан точной датой, в них - пусто. Потому как возвращается строка. Сейчас изменяю код. Жду "давай, возвращайся в профессию" ;)
18 Это_mike
 
11.01.17
10:42
(17) нет, возвращаться в профессию тебе нельзя... Ибо ты не понимаешь написанного в СП (процитированного в (7) в частности).
19 Масянька
 
11.01.17
10:46
(18) Я же говорю - добрый :)
20 Это_mike
 
11.01.17
10:48
(19) не расстраивайся, это пройдет... таблетки пью...
21 linoblack
 
11.01.17
11:01
(12) та не - за себя радуюсь, не совсем значит тормоз )))
22 Это_mike
 
11.01.17
11:09
(21) "я не тормоз, я - медленный газ"©
23 vadim777
 
11.01.17
11:10
И вот что получилось:
        лДата1 = НачалоСтандартногоИнтервала();
        лДата2 = КонецСтандартногоИнтервала();
        Если ТипЗначения(лДата1) = 2 Тогда
            Если лДата1 = "День" Тогда
                лДата1 = РабочаяДата();
            ИначеЕсли лДата1 = "Месяц" Тогда
                лДата1 = НачМесяца(РабочаяДата());
            ИначеЕсли лДата1 = "Квартал" Тогда
                лДата1 = НачКвартала(РабочаяДата());
            ИначеЕсли лДата1 = "Год" Тогда
                лДата1 = НачГода(РабочаяДата());
            Иначе
                лДата1 = РабочаяДата();
            КонецЕсли;
        КонецЕсли;
        Если ТипЗначения(лДата2) = 2 Тогда
            Если лДата2 = "День" Тогда
                лДата2 = РабочаяДата();
            ИначеЕсли лДата2 = "Месяц" Тогда
                лДата2 = КонМесяца(РабочаяДата());
            ИначеЕсли лДата2 = "Квартал" Тогда
                лДата2 = КонКвартала(РабочаяДата());
            ИначеЕсли лДата2 = "Год" Тогда
                лДата2 = КонГода(РабочаяДата());
            Иначе
                лДата2 = РабочаяДата();
            КонецЕсли;
        КонецЕсли;
        Дата1 = лДата1;
        Дата2 = лДата2;
24 Масянька
 
11.01.17
11:14
(23) Это_mike к тебе очень добр... Очень...
25 Cool_Profi
 
11.01.17
11:15
Всегда был готов расстрелять тех, кто пишет

Если ТипЗначения(лДата1) = 2 Тогда

...
26 Масянька
 
11.01.17
11:16
(25) А ты вот не добрый... Ты - справедливый.
27 vadim777
 
11.01.17
11:17
(25) Мне также не нравятся те, кто вместо "2" пишет "строка"
28 VladZ
 
11.01.17
11:20
(27) Тип значения числом - нечитаемо. Разработчик должен помнить какое число какому типу соответствует. Я вот, например, не помню. И не хочу запоминать. Зачем я это должен помнить?
29 Это_mike
 
11.01.17
11:21
(27) читабельность важнее.
30 1dvd
 
11.01.17
11:21
(28) а в строке можно ошибиться и потом  дооооооооооолго искать ошибку
31 Это_mike
 
11.01.17
11:23
(28) да разработчик должен много чего помнить. но если можно непомнить - то зачем лишний раз запоминать?
(30) можно, чож... сдуру можно и кий сломать...
32 VladZ
 
11.01.17
11:23
(30) Не аргумент. Ошибиться можно в любом месте программы.