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

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

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 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal