8.х Дата

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем xandruxa, 22 апр 2009.

  1. TopicStarter Overlay
    xandruxa
    Offline

    xandruxa

    Регистрация:
    25 фев 2009
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Дак я по этой теме и спрашиваю. Или мне надо было новую тему открывать, чтобы другой вопрос по этой же теме задать?)
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    НачалоМесяца(ТекущаяДата()) и КонецМесяца(ТекущаяДата())
  3. TopicStarter Overlay
    xandruxa
    Offline

    xandruxa

    Регистрация:
    25 фев 2009
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Ругается на НачалоМесяца<<?>>(ТекущаяДата())
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Код покажи. Или может скобку пропустил?
  5. TopicStarter Overlay
    xandruxa
    Offline

    xandruxa

    Регистрация:
    25 фев 2009
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Код:
    Если ОтображатьОстаток Тогда 
    ТекстПостроителя = ТекстПостроителя + Символы.ПС + 
    " НачалоМесяца(ТекущаяДата()) - Месяц(франПодпискаСрезПоследних.ДатаНачала) КАК Остаток,";
    КонецЕсли;
    
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Во-первых, "НачалоМесяца" возвращает значение типа дата, а "Месяц" - число. Так что, если бы и сработало, то результат был бы неправильный.
    Во-вторых, запросы работают только с функциями языка запросов, а "НачалоМесяца" - это функция встроенного языка 1с. В данном случае, если нужно найти разницу в месяцах, придется текущий месяц передавать в запрос параметром, а рассчитывать его вне запроса как Месяц(ТекущаяДата()).
    В-третьих, у Вас не учитывается ситуация, когда даты находятся в разных годах (например, Декабрь 2008 - Январь 2009), я бы номер месяца рассчитывал как Год*12+Месяц.
  7. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну есть же в запросе функция РазностьДат(вычитаемая дата, ВычитательнаяДата, тип)
    т.е например РазностьДат(&Дата1, &ТекущаяДата, Месяц) вернет разницу в месяцах для &ТекущаяДата-&Дата1

    П.С. тестил только для типа день, но думаю для типа Месяц функция сначала обрабатывает обе даты фунцией Месяц() и получает числовое представление месяца, а потом обычная арифметическая операция вычитания....

    П.П.С. Зачем человека смущаете, он же сейчас будет извне пробывать передать, вместо того чтобы все сделать в запросе....
  8. TopicStarter Overlay
    xandruxa
    Offline

    xandruxa

    Регистрация:
    25 фев 2009
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    А рассчитав значение как его правильно в запрос передать?
  9. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    Запрос.установитьПараметр("<ИмяПараметра>", <ЗначениеПараметра>);

    вообще есть такая штука как справка, находится в конфигураторе, вызывается по Shift+F1 или Shift+Ctrl+F1.....

Поделиться этой страницей