Разность дат 1с не в запросе
Здравствуйте! Кто может помочь? Не могу понять где ошибаюсь. Есть на форме четыре поля: ДатаНачала, ДатаОкончания, ТекущаяДата, СтажРаботы. Мне нужно чтобы поле СтажРаботы высчитывалось либо как ТекущаяДата - ДатаНачала при условии что ДатаОкончания - пустое, либо как ДатаОкончания - ДатаНачала при условии что ДатаОкончания - не пустое. И еще подскажите как сделать чтобы ТекущаяДата формировалось автоматически из времени системы.
Ошибка в разности ДАТ
Привет всем. Подскажите в чем ошибка: Хочу поставить -1 день; - 2 день; - 3 день Но выходит.
Функция разности дат
Вообщем есть дата например 16.02.2009 надо отнять от нее 13 дней, те получить дату 03.02.2009.
Период из запроса разбить на начало периода и конец периода
есть запрос "выбрать оборотыпродажи. период как период из продажиобороты " на выходе имеем.
Расчет разности дат в запросе
Здравствуйте. Делаю собственную конфигурацию в 1с 8.3. Есть справочник "ЭтапыДоговоров", с.
Ledgik, Если только для цели указания начала дня то вообще никакого кода не надо
Делать надо все в конфигураторе. Формат
Вроде бы собрал код. Все работает. Правда значение период вычисляются только если нажму на кнопку запись.
если коротко, то
НЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕТТ ТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
Абсолютно левый код, ни откуда не вызывается никуда не отправляется. Берем удаляем и. о чудо. НИЧЕГО не меняется в работе
&НаКлиенте
Процедура ПриОткрытииДанных(Отказ)
* * *Стр = *Элементы.ТЧРасчет.ТекущиеДанные;
* * Если НЕ ЗначениеЗаполнено(Стр.ДатаОкончания) Тогда
* * * * *Стр.Период = (ТекущаяДата()-Стр.ДатаНачала)/(60*60*24);
* * Иначе
* * * * *Стр.Период = (Стр.ДатаОкончания-Стр.ДатаНачала)/(60*60*24);
* * КонецЕсли;
КонецПроцедуры
Бред. Откуда взяли?
И получается что работает только одна процедура ПередЗаписьюДанных
Только почему она а не ПриИзменении реквизитов ТЧ?
Резюме. Без обид. Это не код. Это набор текста имитирующего код
Вот я и пытаюсь разобраться во всем этом. Недавно прошел обучение на курсах, но там все сводилось к созданию справочников, регистров, документов, отчетов. И общая инфа по синтаксис-справочнику. А вот про то как заставить программно заработать тот или иной элемент или объект ничего и не рассказали. И ведь учебный центр входит в систему 1С. Все книги которые смотрю сводятся лишь: зайди сюда; создай то; нажми это; и все! Я вот и взялся ковыряться в создаваемой базе чтобы понять что и как. Да и с видеокурсами таже фигня. Смотришь тему. Видишь код который нужен. Переносишь к себе в базу, а он не работает. А почему. Не знаю. Вот и сижу - набиваю шишки!
Добрый день!
Объясните, пожалуйста, как работает функция РазностьДат(дата1,дата2) ?
Она включает дни дата1,дата2 в сумму разности дат или нет?
(1) Saengmyung, там не хватает еще одного параметра, единицы измерения в которой надо получить результа.
Например
РазностьДат(дата1,дата2, ДЕНЬ)
У меня просто между датами ровно 90 дней, но даже если я ставлю условие что Разность дат Больше и равно 90, то данные с таким условием в отчет не попадают.
Хотя в консоли отчетов они попадаю нормально Оо
РАЗНОСТЬДАТ(<Выражение>, <Выражение>, Секунда | Минута | Час | День | Месяц | Квартал | Год)
В качестве первого параметра передается выражение, значение которого необходимо вычесть из значения второго параметра.
В качестве второго параметра функции передается выражение, из которого необходимо вычесть значение первого параметра.
Третий параметр содержит единицу измерения, в которой необходимо получить результат функции. В качестве третьего параметра можно использовать следующие значения: Секунда, Минута, Час, День, Месяц, Квартал, Год. При расчете результата функция игнорирует единицы измерения, которые меньше, чем указанная в данном параметре единица.
Например, если в качестве третьего параметра указать Час, то при расчете результата будут игнорироваться минуты и секунды, присутствующие в первых двух параметрах. Если же в третьем параметре указать Месяц, то игнорироваться будут дни, часы, минуты и секунды.
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), СЕКУНДА) // 82 652
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), МИНУТА) // 1 378
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), ЧАС) // 23
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), ДЕНЬ) // 1
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), МЕСЯЦ) // 1
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), КВАРТАЛ) // 1
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 12, 31, 10, 20, 34), ДАТАВРЕМЯ(2003, 01, 01, 9, 18, 06), ГОД) // 1
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), СЕКУНДА) // 31 535 999
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), МИНУТА) // 525 599
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), ЧАС) // 8 759
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), ДЕНЬ) // 364
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), МЕСЯЦ) // 11
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), КВАРТАЛ) // 3
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 01, 01, 0, 0, 0), ДАТАВРЕМЯ(2002, 12, 31, 23, 59, 59), ГОД) // 0
Ввод дополнительного ежегодного отпуска 2
Вид расчета, используемый для начисления оплаты дополнительного ежегодного отпуска , описывается в плане видов расчета Основные начисления организаций . Новый вид расчета удобнее создать копированием предопределенного вида расчета Оплата отпуска п Вычислить возраст человека и выразить его прописью 0
Основная функция будет использовать в себе три вспомогательных: Функция РазностьМеждуДатамиВМесяцах(Дата1,Дата2) Год1 = Год(Дата1); Год2 = Год(Дата2); Месяц1 = Месяц(Дата1); Месяц2 = Месяц(Дата2); День1 = День(Дата1); День2 = День(Дата2); Рез Динамический отчет на СКД с разными вариантами 4
На днях делал несколько однотипных отчетов на СКД. Общий принцип: формируются все варианты отчета, указанные в настройках схемы и каждый вариант выводится на отдельной вкладке. Потом возникла мысль попробовать объединить все схемы в один отчет Дополнение результата запроса Датами в Установленном ПЕРИОДЕ 1
Иногда возникает необходимость вывести в отчет информацию таким образом, чтобы некоторые итоговые значения были рассчитаны на каждую дату в заданном интервале с указанной периодичностью. Например, требуется получить обороты по неделям вне зависимости Как вычислить количество дней между датами 6
Запрос=Новый Запрос(" ВЫБРАТЬ | РАЗНОСТЬДАТ( НачалоПериода, КонецПериода,МЕСЯЦ) КАК Месяцев, | РАЗНОСТЬДАТ( НачалоПериода, КонецПериода,ДЕНЬ) КАК Дней" ); // или КоличествоДней = (ДатаКонец - ДатаНачала) / 60 / 60 / 24; КоличествоДней = ДатаКо Посмотреть все результаты поиска похожих
Еще в этой же категории
Момент Времени и Граница, назначение, примеры использования 39
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp) 17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью 11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах 10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)
РАЗНОСТЬДАТ(, , Секунда | Минута | Час | День | Месяц | Квартал | Год)
В качестве первого параметра передается выражение, значение которого необходимо вычесть из значения второго параметра.
В качестве второго параметра функции передается выражение, из которого необходимо вычесть значение первого параметра.
Третий параметр содержит единицу измерения, в которой необходимо получить результат функции. В качестве третьего параметра можно использовать следующие значения: Секунда, Минута, Час, День, Месяц, Квартал, Год. При расчете результата функция игнорирует единицы измерения, которые меньше, чем указанная в данном параметре единица.
Например, если в качестве третьего параметра указать Час, то при расчете результата будут игнорироваться минуты и секунды, присутствующие в первых двух параметрах. Если же в третьем параметре указать Месяц, то игнорироваться будут дни, часы, минуты и секунды.
Рассмотрим, какие значения будет возвращать функция при различных значениях третьего параметра:
Код 1C v 8.х
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
Значения NULL ( ЕСТЬ NULL и ЕСТЬNULL()) 48
NULL – отсутствующие значения. Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено. NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа. NULL значения появляются в 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 23
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 19
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Посмотреть все в категории Запросы
Ввод дополнительного ежегодного отпуска 2
Вид расчета, используемый для начисления оплаты дополнительного ежегодного отпуска , описывается в плане видов расчета Основные начисления организаций . Новый вид расчета удобнее создать копированием предопределенного вида расчета Оплата отпуска п Вычислить возраст человека и выразить его прописью 0
Основная функция будет использовать в себе три вспомогательных: Функция РазностьМеждуДатамиВМесяцах(Дата1,Дата2) Год1 = Год(Дата1); Год2 = Год(Дата2); Месяц1 = Месяц(Дата1); Месяц2 = Месяц(Дата2); День1 = День(Дата1); День2 = День(Дата2); Рез Дополнение результата запроса Датами в Установленном ПЕРИОДЕ 1
Иногда возникает необходимость вывести в отчет информацию таким образом, чтобы некоторые итоговые значения были рассчитаны на каждую дату в заданном интервале с указанной периодичностью. Например, требуется получить обороты по неделям вне зависимости Как вычислить количество дней между датами 6
Запрос=Новый Запрос(" ВЫБРАТЬ | РАЗНОСТЬДАТ( НачалоПериода, КонецПериода,МЕСЯЦ) КАК Месяцев, | РАЗНОСТЬДАТ( НачалоПериода, КонецПериода,ДЕНЬ) КАК Дней" ); // или КоличествоДней = (ДатаКонец - ДатаНачала) / 60 / 60 / 24; КоличествоДней = ДатаКо Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Посмотреть все результаты поиска похожих
Еще в этой же категории
Момент Времени и Граница, назначение, примеры использования 39
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp) 17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью 11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах 10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)
Читайте также: