Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Сен 2020, 01:23
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Платформа 7.7 (7.70.027): есть ли функция Дата прописью?  (Прочитано 10992 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shok

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-27
  • Сайт: 
Доброго времени суток, Уважаемые! Возникла необходимость вывести из 1С в шаблон Word дату, но дата должна быть прописью.. Подскажите пожалуйста есть ли готовая функция которая возвращает по сокращённой дате Дату прописью? например 01 июля 2009 надо - первое июля две тысячи девятого года. Заранее спасибо!


Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
смотри функцию "Формат" в синтаксисе

Оффлайн Shok

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-27
  • Сайт: 
смотри функцию "Формат" в синтаксисе
Спасибо, но
там нет такого.. мне нужно чтоб всё в дате было прописью..

Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С

Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
Если на 7,,,то
// ПрописьДата()
Функция глПрописьДата(Д) Экспорт
   стрРез = "";
   
   спсМес = СоздатьОбъект("СписокЗначений");
   спсМес.ДобавитьЗначение("января");
   спсМес.ДобавитьЗначение("февраля");
   спсМес.ДобавитьЗначение("марта");
   спсМес.ДобавитьЗначение("апреля");
   спсМес.ДобавитьЗначение("мая");
   спсМес.ДобавитьЗначение("июня");
   спсМес.ДобавитьЗначение("июля");
   спсМес.ДобавитьЗначение("августа");
   спсМес.ДобавитьЗначение("сентября");
   спсМес.ДобавитьЗначение("октября");
   спсМес.ДобавитьЗначение("ноября");
   спсМес.ДобавитьЗначение("декабря");
   
   спсЧисл = СоздатьОбъект("СписокЗначений");
   спсЧисл.ДобавитьЗначение("первое","первого");
   спсЧисл.ДобавитьЗначение("второе","второго");
   спсЧисл.ДобавитьЗначение("третье","третьего");
   спсЧисл.ДобавитьЗначение("четвертое","четвертого");
   спсЧисл.ДобавитьЗначение("пятое","пятого");
   спсЧисл.ДобавитьЗначение("шестое","шестого");
   спсЧисл.ДобавитьЗначение("седьмое","седьмого");
   спсЧисл.ДобавитьЗначение("восьмое","восьмого");
   спсЧисл.ДобавитьЗначение("девятое","девятого");
   
   //числительные им.падеж
   спсЧислИм = СоздатьОбъект("СписокЗначений");
   спсЧислИм.ДобавитьЗначение("тысяча","тысячного");
   спсЧислИм.ДобавитьЗначение("две тысячи","двухтысячного");
   спсЧислИм.ДобавитьЗначение("три тысячи","трехтысячного");
   спсЧислИм.ДобавитьЗначение("четыре тысячи","четырёхтысячного");
   спсЧислИм.ДобавитьЗначение("пять","пятитысячного");
   спсЧислИм.ДобавитьЗначение("шесть","шеститысячного");
   спсЧислИм.ДобавитьЗначение("семь","семитысячного");
   спсЧислИм.ДобавитьЗначение("восемь","восьмитысячного");
   спсЧислИм.ДобавитьЗначение("девять","девятитысячного");
   
   спсСотни = СоздатьОбъект("СписокЗначений");
   спсСотни.ДобавитьЗначение("сто");
   спсСотни.ДобавитьЗначение("двести");
   спсСотни.ДобавитьЗначение("триста");
   спсСотни.ДобавитьЗначение("четыреста");
   спсСотни.ДобавитьЗначение("пятьсот");
   спсСотни.ДобавитьЗначение("шестьсот");
   спсСотни.ДобавитьЗначение("семьсот");
   спсСотни.ДобавитьЗначение("восемьсот");
   спсСотни.ДобавитьЗначение("девятьсот");
   
   //десятки им.падеж
   спсДесИм = СоздатьОбъект("СписокЗначений");
   спсДесИм.ДобавитьЗначение("","десятого");
   спсДесИм.ДобавитьЗначение("двадцать","двадцатого");
   спсДесИм.ДобавитьЗначение("тридцать","тридцатого");
   спсДесИм.ДобавитьЗначение("сорок","сорокового");
   спсДесИм.ДобавитьЗначение("пятьдесят","пятидесятого");
   спсДесИм.ДобавитьЗначение("шестьдесят","шестидесятого");
   спсДесИм.ДобавитьЗначение("семьдесят","семидесятого");
   спсДесИм.ДобавитьЗначение("восемьдесят","восьмидесятого");
   спсДесИм.ДобавитьЗначение("девяносто","девяностого");
   
   //субдесятки род.падеж
   спсСубДесРод = СоздатьОбъект("СписокЗначений");
   спсСубДесРод.ДобавитьЗначение("одиннадцатого");
   спсСубДесРод.ДобавитьЗначение("двенадцатого");
   спсСубДесРод.ДобавитьЗначение("тринадцатого");
   спсСубДесРод.ДобавитьЗначение("четырнадцатого");
   спсСубДесРод.ДобавитьЗначение("пятнадцатого");
   спсСубДесРод.ДобавитьЗначение("шестнадцатого");
   спсСубДесРод.ДобавитьЗначение("семнадцатого");
   спсСубДесРод.ДобавитьЗначение("восемнадцатого");
   спсСубДесРод.ДобавитьЗначение("девятнадцатого");
   
   спсДес = СоздатьОбъект("СписокЗначений");
   спсДес.ДобавитьЗначение("десятое");
   спсДес.ДобавитьЗначение("двадцатое","двадцать");
   спсДес.ДобавитьЗначение("тридцатое","тридцать");
   спсДес.ДобавитьЗначение("сороковое","тридцать");
   спсДес.ДобавитьЗначение("пятидесятое","тридцать");
   спсДес.ДобавитьЗначение("шестидесятое","тридцать");
   спсДес.ДобавитьЗначение("семидесятое","тридцать");
   
   спсСубДес = СоздатьОбъект("СписокЗначений");
   спсСубДес.ДобавитьЗначение("одиннадцатое");
   спсСубДес.ДобавитьЗначение("двенадцатое");
   спсСубДес.ДобавитьЗначение("тринадцатое");
   спсСубДес.ДобавитьЗначение("четырнадцатое");
   спсСубДес.ДобавитьЗначение("пятнадцатое");
   спсСубДес.ДобавитьЗначение("шестнадцатое");
   спсСубДес.ДобавитьЗначение("семнадцатое");
   спсСубДес.ДобавитьЗначение("восемнадцатое");
   спсСубДес.ДобавитьЗначение("девятнадцатое");
   
   спсДаты = СтрЗаменить(СокрЛП(Д),".",РазделительСтрок);
   //разбираем день
   стрДень = СокрЛП(Число(СтрПолучитьСтроку(спсДаты,1)));
   Если СтрДлина(стрДень)=1 Тогда
      стрДень = спсЧисл.ПолучитьЗначение(Число(стрДень));
   Иначе
      десДень = Число(Лев(стрДень,1));
      едДень = Число(Прав(стрДень,1));
      
      Если едДень=0 Тогда
         стрДень = спсДес.ПолучитьЗначение(десДень);
      Иначе
         Если десДень>1 Тогда
            т = ""; спсДес.ПолучитьЗначение(десДень,т);
            стрДень = т+" "+спсЧисл.ПолучитьЗначение(едДень);
         Иначе
            стрДень = спсСубДес.ПолучитьЗначение(едДень);
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
   //разбираем месяц
   стрМес = спсМес.ПолучитьЗначение(Число(СтрПолучитьСтроку(спсДаты,2)));
   
   //разбираем год
   стрГод = СтрПолучитьСтроку(спсДаты,3);
   длинаГода = СтрДлина(стрГод);
   Если длинаГода=4 Тогда
      тыс = Сред(стрГод,1,1); сот = Сред(стрГод,2,1); дес = Сред(стрГод,3,1); ед = Сред(стрГод,4,1);
      _т = спсЧислИм.ПолучитьЗначение(Число(тыс));
      Если (Число(сот)=0) и (Число(дес)=0) и (Число(ед)=0) Тогда
         миллениум = ""; спсЧислИм.ПолучитьЗначение(Число(тыс),миллениум);
         стрГод = миллениум;
      Иначе
         с = ""; дс = ""; е = "";
         Если Число(сот)<>0 Тогда
            с = спсСотни.ПолучитьЗначение(Число(сот));
         КонецЕсли;
         Если Число(дес)<>0 Тогда
            Если Число(ед)=0 Тогда
               _дг = ""; спсДесИм.ПолучитьЗначение(Число(дес),_дг);
               дс = _дг;
            Иначе
               Если Число(дес)>1 Тогда
                  дс = спсДесИм.ПолучитьЗначение(Число(дес));
               Иначе
                  дс = спсСубДесРод.ПолучитьЗначение(Число(ед));
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;
         Если (Число(дес)>1) или (Число(дес)=0) Тогда
            Если Число(ед)<>0 Тогда
               //е = "";
               спсЧисл.ПолучитьЗначение(Число(ед),е);
            КонецЕсли;
         КонецЕсли;
         стрГод = _т+?(ПустоеЗначение(с)=0," ","")+с+?(ПУстоеЗначение(дс)=0," ","")+дс+" "+е;
      КонецЕсли;
   Иначе
      
   КонецЕсли;
   стрГод = стрГод+" года";
   стрРез = стрДень+" "+стрМес+" "+стрГод;
   //Сообщить(стрДень+" "+стрМес+" "+стрГод);
   Возврат стрРез;
КонецФункции

Оффлайн Shok

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-27
  • Сайт: 
Если на 7,,,то
// ПрописьДата()
Функция глПрописьДата(Д) Экспорт
   стрРез = "";
   
   спсМес = СоздатьОбъект("СписокЗначений");
   спсМес.ДобавитьЗначение("января");
   спсМес.ДобавитьЗначение("февраля");
   спсМес.ДобавитьЗначение("марта");
   спсМес.ДобавитьЗначение("апреля");
   спсМес.ДобавитьЗначение("мая");
   спсМес.ДобавитьЗначение("июня");
   спсМес.ДобавитьЗначение("июля");
   спсМес.ДобавитьЗначение("августа");
   спсМес.ДобавитьЗначение("сентября");
   спсМес.ДобавитьЗначение("октября");
   спсМес.ДобавитьЗначение("ноября");
   спсМес.ДобавитьЗначение("декабря");
   
   спсЧисл = СоздатьОбъект("СписокЗначений");
   спсЧисл.ДобавитьЗначение("первое","первого");
   спсЧисл.ДобавитьЗначение("второе","второго");
   спсЧисл.ДобавитьЗначение("третье","третьего");
   спсЧисл.ДобавитьЗначение("четвертое","четвертого");
   спсЧисл.ДобавитьЗначение("пятое","пятого");
   спсЧисл.ДобавитьЗначение("шестое","шестого");
   спсЧисл.ДобавитьЗначение("седьмое","седьмого");
   спсЧисл.ДобавитьЗначение("восьмое","восьмого");
   спсЧисл.ДобавитьЗначение("девятое","девятого");
   
   //числительные им.падеж
   спсЧислИм = СоздатьОбъект("СписокЗначений");
   спсЧислИм.ДобавитьЗначение("тысяча","тысячного");
   спсЧислИм.ДобавитьЗначение("две тысячи","двухтысячного");
   спсЧислИм.ДобавитьЗначение("три тысячи","трехтысячного");
   спсЧислИм.ДобавитьЗначение("четыре тысячи","четырёхтысячного");
   спсЧислИм.ДобавитьЗначение("пять","пятитысячного");
   спсЧислИм.ДобавитьЗначение("шесть","шеститысячного");
   спсЧислИм.ДобавитьЗначение("семь","семитысячного");
   спсЧислИм.ДобавитьЗначение("восемь","восьмитысячного");
   спсЧислИм.ДобавитьЗначение("девять","девятитысячного");
   
   спсСотни = СоздатьОбъект("СписокЗначений");
   спсСотни.ДобавитьЗначение("сто");
   спсСотни.ДобавитьЗначение("двести");
   спсСотни.ДобавитьЗначение("триста");
   спсСотни.ДобавитьЗначение("четыреста");
   спсСотни.ДобавитьЗначение("пятьсот");
   спсСотни.ДобавитьЗначение("шестьсот");
   спсСотни.ДобавитьЗначение("семьсот");
   спсСотни.ДобавитьЗначение("восемьсот");
   спсСотни.ДобавитьЗначение("девятьсот");
   
   //десятки им.падеж
   спсДесИм = СоздатьОбъект("СписокЗначений");
   спсДесИм.ДобавитьЗначение("","десятого");
   спсДесИм.ДобавитьЗначение("двадцать","двадцатого");
   спсДесИм.ДобавитьЗначение("тридцать","тридцатого");
   спсДесИм.ДобавитьЗначение("сорок","сорокового");
   спсДесИм.ДобавитьЗначение("пятьдесят","пятидесятого");
   спсДесИм.ДобавитьЗначение("шестьдесят","шестидесятого");
   спсДесИм.ДобавитьЗначение("семьдесят","семидесятого");
   спсДесИм.ДобавитьЗначение("восемьдесят","восьмидесятого");
   спсДесИм.ДобавитьЗначение("девяносто","девяностого");
   
   //субдесятки род.падеж
   спсСубДесРод = СоздатьОбъект("СписокЗначений");
   спсСубДесРод.ДобавитьЗначение("одиннадцатого");
   спсСубДесРод.ДобавитьЗначение("двенадцатого");
   спсСубДесРод.ДобавитьЗначение("тринадцатого");
   спсСубДесРод.ДобавитьЗначение("четырнадцатого");
   спсСубДесРод.ДобавитьЗначение("пятнадцатого");
   спсСубДесРод.ДобавитьЗначение("шестнадцатого");
   спсСубДесРод.ДобавитьЗначение("семнадцатого");
   спсСубДесРод.ДобавитьЗначение("восемнадцатого");
   спсСубДесРод.ДобавитьЗначение("девятнадцатого");
   
   спсДес = СоздатьОбъект("СписокЗначений");
   спсДес.ДобавитьЗначение("десятое");
   спсДес.ДобавитьЗначение("двадцатое","двадцать");
   спсДес.ДобавитьЗначение("тридцатое","тридцать");
   спсДес.ДобавитьЗначение("сороковое","тридцать");
   спсДес.ДобавитьЗначение("пятидесятое","тридцать");
   спсДес.ДобавитьЗначение("шестидесятое","тридцать");
   спсДес.ДобавитьЗначение("семидесятое","тридцать");
   
   спсСубДес = СоздатьОбъект("СписокЗначений");
   спсСубДес.ДобавитьЗначение("одиннадцатое");
   спсСубДес.ДобавитьЗначение("двенадцатое");
   спсСубДес.ДобавитьЗначение("тринадцатое");
   спсСубДес.ДобавитьЗначение("четырнадцатое");
   спсСубДес.ДобавитьЗначение("пятнадцатое");
   спсСубДес.ДобавитьЗначение("шестнадцатое");
   спсСубДес.ДобавитьЗначение("семнадцатое");
   спсСубДес.ДобавитьЗначение("восемнадцатое");
   спсСубДес.ДобавитьЗначение("девятнадцатое");
   
   спсДаты = СтрЗаменить(СокрЛП(Д),".",РазделительСтрок);
   //разбираем день
   стрДень = СокрЛП(Число(СтрПолучитьСтроку(спсДаты,1)));
   Если СтрДлина(стрДень)=1 Тогда
      стрДень = спсЧисл.ПолучитьЗначение(Число(стрДень));
   Иначе
      десДень = Число(Лев(стрДень,1));
      едДень = Число(Прав(стрДень,1));
      
      Если едДень=0 Тогда
         стрДень = спсДес.ПолучитьЗначение(десДень);
      Иначе
         Если десДень>1 Тогда
            т = ""; спсДес.ПолучитьЗначение(десДень,т);
            стрДень = т+" "+спсЧисл.ПолучитьЗначение(едДень);
         Иначе
            стрДень = спсСубДес.ПолучитьЗначение(едДень);
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
   //разбираем месяц
   стрМес = спсМес.ПолучитьЗначение(Число(СтрПолучитьСтроку(спсДаты,2)));
   
   //разбираем год
   стрГод = СтрПолучитьСтроку(спсДаты,3);
   длинаГода = СтрДлина(стрГод);
   Если длинаГода=4 Тогда
      тыс = Сред(стрГод,1,1); сот = Сред(стрГод,2,1); дес = Сред(стрГод,3,1); ед = Сред(стрГод,4,1);
      _т = спсЧислИм.ПолучитьЗначение(Число(тыс));
      Если (Число(сот)=0) и (Число(дес)=0) и (Число(ед)=0) Тогда
         миллениум = ""; спсЧислИм.ПолучитьЗначение(Число(тыс),миллениум);
         стрГод = миллениум;
      Иначе
         с = ""; дс = ""; е = "";
         Если Число(сот)<>0 Тогда
            с = спсСотни.ПолучитьЗначение(Число(сот));
         КонецЕсли;
         Если Число(дес)<>0 Тогда
            Если Число(ед)=0 Тогда
               _дг = ""; спсДесИм.ПолучитьЗначение(Число(дес),_дг);
               дс = _дг;
            Иначе
               Если Число(дес)>1 Тогда
                  дс = спсДесИм.ПолучитьЗначение(Число(дес));
               Иначе
                  дс = спсСубДесРод.ПолучитьЗначение(Число(ед));
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;
         Если (Число(дес)>1) или (Число(дес)=0) Тогда
            Если Число(ед)<>0 Тогда
               //е = "";
               спсЧисл.ПолучитьЗначение(Число(ед),е);
            КонецЕсли;
         КонецЕсли;
         стрГод = _т+?(ПустоеЗначение(с)=0," ","")+с+?(ПУстоеЗначение(дс)=0," ","")+дс+" "+е;
      КонецЕсли;
   Иначе
      
   КонецЕсли;
   стрГод = стрГод+" года";
   стрРез = стрДень+" "+стрМес+" "+стрГод;
   //Сообщить(стрДень+" "+стрМес+" "+стрГод);
   Возврат стрРез;
КонецФункции

Большое большое Спасибо! Очень долго искал.. Хорошо что есть добрые люди)

Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С

Оффлайн vasya1

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-23
  • Сайт: 
  • Профессия: Бухгалтер
Здравствуйте. Стесняюсь спросить... по пунктам можете рассказать куда это вставить, чтобы в счёте всё это работало? Спасибо.

Оффлайн volodya1122

  • ***
  • Сообщений: 215
  • РЕПУТАЦИЯ: 31
  • КПД: 14%
  • Регистрация: 2011-01-24
  • Сайт: 
  • Профессия: Программист 7.7
Этот текст вставить в глобальный модуль (между любыми функциями или процедурами).
в печатной форме счета где нудно написать дату прописю вставить выражение  глПрописьДата(ДатаДок)

Оффлайн andrey-ekt

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-05
  • Сайт: 
  • Профессия: Ученик 1С
Почету-то день и месяц пишет прописью, а год цифрой причем только последние 2, т.е. шестое августа 14 года


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
71 Сообщений
oooo800
33 Сообщений
LexaK
32 Сообщений
Дмитрий Джей Дмитрий Джей
28 Сообщений
IL2016
25 Сообщений
antoneus antoneus
21 Сообщений
DmitriyF DmitriyF
17 Сообщений
Ann_
16 Сообщений
SoOliateR
13 Сообщений
мадам брошкина
13 Сообщений

* Кто онлайн

  • Точка Гостей: 127
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal