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


#0 by BLP
Добрый день, подскажите, пож, как вывести интервал дат прописью на английском языке. Пропись("xxx.spl") работает только для точно указанных дат, чисел, сумм, на любом языке, прописанном в файлах xxx.spl А вот, как вывести ПериодСтр(дата1,дата2) на английском. Пихал Пропись(“на английском”) и до и после, и в процедуре и в глобальнике, но все равно выводит на русском. Например, если указан интервал дат 01.04.17-30.06.17, выводится 2 Квартал 2017 г., а мне нужно, чтобы было 2 Quarter 2017 Заранее спасибо.
#1 by Ёпрст
Пропись, только на формат, вроде как работает. Тут только файло ресурсов править, разве что
#2 by BLP
Да, наверное, так и есть. Все перепробовал. Думал, что-то не так. Поэтому напоследок решил спросить здесь. Ладно, буду другие пути искать.
#3 by Харлампий Дымба
Проще функцию свою написать - 12 месяцев + 4 квартала + полугодие, 9 месяцев и год. Итого 19 кейсов. СписокПериодов.ДобавитьЗначение("January"); ...
#4 by Харлампий Дымба
Еще проще через СтрЗаменить: .. Период=СтрЗаменить(Период,"Квартал","Quarter"); ... Возврат Период
#5 by Ёпрст
хотя не, напиз..ил
#6 by Ёпрст
всё там работает с прописью. ЗЫ: смотри, где находится твой файл прописи
#7 by Ёпрст
по-умолчанию, смотрит в каталоге пользователя, если там нет, смотри в каталоге базы, если там нет - смотрит в BIN у тя короче, подхватывает не тот файл прописи
#8 by Ёпрст
Но, можешь и руками слепить, подсунув не файл прописи, а сформированный СЗ
#9 by Ёпрст
#10 by Ёпрст
Тип того:
#11 by BLP
Точно, все работает! Видимо надо было не 2 дня посидеть над этим, а три. Нашёл причину "невывода". В своё время я редактировал spl файлы, и по моему мнению удалил оттуда некоторые строки или позиции, которые там в кавычках. Думал, если мне что-то не нужно, можно удалить. Например, в строке Numbers, после "девять" идёт "одна", "две" и дальше 10, 20, 30 и тд. Т.к. На английском  это не важно, то удалил эти две позиции. С датами то же самое. Первая строка перечисляет месяцы в именительном падеже, вторая в родительном, потом идёт "год" и "квартал". Я удалил "родительную" строку для англ. прописи. И все работало ОК, т.е. Месяцы были на англ, пока не понадобились год и квартал. Короче, так. Все равно спасибо за последний пример, т.к. Я ещё юзаю и китайский с их иероглифами. Ну, настроил, тоже вроде вс работает. Но есть одно но для прописи чисел (они у них тоже иероглифами пишутся ))) , например, 29.09.2017 это ??????????? хахахах) . Т.к. 1с77 не воспринимает иероглифы напрямую, я нашел способ, чтобы из там писать, как оказалось все очень просто. Используем китайский фонт и сочетание двух букв дают тот или иной иероглиф (конечно, надо знать китайский, чтобы полноценно работать). Так вот, проблема с форматом прописи чисел следующая. В строе ”Numbers“ файла росписи spl перечислены прописные числа на китайском , но например, если числу 19 соответствует комбинация букв "ВаеС" , то почему-то при использовании функции Формат она меняет регистр букв на маленький, и в итоге в печатной форме выходит как "Ваес", но этой комбинации соответствуете совсем другой иероглиф, т.е. Регистрозависим. Логически я понял, что если мы используем русский или английский, и в файле прописи написали с ошибкой "ДевяТнадцать", то Формат сам исправляет это и выдаёт красиво "Девятнадцать". Вот поэтому, придётся для этого случая использовать Ваше последнее предложение.
#12 by BLP
(((( Попробовал ... Все равно меняет регистр букв на маленький внутри слов, оставляя только первую Заглавной. Ну почему? Может мне нравится, чтобы было вот так 29 СеНтЯбРя. Ладно, нет так нет... Пойдем намного сложным путем, раз программно не получается. ((
#13 by BLP
Еще раз проверил. Оказывается, при формате меняется регистр на маленький только для Чисел (Numbers), для блока Дат (Date) выводится все так, как прописано в файле прописи СеНтЯбРя
#14 by Скиурус
"2 Quarter 2017" Это не по-английски, это какой-то лет ми спик фром май харт. Пиндосы пишут Q2 2017
#15 by BLP
))) Да, я это знаю. Самописной функцией можно изобразить как угодно. Но порой эти самописки получаются слишком громоздкими и с кучей условий и т.д.   Хотелось бы для начала по-простецкому использовать встроенные функции. А встроенный формат нам не дает американский формат дат, т.е. когда сначала Год - Месяц - День. По-поводу регистра прописных чисел - видимо, в формате встроенная функция ТРег, которая меняет все. Хотя, повторюсь, регистр не меняется для ДАТных слов.
#16 by Ёпрст
разве что так только YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
#17 by BLP
Так я знаю, надо 2017 September 29 ))) или 2017.09.29 И если последний вариант получить из 20170929 вообще не проблема, то для первого надо еще что-то дописывать. И это тоже не проблема, а если на до интервал перевести в кварталы или полугодия... пфффф... Ладно, всем спасибо. Думаю, во всех нюансах Формат разобрался в этот раз от и до. Что-то буду юзать, что-то буду дорабатывать.
#18 by Скиурус
"2017 September 29" Неа :) September 29, 2017
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С