Дата в запросе 1С

Дата в запросе 1С

Содержание

Тип «Дата» в 1С входит в число 4 основных типов данных наряду с числом, строкой и булево. В конфигурациях даты встречаются повсеместно – при разработке невозможно избежать работы с этим типом данных. Поэтому лучше начинать писать запросы, уже понимая, как обрабатывать даты, какие есть возможности для работы с ними, как они хранятся, а до этого «безопаснее» использовать услуги программистов по доработке 1С, которые предоставляют большинство компаний-франчайзи. Рассмотрим на примерах все нюансы написания запросов с различными датами.

Примеры работы с датами в запросах 1С

В первую очередь, необходимо получить дату в запросе в нужном формате – со временем или без него. Выполнить эту задачу можно несколькими путями:

  1. Передать через параметр. Получить текущую дату сеанса можно только этим методом;
  2. Получить дату в запросе из поля выборки;
  3. Преобразовать из числовых значений с помощью функции ДАТАВРЕМЯ().

Самой распространенной задачей при работе с документами является проверка на пустую дату в запросе 1С. В этом случае легче всего сравнить переменную или поле с пустой датой, которая получается с помощью функции ДАТАВРЕМЯ(1,1,1):

ДАТАВРЕМЯ (1, 1, 1)

Аналогичной командой можно получить произвольную дату и время в запросе. При этом их можно указать с точностью до секунды, задав в качестве параметров 6 чисел. Если же используется только 3 числа, то часы, минуты и секунды будут приравнены к 0 (начало дня). Например, нам необходимо в запросе выбрать документы за первые 10 дней января 2018 года:

ВЫБРАТЬ ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет ГДЕ ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ ДАТАВРЕМЯ(2018, 1, 1, 0, 0, 0) И ДАТАВРЕМЯ(2018, 1, 10, 23, 59, 59)

В запросе на встроенном языке 1С можно не только выбирать различные поля и получать параметры. Существует множество функций, облегчающих форматирование даты под нужды конкретной задачи. Если вы часто работаете с датами в запросе, то вы должны знать эти команды:

  • НАЧАЛОПЕРИОДА. В качестве параметров указывается дата и промежуток времени, в разрезе которого необходимо получить начало даты. Используется, чтобы преобразовать дату к формату без времени. Для этого необходимо задать второй параметр – «ДЕНЬ»;

НАЧАЛОПЕРИОДА(, ) НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)

  • КОНЕЦПЕРИОДА. Аналогичная команда, возвращающая последнюю дату в разрезе указанных в параметрах единиц;
  • ДОБАВИТЬКДАТЕ. Позволяет получить дату, большую на заданное количество указанных единиц времени. В качестве параметров функции указывают дату, единицу измерения времени и число;

ДОБАВИТЬКДАТЕ(, , ) ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, 10)

  • РАЗНОСТЬДАТ. Получает разницу между датами в указанных единицах измерения;

РАЗНОСТЬДАТ(, , ) РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ)

  • ДЕНЬНЕДЕЛИ. Вернет порядковый номер одного из дней недели.

Грамотно применяя эти функции, разработчик может решать достаточно нетривиальные задачи. К примеру, получение наименования дня недели текущей даты в запросе в виде строки:

ВЫБОР КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 1 ТОГДА «понедельник» КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 2 ТОГДА «вторник» КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 3 ТОГДА «среда» КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 4 ТОГДА «четверг» КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 5 ТОГДА «пятница» КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 6 ТОГДА «суббота» ИНАЧЕ «Воскресенье» КОНЕЦ

Преобразование типов в запросе 1С из числа или строки в дату – трудоемкое занятие. Из чисел можно получить дату с помощью функции ДАТАВРЕМЯ, из строки – комбинируя функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА ТОГДА ИНАЧЕ. Исходя из этого, разработчики предпочитают получать дату из других типов в модуле и передавать ее в запрос с помощью параметра. К сожалению, это не всегда реализуемо, поэтому приходится менять формат даты в запросе.

Есть возможность указать дату в запросе 1С в качестве параметра для получения данных из виртуальных таблиц регистров. В этой роли также можно использовать все вышеперечисленные функции. Но здесь важно не допустить, чтобы пустая дата в запросе 1С могла сказаться на конечном результате выполнения кода, поэтому обязательно надо делать проверку.

Надеемся, статья была вам полезна. Если у вас остались вопросы по указанию даты в запросе, обратитесь к нашим специалистам в рамках консультационных услуг по 1С, мы обязательно вам поможем.

484 пользователя считают данную страницу полезной. Информация актуальна! Страница была обновлена 16.12.2019

Дата в запросе в 1С может быть получена:

  • как значение полей выборки,
  • как параметр запроса
  • как результат исполнения встроенных функций языка запроса
  • ДАТАВРЕМЯ
  • ДОБАВИТЬКДАТЕ
  • НАЧАЛОПЕРИОДА
  • КОНЕЦПЕРИОДА

Текущая дата(и время) в запросе 1С получается только в качестве параметра.

Получение дат

Как передать текущую дату в запрос?

Запрос . УстановитьПараметр ( «ТекущаяДата» , ТекущаяДата ( ) ) ;
тзРезультатЗапроса = Запрос . Выполнить ( ) . Выгрузить ( ) ;

Далее приводятся только тексты запросов.

Как получить начало текущего месяца?

Как получить полдень текущей даты?

Добавим использование функции ДОБАВИТЬКДАТЕ(ДАТА,<ГОД,КВАРТАЛ,МЕСЯЦ,ДЕКАДА,НЕДЕЛЯ,ДЕНЬ>,ЧИСЛО)

Возможно задать дату с точностью до секунды?

Вычисления над датами

Как получить номер текущего месяца?

Как получить день недели?

Сколько осталось до Нового года?

Что еще следует знать про дату в запросах?

Дата в запросах может фигурировать не только в полях выборки, и вычислениях, но также передаваться, как параметры виртуальных таблиц.

  • для среза последних значений в регистре сведений в качестве момента на которое берется значение. Если периодичность регистра не совпадает с переданным параметром, система обрежет лишние (секунда, дни в зависимости от), округления не происходит
  • для остатков регистра накопления в качестве дата остатка
  • для оборотов регистров бухгалтерии или регистра накопления (НачалоПериода,КонецПериода)
  • других виртуальных таблиц

Допустимо задание дат-констант и использование параметров, также обработка их выше приведенными функциями.

Но нельзя дату передать в параметры виртуальных таблиц из полученных ранее в этом запросе полей выборки.

Сортировка даты в запросе производится в рамках секунды.

Момент времени документа не является датой, он сортирует более глубже, чем дата документа, т.е. при наличии документов в одну секунду времени, сортировка по дате производится в недопустимом порядке: например в виде представления. Используйте для этого момент времени.

Внешнее представление даты определяется представлением операционной системы, управлять из запроса, а также приводить в строковое представление в классическом запросе невозможно в отличии от СКД, где возможна пост-обработка и условное оформление.

Допускается применение функции МАКСИМУМ(),МИНИМУМ() к дата в запросе, как в группировке так и в итогах запроса.

Ошибка «неверные параметры» возникает в случае, когда вместо даты передается null, число или что-то иное.

Преобразовать строку в дату в запросе

Специальных функций нет. но возможно преобразование через функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА

Можно дурачить всех все время, — при условии, что реклама ведется правильно, а расходы на нее достаточно велики.

Сергей Лунев

Тип «Дата» в 1С входит в число 4 основных типов данных наряду с числом, строкой и булево. В конфигурациях даты встречаются повсеместно – при разработке невозможно избежать работы с этим типом данных. Поэтому лучше начинать писать запросы, уже понимая, как обрабатывать даты, какие есть возможности для работы с ними, как они хранятся, а до этого «безопаснее» использовать услуги программистов по доработке 1С, которые предоставляют большинство компаний-франчайзи. Рассмотрим на примерах все нюансы написания запросов с различными датами.

Примеры работы с датами в запросах 1С

В первую очередь, необходимо получить дату в запросе в нужном формате – со временем или без него. Выполнить эту задачу можно несколькими путями:

  1. Передать через параметр. Получить текущую дату сеанса можно только этим методом;
  2. Получить дату в запросе из поля выборки;
  3. Преобразовать из числовых значений с помощью функции ДАТАВРЕМЯ().

Самой распространенной задачей при работе с документами является проверка на пустую дату в запросе 1С. В этом случае легче всего сравнить переменную или поле с пустой датой, которая получается с помощью функции ДАТАВРЕМЯ(1,1,1):

Аналогичной командой можно получить произвольную дату и время в запросе. При этом их можно указать с точностью до секунды, задав в качестве параметров 6 чисел. Если же используется только 3 числа, то часы, минуты и секунды будут приравнены к 0 (начало дня). Например, нам необходимо в запросе выбрать документы за первые 10 дней января 2018 года:

В запросе на встроенном языке 1С можно не только выбирать различные поля и получать параметры. Существует множество функций, облегчающих форматирование даты под нужды конкретной задачи. Если вы часто работаете с датами в запросе, то вы должны знать эти команды:

  • НАЧАЛОПЕРИОДА. В качестве параметров указывается дата и промежуток времени, в разрезе которого необходимо получить начало даты. Используется, чтобы преобразовать дату к формату без времени. Для этого необходимо задать второй параметр – «ДЕНЬ»;
  • КОНЕЦПЕРИОДА. Аналогичная команда, возвращающая последнюю дату в разрезе указанных в параметрах единиц;
  • ДОБАВИТЬКДАТЕ. Позволяет получить дату, большую на заданное количество указанных единиц времени. В качестве параметров функции указывают дату, единицу измерения времени и число;
  • РАЗНОСТЬДАТ. Получает разницу между датами в указанных единицах измерения;
  • ДЕНЬНЕДЕЛИ. Вернет порядковый номер одного из дней недели.

Грамотно применяя эти функции, разработчик может решать достаточно нетривиальные задачи. К примеру, получение наименования дня недели текущей даты в запросе в виде строки:

Преобразование типов в запросе 1С из числа или строки в дату – трудоемкое занятие. Из чисел можно получить дату с помощью функции ДАТАВРЕМЯ, из строки – комбинируя функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА ТОГДА ИНАЧЕ. Исходя из этого, разработчики предпочитают получать дату из других типов в модуле и передавать ее в запрос с помощью параметра. К сожалению, это не всегда реализуемо, поэтому приходится менять формат даты в запросе.

Есть возможность указать дату в запросе 1С в качестве параметра для получения данных из виртуальных таблиц регистров. В этой роли также можно использовать все вышеперечисленные функции. Но здесь важно не допустить, чтобы пустая дата в запросе 1С могла сказаться на конечном результате выполнения кода, поэтому обязательно надо делать проверку.

Надеемся, статья была вам полезна. Если у вас остались вопросы по указанию даты в запросе, обратитесь к нашим специалистам в рамках консультационных услуг по 1С, мы обязательно вам поможем.

Иногда бывает необходимо из даты вида ‘20150120134450’ выделить просто время, т.е. сделать дату следующего вида ‘00010101134450’. Как это осуществить в запросе?
Очень просто!

Для этого вам необходимо с помощью функции РазностьДата узнать количество секунд между началом дня текущей даты и самой датой. Следующим шагом, Вы с помощью функции ДобавитьКДате, добавляете к пустой дате найденное количество секунд, и получаете дату нужного вида.

Например, как в этом запросе:

Результат его выполнения можно посмотреть на картинке ниже

Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Запросы в 1С от новичка до профи». Где эти и многие другие вопросы рассматриваются более подробно.

В чем особенность этого курса:
• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
• Учебный материал грамотно скомпонован и прост в освоении;
• Несколько десятков уроков;
• Полезные практические примеры;
• Все уроки изложены понятным и простым языком

Для моих читателей, купон на скидку 25%: hrW0rl9Nnx

Я стараюсь как можно чаще выпускать различные интересные бесплатные статьи и видеоуроки. Поэтому буду очень рад, если Вы поддержите мой проект перечислив любую сумму:

Можете перечислить любую сумму напрямую:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.

Войдите как ученик, чтобы получить доступ к материалам школы

Язык запросов 1С 8.3 для начинающих программистов: функции для работы с датой

Автор уроков и преподаватель школы: Владимир Милькин

Функции для работы с датой в запросе

На сегодняшнем уроке мы разберём функции для работы с реквизитами типа Дата в запросах.

Мы уже сталкивались с этим типом, например, когда выводили реквизит Дата у документов.

Функция ДАТАВРЕМЯ

И самая первая функция, которую нам следует разобрать — это, конечно же, ДАТАВРЕМЯ.

В качестве параметров она принимает целочисленные Год, Месяц, День, Час, Минута и Секунда. Последние три параметра являются необязательными.

Назначение функции ДАТАВРЕМЯ состоит в конструировании даты по её отдельным компонентам.

Таким образом следующий запрос

ВЫБРАТЬ ДАТАВРЕМЯ(2013, 02, 01)

вернёт нам таблицу с типом поля ДАТА и значением 1 февраля 2013 года:

Значение часов, минут и секунд равно нулю, так как мы их не указали при вызове функции (последние три параметра).

Отступление

Отдельно обращаю ваше внимание на текст предыдущего запроса. Мы получаем таблицу как бы «из воздуха», не указывая в секции ИЗ источник данных.

Получается, что вовсе необязательно делать запрос к реально существующим таблицам базы данных. Можно конструировать эти таблицы самостоятельно, задавая константные значения полей.

Например, так (поля типа ЧИСЛО):

ВЫБРАТЬ 1, 2, 3

Или так (поля типа СТРОКА):

ВЫБРАТЬ «Привет», «,», «Мир», «!»

Или вообще вот так (поля разных типов):

ВЫБРАТЬ «Одна секунда до нового тысячелетия!», ДАТАВРЕМЯ(1999, 12, 31, 23, 59, 59), 1

Вернёмся к функциям для работы с датой.

Функция ГОД

Принимает параметр типа ДАТА. Возвращает год.

ВЫБРАТЬ ГОД(ДАТАВРЕМЯ(2013, 02, 01))

Функция КВАРТАЛ

Принимает параметр типа ДАТА. Вы читаете ознакомительную версию урока, полноценные уроки находятся . Возвращает номер квартала даты (целочисленное значение от 1 до 4).

ВЫБРАТЬ КВАРТАЛ(ДАТАВРЕМЯ(2013, 02, 01))

Функция МЕСЯЦ

Принимает параметр типа ДАТА. Возвращает номер месяца даты (целочисленное значение от 1 до 12).

ВЫБРАТЬ МЕСЯЦ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬГОДА

Принимает параметр типа ДАТА. Возвращает номер дня в году (целочисленное значение от 1 до 366).

ВЫБРАТЬ ДЕНЬГОДА(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬ

Принимает параметр типа ДАТА. Возвращает номер дня в месяце (целочисленное значение от 1 до 31).

ВЫБРАТЬ ДЕНЬ(ДАТАВРЕМЯ(2013, 02, 01))

Функция НЕДЕЛЯ

Принимает параметр типа ДАТА. Возвращает номер недели в году.

ВЫБРАТЬ НЕДЕЛЯ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬНЕДЕЛИ

Принимает параметр типа ДАТА. Возвращает номер дня недели (целочисленной значение от 1 (понедельник) до 7 (воскресенье)).

ВЫБРАТЬ ДЕНЬНЕДЕЛИ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ЧАС

Принимает параметр типа ДАТА. Возвращает час суток (целочисленное значение от 0 до 23).

ВЫБРАТЬ ЧАС(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция МИНУТА

Принимает параметр типа ДАТА. Вы читаете ознакомительную версию урока, полноценные уроки находятся . Возвращает минуты часа (целочисленное значение от 0 до 59).

ВЫБРАТЬ МИНУТА(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция СЕКУНДА

Принимает параметр типа ДАТА. Возвращает секунды минуты (целочисленное значение от 0 до 59).

ВЫБРАТЬ СЕКУНДА(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция НАЧАЛОПЕРИОДА

Принимает параметр типа ДАТА и тип периода (одно из значений МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ).

Функция предназначена для получения даты начала периода по дате, принадлежащей этому периоду.

ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), ГОД)

ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), НЕДЕЛЯ)

Функция КОНЕЦПЕРИОДА

Функция предназначена для получения даты конца периода по дате, принадлежащей этому периоду. Вы читаете ознакомительную версию урока, полноценные уроки находятся .

ВЫБРАТЬ КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), ГОД)

ВЫБРАТЬ КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), НЕДЕЛЯ)

Функция ДОБАВИТЬКДАТЕ

Функция предназначена для прибавления к дате некоторой величины.

ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2013, 02, 01), МЕСЯЦ, 1)

ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2013, 02, 01), КВАРТАЛ, 2)

Функция РАЗНОСТЬДАТ

Принимает два параметра типа ДАТА и третий параметр тип разности (одно из значений СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД).

Функция предназначена для получения разницы между двумя датами (вторым и первым параметром).

ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2013, 02, 01), ДАТАВРЕМЯ(2014, 02, 01), ГОД)

ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2013, 02, 01), ДАТАВРЕМЯ(2014, 02, 01), МЕСЯЦ)

В функции можно передавать не только константы, но и поля таблиц

Отдельно обращаю ваше внимание, что в функции можно передавать не только даты, сконструированные при помощи ДАТАВРЕМЯ, но и свойства объектов, которые мы запрашиваем из базы, имеющие тип ДАТА.

К примеру, если мы запрашиваем документы и нам известно, что свойство Дата у документа имеет тип ДАТА, это означает, что мы можем использовать его в качестве параметров для функций работающих с датой.

Вот пример:

ВЫБРАТЬ Дата, ГОД(Дата), НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ), ДАТАВРЕМЯ(1999, 01, 01) ИЗ Документ.ЗаказКлиента

Ещё раз: когда мы конструируем дату при помощи функции ДАТАВРЕМЯ, задавая конкретные значения года, месяца и числа, то получаем значение даты, которое жёстко прописано в коде и уже никогда не изменится.

Когда же мы пишем Дата, то в случае выборки из документов это означает, что вместо Дата будут подставляться даты из документов, забитых в базе.

Поэтому даты, заданные первым способом называются константными (то есть постоянными), а вторые нет.

Как вы понимаете, ничто нам не мешает использовать одновременно оба типа дат:

ВЫБРАТЬ Дата, РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1999, 01, 01), Дата, ДЕНЬ) ИЗ Документ.ЗаказКлиента

Пройдите тест

Начать тест

Момент времени:
Фирма 1С описывает так:
Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методов других объектов, имеющих тип МоментВремени.
Момент времени используется в тех случаях, когда важно различать моменты времени для объектов, имеющих одинаковую дату и время, например для сравнения положений документов на временной оси.
А своими словами:
Момент времени — комбинация даты и ссылки на документ. Позволяет разделить и упорядочить документы в пределах одной секунды, выстраивая все документы в однозначную последовательность. Получение данных при проведении на момент времени гарантирует, что будут учтены движения сделанные в ту же секунду что и проводимый документ, но находящиеся перед ним.
Но есть особенность — документы проведенные в одну и ту же секунду располагаются в произвольном порядке, а не в порядке их физического создания (как было в 7.7).
МоментВремени() — это момент непосредственно ПЕРЕД позицией документа (аналог РассчитатьРегистрыНа(ТекущийДокумент() в 7-рке), а если необходимо получить момент непосредственно после позиции документа, то используйте объект Граница
Код 1C v 8.х МоментСразуПослеДокумента = Новый Граница(ДокументСсылка,ВидГраницы.Включая)
Код 1C v 8.х // Пример создает момент времени по дате и ссылке на объект в базе данных.
Момент = Новый МоментВремени(ТекДокумент.Дата, ТекДокумент.Ссылка);
При получение остатков:
«Момент времени» — виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя ДАТУ и ССЫЛКУ НА ДОКУМЕНТ)
<Виртуальная> таблица остатков не хранится в БД, а строится в момент обращения к ней.
1. подбирается больший или равный значению ПАРАМЕТР момент времени, на который РАССЧИТАНЫ остатки
2. на этот момент получаются остатки из таблицы итогов
3. если момент времени, на который считаются остатки, не совпадает с моментом времени итогов, то остатки ДОСЧИТЫВАЮТСЯ по движениям.
Граница:
Предназначен для получения и хранения границы некоторого интервала значений. Содержит граничное значение интервала, а также признак включения или исключения граничного значения в интервал.
Используется в качестве значений свойств и параметров методов других объектов, имеющих тип Граница.
Граница используется в тех случаях, когда важно указание включения или исключения граничного значения, например при получении остатков и оборотов регистров накопления, срезов и значений регистров сведений, для задания интервалов запросов.
ВидГраницы — Определяет набор видов границ по отношению к граничному значению:
ВидГраницы.Включая — Граница включает граничное значение.
ВидГраницы.Исключая — Граница исключает граничное значение.
Код 1C v 8.х Граница = Новый Граница(Дата, ВидГраницы.Включая);
Запрос.УстановитьПараметр(«КонГраница», Граница);
Пример получения остатков на дату документа, включая его движения
Код 1C v 8.х Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток
|ИЗ
| РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&МомВрем, Физлицо = &Физик) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки»;
МомВрем = Документы.НачислениеЗарплатыРаботникамОрганизаций.НайтиПоНомеру(«00012″,»31.12.2009 23:59:59»);
Запрос.УстановитьПараметр(«МомВрем», Новый Граница(МомВрем.МоментВремени(), ВидГраницы.Включая));
Запрос.УстановитьПараметр(«Физик», Справочники.ФизическиеЛица.НайтиПоКоду(«365»));
ВывестиРезультат(Запрос.Выполнить());
Пример получения остатков на дату документа, но до его движений
Код 1C v 8.х Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток
|ИЗ
| РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&МомВрем, Физлицо = &Физик) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки»;
МомВрем = Документы.НачислениеЗарплатыРаботникамОрганизаций.НайтиПоНомеру(«00012″,»31.12.2009 23:59:59»);
Запрос.УстановитьПараметр(«МомВрем», Новый Граница(МомВрем.МоментВремени(), ВидГраницы.Исключая));
// или так: Запрос.УстановитьПараметр(«МомВрем», МомВрем.МоментВремени());
Запрос.УстановитьПараметр(«Физик», Справочники.ФизическиеЛица.НайтиПоКоду(«365»));
ВывестиРезультат(Запрос.Выполнить());
Информация взята с сайта http://helpf.pro

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *