1. 1C / Говнокод #26012

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    Функция ДобавитьКДатеМесяц(НачальнаяДата, Количество)
    	
    	РезультатФункции = Дата("00010101");
    	
    	ЗапросПериода = Новый Запрос;
    	ЗапросПериода.УстановитьПараметр("ДатаНачала",		НачальнаяДата);
    	ЗапросПериода.УстановитьПараметр("Количество",		Количество);
    	ЗапросПериода.Текст = 
    	"ВЫБРАТЬ
    	|	ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, &Количество) КАК ДатаСмещения
    	|";
    	РезультатЗапросПериода = ЗапросПериода.Выполнить().Выбрать();
    	
    	Если РезультатЗапросПериода.Следующий() Тогда
    		РезультатФункции = РезультатЗапросПериода.ДатаСмещения;
    	КонецЕсли;
    	
    	Возврат РезультатФункции;
    	
    КонецФункции

    Запостил: pahalovo, 05 Ноября 2019

    Комментарии (7) RSS

    • Классика. Сам регулярно использую РазностьДат что бы посчитать разность дат...
      Ответить
      • Но есть же функция глобального контекста ДобавитьМесяц
        Ответить
        • Логично пиздец. Что бы вычесть ты должен прибавить отрицательную дату.
          Ответить
    • Обращаемся к СУБД для вычислений, не трогая таблицы?
      Ответить
    • Funkciq DobawitxKDateMesqc(NaчalxnaqData, Koliчestwo)
      	
      	RezulxtatFunkcii = Data(\"00010101\");
      	
      	ZaprosPerioda = Nowyj Zapros;
      	ZaprosPerioda.UstanowitxParametr(\"DataNaчala\",		NaчalxnaqData);
      	ZaprosPerioda.UstanowitxParametr(\"Koliчestwo\",		Koliчestwo);
      	ZaprosPerioda.Tekst = 
      	\"WYBRATX
      	|	DOBAWITXKDATE(&DataNaчala, MESQC, &Koliчestwo) KAK DataSmeщeniq
      	|\";
      	RezulxtatZaprosPerioda = ZaprosPerioda.Wypolnitx().Wybratx();
      	
      	Esli RezulxtatZaprosPerioda.Sleduющij() Togda
      		RezulxtatFunkcii = RezulxtatZaprosPerioda.DataSmeщeniq;
      	KonecEsli;
      	
      	Wozwrat RezulxtatFunkcii;
      	
      KonecFunkcii
      Ответить

    Добавить комментарий