Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Интервал дат прописью на другом языке (напр Англ)

v7: Интервал дат прописью на другом языке (напр Англ)
Я
   BLP
 
28.09.17 - 15:14
Добрый день,
подскажите, пож, как вывести интервал дат прописью на английском языке.
Пропись("xxx.spl") работает только для точно указанных дат, чисел, сумм, на любом языке, прописанном в файлах xxx.spl
А вот, как вывести ПериодСтр(дата1,дата2) на английском. Пихал Пропись(“на английском”) и до и после, и в процедуре и в глобальнике, но все равно выводит на русском.
Например, если указан интервал дат 01.04.17-30.06.17, выводится 2 Квартал 2017 г., а мне нужно, чтобы было 2 Quarter 2017
Заранее спасибо.
 
 
   Ёпрст
 
1 - 28.09.17 - 15:33
(0) Пропись, только на формат, вроде как работает.
Тут только файло ресурсов править, разве что
   BLP
 
2 - 28.09.17 - 15:35
Да, наверное, так и есть. Все перепробовал. Думал, что-то не так. Поэтому напоследок решил спросить здесь.
Ладно, буду другие пути искать.
   Харлампий Дымба
 
3 - 28.09.17 - 15:35
Проще функцию свою написать - 12 месяцев + 4 квартала + полугодие, 9 месяцев и год. Итого 19 кейсов.

СписокПериодов=СоздатьОбъект("СписокЗначений");
СписокПериодов.ДобавитьЗначение("January");
...
СписокПериодов.ДобавитьЗначение("December");
Если (НачМесяца(Дата1)=Дата1)и(КонМесяца(Дата2)=Дата)и(НачМесяца(Дата1)=НачМесяца(Дата2)) Тогда
Месяц=СписокПериодов.ПолучитьЗначение(ДатаМесяц(Дата1));
Возврат Месяц+" "+ДатаГод(Дата1)
ИначеЕсли (НачКвартала(Дата1)=Дата1)и(КонКвартала(Дата2)=Дата)и(НачКвартала(Дата1)=НачКвартала(Дата2)) Тогда
Возврат Лев(ПериодСтр(Дата1,Дата2),1)+" Quarter "+ДатаГод(Дата1)
и т.д.
   Харлампий Дымба
 
4 - 28.09.17 - 15:38
Еще проще через СтрЗаменить:
Период=ПериодСтр(Дата1,Дата2);
Период=СтрЗаменить(Период,"Январь","January");
..
Период=СтрЗаменить(Период,"Декабрь","December");
Период=СтрЗаменить(Период,"Квартал","Quarter");
...
Возврат Период
   Ёпрст
 
5 - 28.09.17 - 15:50
(2) хотя не, напиз..ил
   Ёпрст
 
6 - 28.09.17 - 15:51
всё там работает с прописью.

ЗЫ: смотри, где находится твой файл прописи
   Ёпрст
 
7 - 28.09.17 - 15:51
по-умолчанию, смотрит в каталоге пользователя, если там нет, смотри в каталоге базы, если там нет - смотрит в BIN\

у тя короче, подхватывает не тот файл прописи
   Ёпрст
 
8 - 28.09.17 - 15:52
Но, можешь и руками слепить, подсунув не файл прописи, а сформированный СЗ
   Ёпрст
 
9 - 28.09.17 - 15:54
   Ёпрст
 
10 - 28.09.17 - 16:09
Тип того:

Процедура Сформировать()
    
    СписокПрописи=СоздатьОбъект("СписокЗначений");
    СписокДат=СоздатьОбъект("СписокЗначений");
    СписокДат.ИзСтрокиСРазделителями("""Январчик"",""Февральчик"",""Мартик"",""остальные месяцы добавь сам"","""","""",""""");
    СписокПрописи.ДобавитьЗначение(СписокДат,"Date");
    Пропись(СписокПрописи);
    Сообщить(ПериодСтр(НачДата,КонДата));

КонецПроцедуры
 
 Рекламное место пустует
   BLP
 
11 - 29.09.17 - 08:10
(6) Точно, все работает! Видимо надо было не 2 дня посидеть над этим, а три. Нашёл причину "невывода". В своё время я редактировал spl файлы, и по моему мнению удалил оттуда некоторые строки или позиции, которые там в кавычках. Думал, если мне что-то не нужно, можно удалить.
Например, в строке Numbers, после "девять" идёт "одна", "две" и дальше 10, 20, 30 и тд. Т.к. На английском  это не важно, то удалил эти две позиции.
С датами то же самое. Первая строка перечисляет месяцы в именительном падеже, вторая в родительном, потом идёт "год" и "квартал". Я удалил "родительную" строку для англ. прописи.
И все работало ОК, т.е. Месяцы были на англ, пока не понадобились год и квартал. Короче, так.
Все равно спасибо за последний пример, т.к. Я ещё юзаю и китайский с их иероглифами. Ну, настроил, тоже вроде вс работает. Но есть одно но для прописи чисел (они у них тоже иероглифами пишутся ))) , например, 29.09.2017 это ??????????? хахахах) . Т.к. 1с77 не воспринимает иероглифы напрямую, я нашел способ, чтобы из там писать, как оказалось все очень просто. Используем китайский фонт и сочетание двух букв дают тот или иной иероглиф (конечно, надо знать китайский, чтобы полноценно работать). Так вот, проблема с форматом прописи чисел следующая.
В строе ”Numbers“ файла росписи spl перечислены прописные числа на китайском , но например, если числу 19 соответствует комбинация букв "ВаеС" , то почему-то при использовании функции Формат() она меняет регистр букв на маленький, и в итоге в печатной форме выходит как "Ваес", но этой комбинации соответствуете совсем другой иероглиф, т.е. Регистрозависим.
Логически я понял, что если мы используем русский или английский, и в файле прописи написали с ошибкой "ДевяТнадцать", то Формат() сам исправляет это и выдаёт красиво "Девятнадцать".
Вот поэтому, придётся для этого случая использовать Ваше последнее предложение.
Ох, и накалякал! ))))
   BLP
 
12 - 29.09.17 - 09:16
(((( Попробовал (10)... Все равно меняет регистр букв на маленький внутри слов, оставляя только первую Заглавной.
Ну почему? Может мне нравится, чтобы было вот так 29 СеНтЯбРя.
Ладно, нет так нет... Пойдем намного сложным путем, раз программно не получается. ((
   BLP
 
13 - 29.09.17 - 09:22
Еще раз проверил.
Оказывается, при формате меняется регистр на маленький только для Чисел (Numbers), для блока Дат (Date) выводится все так, как прописано в файле прописи СеНтЯбРя
   Скиурус
 
14 - 29.09.17 - 09:34
"2 Quarter 2017"
Это не по-английски, это какой-то лет ми спик фром май харт.

Пиндосы пишут Q2 2017
   BLP
 
15 - 29.09.17 - 09:59
(14) ))) Да, я это знаю. Самописной функцией можно изобразить как угодно. Но порой эти самописки получаются слишком громоздкими и с кучей условий и т.д.  
Хотелось бы для начала по-простецкому использовать встроенные функции. А встроенный формат() нам не дает американский формат дат, т.е. когда сначала Год - Месяц - День.

По-поводу регистра прописных чисел - видимо, в формате() встроенная функция ТРег(), которая меняет все.

Хотя, повторюсь, регистр не меняется для ДАТных слов.
   Ёпрст
 
16 - 29.09.17 - 10:14
(15) разве что так только
YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
   BLP
 
17 - 29.09.17 - 10:29
Так я знаю, надо 2017 September 29 ))) или 2017.09.29
И если последний вариант получить из 20170929 вообще не проблема, то для первого надо еще что-то дописывать.
И это тоже не проблема, а если на до интервал перевести в кварталы или полугодия... пфффф...
Ладно, всем спасибо. Думаю, во всех нюансах Формат() разобрался в этот раз от и до. Что-то буду юзать, что-то буду дорабатывать.
   Скиурус
 
18 - 29.09.17 - 17:32
"2017 September 29"
Неа :) September 29, 2017

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует