В запросах 1С, так же как и во встроенном языке платформы 1С:Предприятие, есть функции для работы с датами. Они помогают упростить преобразования дат в запросах, избежать использования большого количества параметров. Рассмотрим эти функции.
Как задать дату в запросах 1С в виде константы
Для этого используется функция ДАТАВРЕМЯ (Год, Месяц, День, Час, Минута, Секунда). Параметры Год, Месяц и День являются обязательными, остальные — нет. Если не указать время, то системой будет установлено начало дня.
Запрос . Текст = «ВЫБРАТЬ
ДАТАВРЕМЯ (2016,09,28,12,22,00)» ; // Результат: 28 сентября 2016 12:22:00
Кроме того, в качестве параметров этой функции могут быть указаны только числа в явном виде. Нельзя в качестве параметров указывать значения других функций. Например, такая конструкция работать не будет:
Запрос . Текст = «ВЫБРАТЬ
ДАТАВРЕМЯ (Год (Источник.Дата),09,28,12,22,00)
Из Справочник.Источник КАК Источник» ;
Как получить начало или конец года, полугодия, квартала, месяца, декады, недели, дня, часа, минуты в запросах 1С
Для этого используются соответственно функции:
10 причин перейти на 1С Бухгалтерия 8 в 2023 году
- НачалоПериода (Дата, Период)
- КонецПериода (Дата, Период)
В качестве параметра Дата передается значение с типом Дата. Параметр Период может принимать одно из следующих значений: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, ДЕКАДА, МЕСЯЦ, КВАРТАЛ, ПОЛУГОДИЕ, ГОД.
Запрос . Текст = «ВЫБРАТЬ
НачалоПериода(ДАТАВРЕМЯ (2016,09,28,12,22,00), ДЕКАДА)» ; // Результат: 21 сентября 2016 0:00:00
Запрос . Текст = «ВЫБРАТЬ
КонецПериода(ДАТАВРЕМЯ (2016,09,28,12,22,00), КВАРТАЛ)» ; // Результат: 30 сентября 2016 23:59:59
Как видно из примеров, в этих функциях можно использовать другие, вложенные, функции.
Как получить в запросах 1С год, день года, квартал, месяц, неделю, день недели, день, час, минуту, секунду из даты
Для этого существуют соответствующие функции, в которые нужно передать дату в качестве параметра.
- Функция ГОД (Дата) — возвращает номер года;
- Функция ДЕНЬГОДА (Дата) — возаращает номер дня в году;
- Функция КВАРТАЛ (Дата) — возвращает номер квартала;
- Функция МЕСЯЦ (Дата) — возвращает номер месяца;
- Функция НЕДЕЛЯ (Дата) — возвращает номер недели в году;
- Функция ДЕНЬНЕДЕЛИ (Дата) — возвращает номер дня в неделе (понедельник — 1, воскресенье — 7);
- Функция ДЕНЬ (Дата) — возвращает номер дня в месяце;
- Функция ЧАС (Дата) — возвращает час;
- Функция МИНУТА (Дата) — возвращает минуты;
- Функция СЕКУНДА (Дата) — возвращает секунды.
Запрос . Текст = «ВЫБРАТЬ
ГОД(ДАТАВРЕМЯ (2016,09,28,12,22,00))» ; // Результат: 2016
Запрос . Текст = «ВЫБРАТЬ
НЕДЕЛЯ(ДАТАВРЕМЯ (2016,09,28,12,22,00))» ; // Результат: 40
Запрос . Текст = «ВЫБРАТЬ
ДЕНЬНЕДЕЛИ(ДАТАВРЕМЯ (2016,09,28,12,22,00))» ; // Результат: 3
Разница между базовой и ПРОФ 1С Бухгалтерия 8
Запрос . Текст = «ВЫБРАТЬ
ДЕНЬГОДА(ДАТАВРЕМЯ (2016,09,28,12,22,00))» ; // Результат: 272
Запрос . Текст = «ВЫБРАТЬ
ДЕНЬ(ДАТАВРЕМЯ (2016,09,28,12,22,00))» ; // Результат: 28
Как добавить к дате или отнять от даты год, полугодие, квартал, месяц, декаду, неделю, день, час, минуту, секунду в запросах 1С
Для этого используется функция ДобавитьКДате (Дата, Период, Значение).
В качестве параметра Дата передается значение с типом Дата. Параметр Период может принимать одно из следующих значений: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, ДЕКАДА, МЕСЯЦ, КВАРТАЛ, ПОЛУГОДИЕ, ГОД.
Параметр Значение показывает количество добавляемых периодов. Если период нужно вычесть, то параметр Значение должен быть отрицательным.
Запрос . Текст = «ВЫБРАТЬ
ДобавитьКДате(ДАТАВРЕМЯ(2016, 9, 28, 12, 22, 0), ПОЛУГОДИЕ, 1)» ; // Результат: 28 марта 2017 12:22:00
Запрос . Текст = «ВЫБРАТЬ
ДобавитьКДате(ДАТАВРЕМЯ(2016, 9, 28, 12, 22, 0), ДЕКАДА, -1)» ; // Результат: 18 сентября 2016 12:22:00
Как вычислить разность дат в запросах 1С
Для этого используется функция РазностьДат (Дата1, Дата2, Период).
Параметр Дата1 — дата, которую вычитают.
Параметр Дата2 — дата, из которой вычитают.
Параметр Период может принимать одно из следующих значений: СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД. Он показывает, в каких единицах мы хотим получить результат
Запрос . Текст = «ВЫБРАТЬ
РазностьДат(ДАТАВРЕМЯ(2016, 9, 28, 12, 22, 0), ДАТАВРЕМЯ(2017, 9, 28, 12, 22, 0), КВАРТАЛ)» ; // Результат: 4
Запрос . Текст = «ВЫБРАТЬ
РазностьДат(ДАТАВРЕМЯ(2016, 9, 28, 12, 22, 0), ДАТАВРЕМЯ(2017, 9, 28, 12, 22, 0), Секунда)» ; // Результат: 31 536 000
Во всех функциях, кроме функции ДАТАВРЕМЯ, в качестве параметра Дата может выступать не только конкретное значение даты (константа или параметр запроса), но и поля таблицы источника.
Раздел: Программирование Статьи по 1С Метки: язык запросов 1С
Источник: chel1c.ru
Образец УПД 2023 года
Форма универсального передаточного документа менялась уже несколько раз. Последний — 1 июля 2021 года. После последних изменений в документе появилась графа строка 5а «Документ об отгрузке N п/п», графа «Код вида товара», поле для дополнительной подписи, поменялись названия строки 8 и графы 11.
Бланк, правила и пример заполнения актуальной в 2023 формы УПД — на этой странице. Также мы разберем, что писать в каждом поле документа.
УПД с 1 июля 2021 года: изменение
С 1 июля 2021 года счет-фактура дополнен новой строкой 5а «Документ об отгрузке N п/п». В этой строке надо указать сведения о документе об отгрузке товаров. Плательщики НДС применяют счет-фактуру либо универсальный передаточный документ, но соответствующие изменения в форму УПД не внесены.
Бесплатно скачать бланк УПД (в Excel):
Получите бланк бесплатно!
Зарегистрируйтесь в онлайн-сервисе печати документов МойСклад, где вы совершенно бесплатно сможете:
- Скачать интересующий вас бланк в формате Excel или Word
- Заполнить и распечатать документ онлайн (это очень удобно)
Не знаете, как заполняется форма. Нужен пример заполнения и пояснения, что в каком поле указывать? Все это есть ниже.
Скачайте образец заполнения УПД:
Получите образец бесплатно!
Зарегистрируйтесь в онлайн-сервисе печати документов МойСклад, где вы совершенно бесплатно сможете:
- Скачать интересующий вас бланк в формате Excel или Word
- Заполнить и распечатать документ онлайн (это очень удобно)
Электронный УПД
Если в компании используют электронный документооборот, УПД можно отправлять в электронном варианте. В отличие от бумажной версии, он имеет три функциональных значения:
- cчeт-фактура,
- cчeт-фактура c расширенным набором реквизитов,
- первичный учетный документ для оформления фактов хозяйственной жизни.
МойСклад позволяет быстро обмениваться данными с системами электронного документооборота. У сервиса есть интеграции с популярными ЭДО: Такском, ЭДО Лайт, 1С Клиент ЭДО и другими. Начните работать прямо сейчас — это бесплатно!
Всем ли нужно в УПД указывать идентификатор государственного контракта в 2023 году?
Идентификатор государственного контракта в счетах-фактурах и УПД нужен, чтобы налоговой было проще контролировать отгрузку товаров (работ, услуг) в счет полученных из федерального бюджета авансовых средств.
Если вы не знаете, что писать в новой строке, то, скорее всего, вам и не понадобится ее заполнять. Строка 8 заполняется только в том случае, если вы работаете с госконтрактом, которому присвоен уникальный идентификатор.
Если у вашего контракта нет такого реквизита, то и в УПД идентификатор госконтракта указывать не нужно: в поле ставится прочерк.
Уникальные идентификаторы присваиваются госконтрактам по оборонному заказу (ст. 6.1 Федерального закона от 29.12.2012 № 275-ФЗ «О государственном оборонном заказе»), а также контрактам, которые финансируются за счет бюджетных источников (ст. 5 Закона «О федеральном бюджете на 2017 г и на плановый период 2018 и 2019 г, постановление Правительства Российской Федерации от 30.12.2016 № 1552).
Правила заполнения УПД по новому образцу
Документ по-прежнему может заменять одновременно и накладную, и счет-фактуру, или быть выписан только в качестве накладной или акта. Поэтому важно правильно указать статус УПД:
- 1 — если УПД выписывается в качестве и накладной, и счет-фактуры (для операций, облагаемых НДС);
- 2 — если УПД выписывается в качестве только накладной или только акта (для операций без НДС).
Упростить заполнение УПД поможет простая инструкция ниже.
УПД со статусом 1
Подраздел со счетом-фактурой
Строка 1
Номер документа (по порядку по хронологии) и дата его составления. Максимальный срок выставления счета-фактуры — пять календарных дней с момента отгрузки товаров, оказания услуг, выполнения работ, передачи имущественных прав.
Строки 2, 2а и 2б
Сведения о продавце: название, адрес, ИНН и КПП.
Строки 3 и 4
Сведения о грузоотправителе и грузополучателе. Строки заполняются только при продаже товаров. Если счет-фактура выставляется на услуги или работы, ставится прочерк. Если организация одновременно и продавец, и грузоотправитель, то в строке 3 напишите «он же». Если же грузополучатель и покупатель одно и тоже лицо, то укажите наименование и адрес грузополучателя (писать «он же» нельзя).
Строка 5
Сведения о номере платежного поручения. Заполняется, если была предоплата, т.е. в счете-фактуре на аванс. Если предоплаты не было или она была перечислена в день отгрузки, ставится прочерк.
Строки 6, 6а и 6б
Сведения о продавце. Заполняются так же, как и сведения о покупателе.
Строка 7
Наименование и код валюты. Счет-фактура выставляется в иностранной валюте, только если цены и расчеты по договору выражены в ней (п. 7 ст.169 НК РФ).
Строка 8
Идентификатор государственного контракта. 8 строка в УПД заполняется только в том случае, если у вас есть данные. Если нет (то есть если вы не работаете с контрактом, или у вашего контракта нет идентификатора) — в строке ставится прочерк.
Табличная часть
А
Номер строки таблицы. Можно не заполнять.
Б
Код товара, работ, услуг. Для товаров — артикул, для работ — код по ОКВЭД, для услуг — код по ОКУН. Код товара, работ, услуг в УПД приводится, если нужно указать на налоговые льготы или другие особые условия.
Графы 1, 1a и 2
Наименование товаров или описание и единицы измерения выполненных работ, оказанных услуг, переданных имущественных прав. Графа 1а содержит код вида товара по единой ТН ВЭД ЕАЭС, с 1 октября 2017 года ее заполнение обязательно в отношении товаров, экспортированных из России в государства ЕАЭС — в Белоруссию, Казахстан, Армению или Киргизию (в ином случае ставится прочерк). Код товара берется из справочника кодов ТН ВЭД (утв. решением Совета Евразийской экономической комиссии от 16.07.12 № 54).
Графа 3
Количественные параметры товаров, работ, услуг. Если невозможно их определить — ставится прочерк.
Графа 4
Цена за единицу измерения (при возможности ее указания) без НДС.
Графа 5
Стоимость всего количества товаров, работу, услуг, переданных прав без НДС.
Графа 6
Сумма акциза. Заполняется только при реализации подакцизных товаров. В ином случае пишется «Без акциза».
Графа 7
Ставка НДС. Если компания освобождения по ст.145 НК РФ или в случае выставления счета-фактуры компаниями, не работающими с НДС, пишется «Без НДС».
Графа 8
Сумма НДС в рублях и копейках без округления. В случаях, указанных выше, пишется «Без НДС».
Графа 9
Стоимость всего количества товара (работ, услуг, переданных прав) с учетом НДС.
Графы 10, 10а, 11
Наименование страны происхождения и ее код по ОКСН, номер таможенной декларации. Заполняется для импортных товаров. Внимание! С 1 октября 2017 года изменилось название графы 11. Она теперь называется «Регистрационный номер таможенной декларации».
УПД со статусом 2
Не заполняются табличные графы 7 и 8 (ставка и сумма НДС), 10, 10а и 11 (страна и ГТД — они заполняются только для операций, облагаемых НДС).
Можно не заполнять табличные графы 4, 5 и 6, в подразделе со счетом-фактурой строки 2а и 2б, 3, 4, 5, 6а и 6б.
Остальные поля заполняются как описано выше.
Часто задаваемые вопросы
При оформлении УПД чем отличаются статус 1 и 2?
Статусы УПД 1 и 2 определяют назначение документа. УПД со статусом 1 можно использовать и как первичный документ для оформления хозяйственных операций, и как счет-фактуру. УПД со статусом 2 можно использовать только как первичный документ для оформления хозяйственных операций. Тогда счет-фактура составляется отдельно.
Статус при заполнении УПД имеет информационный характер. Фактический статус документа будут определять реквизиты, которые вы укажете: так, если вы присвоили документу статус 2, но при этом указали в нем НДС, то такой документ можно использовать как счет-фактуру для обоснования налогового вычета, несмотря на статус.
Где взять код товара в УПД?
Используйте артикул товара или код по ОКВЭД/ОКУН для работ/услуг, если нужно указать на налоговые льготы или другие особые условия.
Кто подписывает УПД?
Универсальный передаточный документ обязательно должны подписать ответственные лица со стороны продавца и покупателя. Для каждого представителя обеих сторон нужно указывать должность и ФИО.
Более 2 000 000 компаний уже печатают счета, накладные и другие документы в сервисе МойСклад
Подписи в УПД со стороны продавца:
- В подразделе со счетом-фактурой: подписи руководителя организации (или иного уполномоченного лица), главного бухгалтера (или иного уполномоченного лица). Если документ заполняется индивидуальным предпринимателем, то подпись ИП и указание реквизитов свидетельства о государственной регистрации ИП. Подпись уполномоченного лица, которое подписывает документ вместо предпринимателя, с 1 октября 2017 ставиться в поле для дополнительной подписи.
- В поле таблицы 10: подпись лица, передавшего товар, работы, услуги.
- В поле таблицы 13: подпись лица, ответственного за правильное оформление документа. Называется это поле в УПД «Ответственный за правильность оформления факта хозяйственной жизни». Если этот сотрудник уже ставил свою подпись в документе, то он может не подписываться в поле 13 повторно: достаточно указать должность и ФИО.
Подписи в УПД со стороны покупателя:
- В поле таблицы 15: лицо, получившее товар, работы, услуги.
- В поле таблицы 18: лицо, ответственное за правильное оформление документа. Если этот сотрудник подписался в поле 15, то здесь достаточно указать должность и ФИО.
Какие документы заменяет УПД?
УПД можно использовать вместо счета-фактуры, первичного документа или вместо обоих этих документов сразу. Бланк универсален: вы сами решаете, что заменяет УПД в конкретном случае, и исходя из этого заполняете поля.
Заменяет УПД акт выполненных работ или нет?
Заменяет. Любые организации и предприниматели, в том числе и неплательщики НДС, могут использовать вместо акта выполненных работ универсальный передаточный документ.
Обязательно ли использовать универсальный передаточный документ вместо товарной накладной?
Можно, но не обязательно. Вы вправе самостоятельно решить, что для вас будет удобнее: УПД или ТОРГ-12. Последняя с появлением УПД не вышла из употребления и оформляется так же, как и раньше. Но использование универсального передаточного документа вместо товарной накладной или другого первичного документа поможет вам упростить документооборот и уменьшить его объем.
Можно ли выписывать УПД на услуги?
Можно. Вы можете использовать УПД для оформления не только отгрузки товаров, но также и оказания услуг, выполнения работ и передачи имущественных прав. УПД на услуги заполняется по той же инструкции, что и на товары.
УПД на услуги: нужен ли акт?
Если вы оформляете оказание услуг с помощью УПД, отдельный акт составлять не нужно.
Можно ли в УПД указывать услуги и товары одновременно в 2023 году?
Можно. Налоговое законодательство РФ не требует выставлять отдельный счет-фактуру на каждый вид продукции (услуг). В одном счете-фактуре (или, соответственно, в одном УПД) можно отразить одновременно всю отгрузку (товары, работы, услуги) в адрес одного покупателя. В этом случае вы оформляете один УПД — вместо акта выполненных работ и товарной накладной одновременно. При этом важно соблюдать сроки выставления счетов-фактур — 5 календарных дней с момента отгрузки).
О выставлении одного счета-фактуры на всю отгрузку см. письмо ФНС №ЕД-4-15/17910 от 23.09.2016.
Строка 8 в УПД: обязательно заполнять или нет?
Строка 8, обязательная для включения в форму универсального передаточного документа с 1 июля 2017 года, заполняется только в том случае, если у вас есть соответствующие данные. Если их нет, в ней ставится прочерк, но сама строка обязательно должна присутствовать в форме. С 1 октября 2017 в названии строки появилось указание «При наличии»: это и означает, что она обязательна к заполнению только в случае, если у вас есть нужные данные. В противном случае ставится прочерк.
С какого года ввели УПД? С какого числа действует УПД?
Универсальный передаточный документ ввели в 2013 году. Но с 1 октября 2017 действует новый образец УПД, поэтому документы, датированные более ранним числом, недействительны.
Кстати, изменения в УПД с 1 октября 2017 не вызвали затруднений у пользователей МоегоСклада, потому что в нашем сервисе документы формируются автоматически. Мы вовремя обновляем формы документов, так что нашим пользователям не нужно искать в интернете бланки или добавлять поля на свой страх и риск вручную.
Источник: www.moysklad.ru
Работа с датами в 1С 8.2 и 8.3
Дата — это один из примитивных типов данных существующих в 1С. Также как числа и строки используется абсолютно повсеместно, и следовательно знание основных функций и принципов работы с типом “Дата” приобретают просто драматическую важность.
В начале скажем, что значение типа дата в 1С содержит точную (с точностью до 0,1 миллисекунды) дату григорианского календаря.
Типовой порядок частей даты принятый в 1С — год, месяц, день, час, минута, секунда.
Собственно простейший способ создания новой переменной типа дата является приравнивание к переменной строки цифр в одинарных кавычках (обязательно) вида ‘ГГГГММДДччммсс’ где:
- ГГГГ — четыре цифры года (включая тысячелетие и век);
- ММ — две цифры месяца;
- ДД — две цифры даты;
- чч — две цифры часа (в 24-х часовом формате);
- мм — две цифры минут;
- сс — две цифры секунд.
Часы, минуты и секунды можно не указывать, при этом они приравниваются к нулю.
Процедура ТестДата(Команда)
Сообщить(‘20170101101010’); //01.01.2017 10:10:10
Сообщить(‘20170101’); //01.01.2017 0:00:00
КонецПроцедуры
Функции работы с датами
Дата
Функция Дата() служит для создания значения типа “Дата”. Использовать ее можно двумя способами:
- Дата(x) — где параметр “x” это строка вида “ГГГГММДДччммсс”, часы, минуты и секунды можно опустить, т.е. преобразуем строку в дату;
- Дата(x, y, z, w, v, c) — в этом случае параметры “x”, “y”, “z”, “w”, “v” и “c” являются числами и означают год, месяц, день, час, минуту и секунду соответственно. Как и в предыдущем случае час, минуту и секунду можно опустить.
Процедура ТестДата(Команда)
Сообщить(Дата(«20170101101010»)); //01.01.2017 10:10:10
Сообщить(Дата(2017,1,1)); //01.01.2017 0:00:00
КонецПроцедуры
ТекущаяДата
Функция ТекущаяДата() просто возвращает текущую дату того компьютера на котором она исполняется. В клиент-серверных системах будет разумно инкапсулировать эту функцию в общем модуле (с исполнением на сервере) и использовать ее только таким образом.
Функция ДатаНаСервере(Команда)
Возврат ТекущаяДата();
КонецФункции
ТекущаяУниверсальнаяДатаВМиллисекундах
Функция ТекущаяУниверсальнаяДатаВМиллисекундах() позволяет узнать дату в миллисекундах. Данная функция доступна начиная с версии платформы 8.2.17. Замечание о клиент-серверных системах из функции выше справедливо и для этой функции.
Процедура ТестДата(Команда)
Сообщить(ТекущаяУниверсальнаяДатаВМиллисекундах()); //63 628 364 816 246
КонецПроцедуры
Год, Месяц, День, Час, Минута, Секунда
Функции Год(x), Месяц(x), День(x), Час(x), Минута(x) и Секунда(x) возвращают соответствующую часть переданной им даты “x” в виде числа.
Процедура ТестДата(Команда)
Сообщить(Год(‘20170102030405’)); //2017
Сообщить(Месяц(‘20170102030405’)); //1
Сообщить(День(‘20170102030405’)); //2
Сообщить(Час(‘20170102030405’)); //3
Сообщить(Минута(‘20170102030405’)); //4
Сообщить(Секунда(‘20170102030405’)); //5
КонецПроцедуры
Начало…
Функции вида “Начало…(x)” получают дату в параметре “x” и возвращают дату начала периода времени в соответствии с названием конкретной функции. Существуют следующие функции:
- НачалоГода;
- НачалоКвартала;
- НачалоМесяца;
- НачалоНедели;
- НачалоДня;
- НачалоЧаса;
- НачалоМинуты.
Процедура ТестДата(Команда)
Сообщить(НачалоГода(‘20170410151515’)); //01.01.2017 0:00:00
Сообщить(НачалоКвартала(‘20170410151515’)); //01.04.2017 0:00:00
Сообщить(НачалоМесяца(‘20170410151515’)); //01.04.2017 0:00:00
Сообщить(НачалоНедели(‘20170410151515’)); //10.04.2017 0:00:00
Сообщить(НачалоДня(‘20170410151515’)); //10.04.2017 0:00:00
Сообщить(НачалоЧаса(‘20170410151515’)); //10.04.2017 15:00:00
Сообщить(НачалоМинуты(‘20170410151515’)); //10.04.2017 15:15:00
КонецПроцедуры
Конец…
Функции вида “Конец…(x)” получают дату в параметре “x” и возвращают дату окончания периода времени в соответствии с названием конкретной функции. Существуют следующие функции:
- КонецГода;
- КонецКвартала;
- КонецМесяца;
- КонецНедели;
- КонецДня;
- КонецЧаса;
- КонецМинуты.
Процедура ТестДата(Команда)
Сообщить(КонецГода(‘20170410151515’)); //31.12.2017 23:59:59
Сообщить(КонецКвартала(‘20170410151515’)); //30.06.2017 23:59:59
Сообщить(КонецМесяца(‘20170410151515’)); //30.04.2017 23:59:59
Сообщить(КонецНедели(‘20170410151515’)); //16.04.2017 23:59:59
Сообщить(КонецДня(‘20170410151515’)); //10.04.2017 23:59:59
Сообщить(КонецЧаса(‘20170410151515’)); //10.04.2017 15:59:59
Сообщить(КонецМинуты(‘20170410151515’)); //10.04.2017 15:15:59
КонецПроцедуры
НеделяГода, ДеньГода
Функции НеделяГода(x) И ДеньГода(x) возвращают соответственно номер недели и номер дня в году для указанной даты “x”.
Процедура ТестДата(Команда)
Сообщить(НеделяГода(‘20170410’)); //16
Сообщить(ДеньГода(‘20170410’)); //100
КонецПроцедуры
ДеньНедели
Функция ДеньНедели(x) возвращает номер дня недели для указанной даты “x”.
Процедура ТестДата(Команда)
Сообщить(ДеньНедели(‘20170410’)); //1
КонецПроцедуры
ДобавитьМесяц
Функция ДобавитьМесяц(x, y) добавляет к дате “x” количество месяцев “y”, которое может быть отрицательным, в этом случае происходит вычитание месяцев из даты “x”.
Процедура ТестДата(Команда)
Сообщить(ДобавитьМесяц(‘20170331’, -1)); //28.02.2017 0:00:00
Сообщить(ДобавитьМесяц(‘20170228’, 2)); //28.04.2017 0:00:00
Сообщить(ДобавитьМесяц(‘20170516’, -3)); //16.02.2017 0:00:00
КонецПроцедуры
МоментВремени
МоментВремени это объект который является совокупностью даты и ссылки на какой-либо объект информационной базы. МоментВремени используется в качестве значения свойств или параметров методов других объектов, имеющих тип МоментВремени. Нужен в первую очередь для того, чтобы иметь возможность различать моменты времени для объектов имеющих одинаковую дату создания.
Процедура ТестДата(Команда)
МоментВремени1 = Новый МоментВремени(‘20161231235959’, ТекущийДокумент);
МоментВремени2 = ТекущийДокумент.МоментВремени();
Если МоментВремени1.Сравнить(МоментВремени2) = 0 Тогда
КонецПроцедуры
ВвестиДату
Функция ВвестиДату(x, y, z) вызывает диалог для ввода даты, введенная дата записывается в переменную “x”, кроме этого можно указать подсказку “y”, а также какую часть даты нужно ввести “z” Функция возвращает Истина — если ввод был произведен, Ложь — если пользователь отказался от ввода.
Процедура ТестДата(Команда)
Д = ‘00010101’;
ВвестиДату(Д, «Введите дату», ЧастиДаты.ДатаВремя);
КонецПроцедуры
Выглядит это окно примерно так:
Типовые задачи представления данных
Разность даты в днях, количество дней между датами
Простым вычитанием одной даты из другой мы можем получить разность между датами в секундах, следовательно получение любого другого типа разности (в минутах, днях и тд.) является простой арифметической операцией:
Процедура ТестДата(Команда)
Д1 = ‘20170213’;
Д2 = ‘20170425’;
РазностьВСекундах = Д2 — Д1;
РазностьВДнях = Цел(РазностьВСекундах/86400);
КонецПроцедуры
Кроме этого можно воспользоваться функцией «РАЗНОСТЬДАТ» из языка запросов:
Процедура ТестДата(Команда)
Д1 = ‘20170213’;
Д2 = ‘20170425’;
Сообщить(РазностьДатНаСервере(Д1, Д2, «ДЕНЬ»)); //71
КонецПроцедуры
Функция РазностьДатНаСервере(ДатаНачало, ДатаКонец, ТипРазности)
Запрос = Новый Запрос(«ВЫБРАТЬ РАЗНОСТЬДАТ(ДК, «+ТипРазности+») КАК РазностьДат»);
Запрос.УстановитьПараметр(«ДН», ДатаНачало);
Запрос.УстановитьПараметр(«ДК», ДатаКонец);
Возврат Запрос.Выполнить().Выгрузить()[0].РазностьДат;
КонецФункции
Таким образом можно узнать следующие типы разности дат:
Разница между датами в месяцах, количество месяцев между датами
Здесь все в точности также, как и в предыдущем пункте.
Прибавить день к дате, вычесть день из даты, отнять от даты день
Процедура ТестДата(Команда)
Сообщить(ДобавитьДень(‘20170425’, 3)); //28.04.2017 0:00:00
Сообщить(ДобавитьДень(‘20170425’, -3)); //22.04.2017 0:00:00
КонецПроцедуры
Функция ДобавитьДень(Дата, ЧислоДней)
Возврат Дата+86400*ЧислоДней;
КонецФункции
Прибавить месяц к дате, вычесть месяц из даты, отнять месяц от даты
Для прибавления/вычитания месяцев существует встроенная функция:
Процедура ТестДата(Команда)
Сообщить(ДобавитьМесяц(‘20170425’, 3)); //25.07.2017 0:00:00
Сообщить(ДобавитьМесяц(‘20170425’, -3)); //25.01.2017 0:00:00
КонецПроцедуры
День недели по дате
Процедура ТестДата(Команда)
Сообщить(ДеньНедели(‘20170425’)); //2
Сообщить(Формат(‘20170425’, «ДФ=dddd»)); //вторник
КонецПроцедуры
Сравнение дат
Так как дата в 1С это по сути количество секунд прошедшее с начала нашей эры (т.е. число) то и сравнение производится так же как и числами. У объекта «МоментВремени» существует специальный метод «Сравнить» который позволяет сравнить один объект «МоментВремени» с другим.
Процедура ТестДата(Команда)
Если МоментВремени1.Сравнить(МоментВремени2) = 0 Тогда
Сообщить(«Моменты времени равны»);
КонецПроцедуры
Дата равна нулю (проверка на заполненность), проверка на пустую дату
Процедура ТестДата(Команда)
Д1 = ‘00010101’;
Если Д1 = ‘00010101’ Тогда
Сообщить(«Пустая дата»);
Если НЕ ЗначениеЗаполнено(Д1) Тогда
Сообщить(«Пустая дата»);
Если Д1 = Дата(1,1,1) Тогда
Сообщить(«Пустая дата»);
КонецПроцедуры
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Оценка статьи:
(оценок: 14, средняя оценка: 4,50 из 5)
Источник: 1c-programmer-blog.ru