|
|
|
помогите вс использованием метода СтрЗаменить() | ☑ | ||
|---|---|---|---|---|
|
0
millim
13.11.07
✎
10:05
|
Необходимо получить название месяца в родительном падеже,
реализация в 8.1. Как один из подходов я использовала метод СтрЗаменить(). Ошибка в реализации функции, и где правильно будет вызвать функцию ОтчетныйМесяцСклонение(ОтчетныйМесяц),чтобы не нарушить формат даты? а он должен быть таким: 1 января 2007 года 1 февраля 2007 года .... и т.д. |
|||
|
1
millim
13.11.07
✎
10:52
|
Знатоки,АУ!
Функция ОтчетныйМесяцСклонение(ОтчетныйМесяц) Если ОтчетныйМесяц=1 Тогда СтрЗаменить(ОтчетныйМесяц,"январь","января"); Если ОтчетныйМесяц=2 Тогда СтрЗаменить(ОтчетныйМесяц,"февраль","февраля"); КонецЕсли; КонецЕсли; КонецФункции У меня с ошибкой отрабатывает( "Встроенная функция можеь быть использованна только в выражении." |
|||
|
2
Рэйв
13.11.07
✎
10:53
|
откуда ты ее вызываешь?
|
|||
|
3
millim
13.11.07
✎
10:59
|
Мне в отчете строчку в опред.формате сформировать надо.
Как пробный вариант можно просто на форму бросить ПолеВывода с именем ОтчетныйМесяц. И прописать ф-ю в модуле формы. |
|||
|
4
Рэйв
13.11.07
✎
11:00
|
(3)а чем тебе для "определенного" формата не подходит функция Формат()?
|
|||
|
5
zbv
13.11.07
✎
11:04
|
Во-первых:
Если ОтчетныйМесяц=1 Тогда Возврат СтрЗаменить(ОтчетныйМесяц,"январь","января"); КонецЕсли; Если ОтчетныйМесяц=2 Тогда Возврат СтрЗаменить(ОтчетныйМесяц,"февраль","февраля"); КонецЕсли; ОтчетныйМесяц - Должен быть строкой!! Во-вторых: Возврат Формат(<Дата>,"ДЛФ=DD") |
|||
|
6
marvak
13.11.07
✎
11:09
|
(0) эх, сразу виден женский подход к программированию :(
обычно создают массив или структуру или таблицу соответствий месяцев в разных падежах а не пишут огромную конструкцию вида если ... тогда |
|||
|
7
hhhh
13.11.07
✎
11:09
|
(1) ОтчетныйМесяц = СтрЗаменить(ОтчетныйМесяц,"январь","января");
|
|||
|
8
zbv
13.11.07
✎
11:12
|
гы.
Только заметил... "ОтчетныйМесяц" - оказывается число от 1 до 12. :) |
|||
|
9
millim
13.11.07
✎
11:14
|
так она у меня в процедуре так и прописана
Шапка.Параметры.СТР="на "+Строка(Формат(НачалоМесяца(ОтчетныйМесяц),"ДЛФ=Д"))+"года"; СТРОКОЙ!Вопрос был ещё: как её правильно вызвать в процедуре,т.к. надо только месяц без числа и года изменять? |
|||
|
10
millim
13.11.07
✎
11:15
|
marvak
Попрошу без указания на пловую принадлежность:( |
|||
|
11
zbv
13.11.07
✎
11:19
|
(9) почитай (6) он дело говорит...
если я правильно понял, что нужно получить только месяц в родительном падеже. |
|||
|
12
millim
13.11.07
✎
11:28
|
набросайте,пожалуйста,структуру таблицы соответствий месяцев...
нагловато,наверно,звучит..,но я загибаюсь...параллельно с др.отчетом работаю |
|||
|
13
marvak
13.11.07
✎
11:47
|
Ну, например ТаблицаМесяцев из 12 строк и колонок "именительный", "родительный", ...
функция может выглядеть так: Функция ПолучитьМесяцВПадеже(НомерМесяца, Падеж = "именительный") Если НомерМесяца<1 ИЛИ НомерМесяца<1 Тогда Возврат ""; Конецесли; Возврат ТаблицаМесяцев[НомерМесяца][Падеж]; конецфункции |
|||
|
14
marvak
13.11.07
✎
11:48
|
пардон, там исправить нужно
Если НомерМесяца<1 ИЛИ НомерМесяца>12 Тогда Возврат ""; Конецесли; |
|||
|
15
marvak
13.11.07
✎
11:49
|
а еще лучше создать какой-нить справочник или настроечную таблицу
|
|||
|
16
millim
13.11.07
✎
11:54
|
мне только в родительном надо...
остальные ни к чему можно метод СтрЗаменить() в таблице использовать? |
|||
|
17
marvak
13.11.07
✎
11:55
|
(16) а зачем тебе СтрЗаменить?
ты что хочешь в функцию передавать? Номер месяца или его название в именительном падеже |
|||
|
18
Ursus maritimus
13.11.07
✎
12:05
|
Формат(Дата("2007"+Прав("0"+ОтчетныйМесяц,2)+"01"),"ДЛФ=DD")
|
|||
|
19
millim
13.11.07
✎
12:12
|
(17) его название.
см.первую постановку вопроса. надо получать формат: 1 января 2007 г. 1 февраля 2007 г. и т.д..... |
|||
|
20
millim
13.11.07
✎
12:13
|
НачалоМесяца(); обязательно!
|
|||
|
21
Ленивый
13.11.07
✎
13:08
|
как вариант
ОтчетныйМесяц=?(Прав(СокрЛП(ОтчетныйМесяц),1)="ь",СтрЗаменить(СокрЛП(ОтчетныйМесяц),"ь","я"),?(Прав(ОтчетныйМесяц,1)="т",СокрЛП(ОтчетныйМесяц)+"а",?(Прав(СокрЛП(ОтчетныйМесяц),1)="й",СтрЗаменить(СокрЛП(ОтчетныйМесяц),"й","я")))) |
|||
|
22
Ленивый
13.11.07
✎
13:10
|
(21)Чето у меня плохо отбражается:
ОтчетныйМесяц=?(Прав(СокрЛП(ОтчетныйМесяц),1)="ь", СтрЗаменить(СокрЛП(ОтчетныйМесяц),"ь","я"), ?(Прав(ОтчетныйМесяц,1)="т", СокрЛП(ОтчетныйМесяц)+"а", ?(Прав(СокрЛП(ОтчетныйМесяц),1)="й", СтрЗаменить(СокрЛП(ОтчетныйМесяц),"й","я")))) |
|||
|
23
s1s
13.11.07
✎
13:14
|
Если смотреть на (1) то
Формат(Дата(2007,ОтчетныйМесяц,1),"ДЛФ=DD") если предположить, что ОтчетныйМесяц это тип дата, то Формат(НачалоМесяца(ОтчетныйМесяц,"ДЛФ=DD") |
|||
|
24
s1s
13.11.07
✎
13:14
|
+23
Формат(НачалоМесяца(ОтчетныйМесяц),"ДЛФ=DD") |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |