Имя: Пароль:
1C
1С v8
срок прописью
0 prog01
 
02.10.12
16:44
нужно 1 3 5
преобразовать
1 год 3 месяца 5 дней
для любых вариантов
1 Wobland
 
02.10.12
16:45
так..
2 DrShad
 
02.10.12
16:46
1С: Зона Строгого Режима?
3 Быдло замкадное
 
02.10.12
16:47
1 + "год" + 2 + "месяца" ? =))
4 narayanan
 
02.10.12
16:59
Если 1 то "год"
ИначеЕсли 2,3,4 то "года"
ИначеЕсли 5,6,7,8,9,10 и т.д. то "лет"
Если 1 то "месяц"
ИначеЕсли 2,3,4 то "месяца"
ИначеЕсли 5,6,7,8,9,10,11,12 то "месяцев"
Если 1 то "день"
ИначеЕсли 2,3,4 то "дня"
ИначеЕсли 5 и т.д. то "дней"
5 Wobland
 
02.10.12
17:02
(4) 21 дней? автор же буквально примет
6 zak555
 
02.10.12
17:03
(4) г@внокод
7 narayanan
 
02.10.12
17:04
(6) он даже может работать
8 prog01
 
02.10.12
17:05
(2)гарантийный талон
9 Wobland
 
02.10.12
17:06
(8) продолжайте наблюдения
10 DrShad
 
02.10.12
17:08
(9) +1
11 prog01
 
02.10.12
17:21
up
12 МихаилМ
 
02.10.12
17:23
да в школе такие задачки дают
13 Wobland
 
02.10.12
17:24
(11) что ап? чего ты от нас хочешь? (ты же сюда спросить пришёл, не?)
14 prog01
 
02.10.12
17:28
(13)да. подскажите пожалуйста как это закодить
15 Wobland
 
02.10.12
17:29
(14) изучал (4)? много думал?
16 zak555
 
02.10.12
17:43
Функция КоличествоЛет(Чис)
  Возврат ЧислоПрописью(Чис,,"год,года,лет,м,,,,,0")
КонецФункции

Функция КоличествоМесяцев(Чис)
  Возврат ЧислоПрописью(Чис,,"месяц,меясца,месяцев,м,,,,,0")
КонецФункции

Функция КоличествоДней(Чис)
  Возврат ЧислоПрописью(Чис,,"день, дня, дней,м,,,,,0")
КонецФункции
17 Wobland
 
02.10.12
17:50
(16) ну и что? как это заставить работать?
18 Wobland
 
02.10.12
17:50
(17) //подумал автор
19 aleks-id
 
02.10.12
17:53
Функция СлепилиБабуНаМорозе(Чис1,Чис2,Чис3)
  Возврат ЧислоПрописью(Чис1,,"год,года,лет,м,,,,,0")+" "+ЧислоПрописью(Чис2,,"месяц,меясца,месяцев,м,,,,,0")+" "+ЧислоПрописью(Чис3,,"день, дня, дней,м,,,,,0")
КонецФункции

резалт = СлепилиБабуНаМорозе(1, 3, 5)
20 Wobland
 
02.10.12
17:57
а число прописью умеет в нижнем регистре говорить?
21 prog01
 
02.10.12
18:02
(19)спасибо
только нужно чтобы было "1 год 4 месяца 15 дней"
т.е. цифры с буквами
22 Wobland
 
02.10.12
18:03
(21) можно я буду молчать?
23 DrShad
 
02.10.12
18:06
Функция СлепилиБабуНаМорозе(Чис1,Чис2,Чис3)
  Возврат "" + Чис1 + " " + ЧислоПрописью(Чис1,,"год,года,лет,м,,,,,0")+" " + Чис2 + " " +ЧислоПрописью(Чис2,,"месяц,меясца,месяцев,м,,,,,0")+" " + Чис3 + " " +ЧислоПрописью(Чис3,,"день, дня, дней,м,,,,,0")
КонецФункции

резалт = СлепилиБабуНаМорозе(1, 3, 5)
24 zak555
 
02.10.12
18:06
нужно ещё век и тысячелетие предусмотреть
25 zak555
 
02.10.12
18:07
(23) и что выдаст ?
26 Wobland
 
02.10.12
18:07
(23) 21 Двадцать один год 5 Пять месяцев 18 Восемнадцать дней
27 prog01
 
02.10.12
18:08
Функция СлепилиБабуНаМорозе переименовать в промышленнаяERPсистема )))
28 DrShad
 
02.10.12
18:09
(25) ну мне что все писать за ТС, пусть сам уберет ненужное
29 prog01
 
02.10.12
18:10
(28)в смысле стрзаменить?
30 DrShad
 
02.10.12
18:10
+(28) а (16) что выдаст?
31 DrShad
 
02.10.12
18:11
(29) в смысле применить функцию ПрострелитьКоленку(Истина)
32 zak555
 
02.10.12
18:15
(28) какой параметр указать, что бы число было непрописью =)
33 Wobland
 
02.10.12
18:18
(32) СтрЗаменить() подойдёт. только для него нужно преобразовать число в число прописью
34 DrShad
 
02.10.12
18:24
(32) ну и какой?
35 prog01
 
03.10.12
09:54
up
36 zak555
 
03.10.12
09:55
чего ап ?
37 aleks-id
 
03.10.12
09:56
трудно мозги чтоли включить?
38 hhhh
 
03.10.12
10:03
(36) наверно, из типовой надо скопипастить, там копейки не прописью фигачат.
39 aleks-id
 
03.10.12
10:05
Функция СлепилиБабуНаМорозе(Чис1,Чис2,Чис3)
   Возврат ""
   + Чис1 + " " + СтрЗаменить(ЧислоПрописью(Чис1,,"год,года,лет,м,,,,,0"),ЧислоПрописью(Чис1,,",,,,,,,,0"),"")+" "
   + Чис2 + " " + СтрЗаменить(ЧислоПрописью(Чис2,,"месяц,месяца,месяцев,м,,,,,0"),ЧислоПрописью(Чис2,,",,,,,,,,0"),"")+" "
   + Чис3 + " " + СтрЗаменить(ЧислоПрописью(Чис3,,"день, дня, дней,м,,,,,0"),ЧислоПрописью(Чис3,,",,,,,,,,0"),"")+" "
КонецФункции

резалт = СлепилиБабуНаМорозе(1, 3, 5)
40 hhhh
 
03.10.12
10:06
(39) я за (4) всё-таки.
41 zak555
 
03.10.12
10:18
Функция НайтиПоследний(Стр, С = " ")
  ДлинаСтр = СтрДлина(Стр);
  Для н = -ДлинаСтр по -1 Цикл
     Если Сред(Стр, -н, 1) = С Тогда Возврат н; КонецЕСли;
  КонецЦикла;
  Возврат 0;
КонецФункции

Годов = Чис + " " + Сред(КоличествоЛет(Чис), НайтиПоследний(КоличествоЛет(Чис)) + 1);
42 aleks-id
 
03.10.12
10:20
(40) там копрокод
43 prog01
 
04.10.12
10:10
(39)(4)спасибо
если б знал (или помнил) что всё так просто всего несколько вариантов то и ветки не было бы
видать русский язык я забыл уже
44 jj369
 
12.10.12
14:58
Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт
   
   Лет        = 0;
   Месяцев    = 0;
   Дней    = 0;
   Если Дата1 > Дата2 Тогда
       
       ВременнаяДата = Дата1;
       Если День(ВременнаяДата) < День(Дата2) Тогда
           Дней = (ВременнаяДата - ДобавитьМесяц(ВременнаяДата,-1))/86400;
           ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
       КонецЕсли;
       Если Месяц(ВременнаяДата) < Месяц(Дата2) Тогда
           ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
           Месяцев = 12;
       КонецЕсли;
       Лет        = Макс(             Год(ВременнаяДата)        - Год(Дата2),    0);
       Месяцев    = Макс(Месяцев    + Месяц(ВременнаяДата)    - Месяц(Дата2),    0);
       Дней    = Макс(Дней        + День(ВременнаяДата)    - День(Дата2),    0);
       
       // скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах
       Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней*86400) Тогда
           Дней = Дней + ((ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней*86400) - Дата2)/86400;
           //(День(КонецМесяца(Дата2)) - День(НачалоМесяца(Дата2))) - (День(КонецМесяца(ДобавитьМесяц(Дата1,-1))) - День(НачалоМесяца(ДобавитьМесяц(Дата1,-1))));
       КонецЕсли;
       
   КонецЕсли;

КонецПроцедуры    // РазобратьРазностьДат
Основная теорема систематики: Новые системы плодят новые проблемы.