PDA

Просмотр полной версии : Как убрать пробел из даты?



Willi Wonka
15.01.2019, 12:59
Наши бухи в текущем месяце выставляют счета за прошлый месяц. Поэтому в печатной форме в Январе 2019 должно быть декабрь 2018.
С выводом месяца проблем нет. Но вот с годом ситуация иная. При выводе появляется пробел после двойки и в итоге в печатной форме выводится "...за декабрь 2 018". Это происходит только в январе, когда нужно печатать за декабрь и отнимать один год

кусок кода:

Если

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

КонецЕсли;


Как убрать этот пробел? Помогите, люди добрые

Fltr
15.01.2019, 13:40
Наши бухи в текущем месяце выставляют счета за прошлый месяц. Поэтому в печатной форме в Январе 2019 должно быть декабрь 2018.
С выводом месяца проблем нет. Но вот с годом ситуация иная. При выводе появляется пробел после двойки и в итоге в печатной форме выводится "...за декабрь 2 018". Это происходит только в январе, когда нужно печатать за декабрь и отнимать один год

кусок кода:

Если

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

КонецЕсли;


Как убрать этот пробел? Помогите, люди добрые
//КАК УБРАТЬ ПРОБЕЛ В ЧИСЛЕ 12 600,00?
//Важно понимать, что здесь используется не символ пробела, а так называемый, «неразрывный пробел»,
//поэтому такая, к примеру, конструкция:

//СтрЗаменить(ПеременнаяЧис� �о," ","");
//работать не будет.

//Есть два варианта решения проблемы, либо указать для замены вместо пробела Символы.НПП,
//либо используя функцию Формат().

//1)
СтрЗаменить(ПеременнаяЧис� �о,Символы.НПП,""); // 1-й вариант
//2)
Формат(ПеременнаяЧисло,"ЧГ="); // 2-й вариант

//По материалам сайта: http://www.coder1cv8.narod.ru/Publication4.html

pipapalamm
15.01.2019, 14:37
Переменная Год_1 имеет тип число, в её стандартном представлении используется неразрывный пробел.
Чтобы его "представить" корректно, можно сделать, например, так:
ГодСтрокой = Формат(Год_1, "ЧГ=0");

Но вообще, приведенный вами кусок кода не поддается никакой критике.
Не нужно переводить ничего в строку. Можно оперировать датами.
Если НачалоМесяца(Документ.Дата ) = Дата(2019,1,1) Тогда
Результат = Дата(2018,12,31);
Иначе
Результат = Документ.Дата;
КонецЕсли;

DoCaru
15.01.2019, 15:29
Если Дата1<=Дата("20193101") Тогда
Дата1 = Формат(Дата1,"ММММ ГГГГ")
КонецЕсли
Попробуй

gGorus
15.01.2019, 15:34
Поддерживаю: нужно оперировать датами, а уже полученную дату - форматируем как нам нужно.

Мой вариант:
ДатаПечати = ?(Месяц(Дата1)=1, ДобавитьМесяц(Дата1,-1), Дата1);
ДатаПечати = Формат(ДатаПечати, "ДЛФ=DD");

pipapalamm
15.01.2019, 16:35
Поддерживаю: нужно оперировать датами, а уже полученную дату - форматируем как нам нужно.

Мой вариант:
ДатаПечати = ?(Месяц(Дата1)=1, ДобавитьМесяц(Дата1,-1), Дата1);
ДатаПечати = Формат(ДатаПечати, "ДЛФ=DD");

Этот вариант вообще супер - коротко и красиво.

DoCaru
15.01.2019, 18:06
Этот вариант вообще супер - коротко и красиво.

в этом варианте только проверка на месяц. Т.е. в 2020 году будет применяться это же правило