Имя: Пароль:
1C
1С v8
Как убрать пробел из даты?
,
0 Billi Milligan
 
15.01.19
12:47
Наши бухи в текущем месяце выставляют счета за прошлый месяц. Поэтому в печатной форме в Январе 2019 должно быть декабрь 2018.
С выводом месяца проблем нет. Но вот с годом ситуация иная. При выводе появляется пробел после двойки и в итоге в печатной форме выводится "...за декабрь 2 018". Это происходит только в январе, когда нужно печатать за декабрь и отнимать один год

кусок кода:

Если   Формат(Дата1, "ДФ=ММММ") = "Январь" Тогда
       Год_1 = Формат(Дата1, "ДФ=гггг")-1;
       Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;

Как убрать этот пробел? Помогите, люди добрые
1 Волшебник
 
15.01.19
12:48
2 Ненавижу 1С
 
гуру
15.01.19
12:52
(0) какой-то быдлокод
3 arsik
 
гуру
15.01.19
12:52
(0) Ужас

Если Месяц(Дата1) = 1 Тогда
    Дата1 = ДобавитьМесяц(Дата1,-1);
КонецЕсли;
4 Ненавижу 1С
 
гуру
15.01.19
12:53
(3) там ДобавитьМесяц без всяких Если
5 arsik
 
гуру
15.01.19
12:55
(4) Не, у него только в январе такое
6 Billi Milligan
 
15.01.19
13:54
(3) Спасибо!
7 Billi Milligan
 
15.01.19
13:55
Год_1 = Формат(Год(Дата1) - 1, "ЧГ=");

Так тоже работает. Вдруг кому пригодится.
8 Zamestas
 
15.01.19
14:04
(7) То, что январь может по другому называться - не смущает?
9 craxx
 
15.01.19
14:13
Открой для себя функцию Формат. Внимательно почитай СП по форматам даты
10 Zamestas
 
15.01.19
14:28
(9) Для этой задачи не используется функция формат - правильный ответ в (3).
11 Serg_1960
 
15.01.19
14:57
Правильный ответ :)
ТС: Наши бухи в текущем месяце выставляют счета за прошлый месяц...в печатной форме выводится "...за декабрь 2 018"...

"... за " + Формат(ДобавитьМесяц(ДатаХ,-1)), "ДФ='ММММ гггг'");
12 Serg_1960
 
15.01.19
14:58
Упс, одна кавычка лишняя :)
13 pasha_d
 
15.01.19
15:38
СтрЗаменить(Формат(Дата,"ДФ=гггг"), Символы.НПП, "");
14 unregistered
 
15.01.19
15:43
Вот так и рождаются легенды об 1С-быдлокодерстве.
15 BeerHelpsMeWin
 
15.01.19
16:09
(14) Но ведь работает же! :)
16 PR
 
15.01.19
19:17
Сабж — квинтэссенция быдлкодерства, просто аж подташнивает
17 DES
 
15.01.19
19:24
Весь код (0) обрамить
стрзаменить(<Код>, "2 018", "2018");
18 palsergeich
 
15.01.19
19:42
Все очень просто:
Формат(Дата1, "ДФ=гггг") = строка 2018
Формат(Дата1, "ДФ=гггг")-1 - происходит неявное преобразование типа к типу число. По региональным установкам - у типа число 3 рзнака разделяются неразрывным пробелом.
Формат(Формат(Дата1, "ДФ=гггг")-1,"ЧГ=0") - вот рассово верное решение
19 palsergeich
 
15.01.19
19:44
(18)
Все очень просто:
Формат(Дата1, "ДФ=гггг") = строка 2018
Формат(Дата1, "ДФ=гггг")-1 - происходит неявное преобразование типа к типу число. По региональным установкам - у типа число 3 знака при преобразовании к типу строка, разделяются неразрывным пробелом и Вы имеете то, что имеете.
Формат(Формат(Дата1, "ДФ=гггг")-1,"ЧГ=0") - вот рассово верное решение
Но все равно говнокод в шапке.
20 palsergeich
 
15.01.19
19:46
Если Месяц(Дата1) = 1 Тогда
       Год_1 = Формат(Дата1, "ДФ=гггг")-1;
     Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;

Решение на порядок читабельнее.
21 palsergeich
 
15.01.19
19:48
(20) Тьфу
    
Если Месяц(Дата1) = 1 Тогда
      Год_1 = Формат(ДобавитьМесяц(Дата1,-1), "ДФ=гггг")-1;
     Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;

Или

    
Если Месяц(Дата1) = 1 Тогда
       Год_1 = Формат(Формат(Дата1, "ДФ=гггг")-1,,"ЧГ=0");
     Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;
22 palsergeich
 
15.01.19
19:49
(21) Да что такое)
    
Если Месяц(Дата1) = 1 Тогда
      Год_1 = Формат(ДобавитьМесяц(Дата1,-1), "ДФ=гггг");
     Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;

Или

    
Если Месяц(Дата1) = 1 Тогда
       Год_1 = Формат(Формат(Дата1, "ДФ=гггг")-1,"ЧГ=0");
     Иначе Год_1 = Формат(Дата1, "ДФ=гггг");
КонецЕсли;

Вот теперь поправил
23 Fram
 
15.01.19
20:30
(0) а можешь весь модуль показать? любопытное должно быть чтиво
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс