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

    0

    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

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

    • Классика. Сам регулярно использую РазностьДат что бы посчитать разность дат...
      Ответить
      • Но есть же функция глобального контекста ДобавитьМесяц
        Ответить
        • Логично пиздец. Что бы вычесть ты должен прибавить отрицательную дату.
          Ответить
    • Обращаемся к СУБД для вычислений, не трогая таблицы?
      Ответить
      • да, именно.

        В вебпараше так тоже часто бывает. А что делать? Два раза одно и тоже писать?
        Ответить
        • Для фронтенда придётся дублировать. Хотя... в «Хроме» можно использовать «SQLite»:
          https://caniuse.com/#search=websql А в «Интернет Эксплорере» можно использовать «SQL Server» через «Active X».
          Ответить

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