Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 читайте на сайте

1C Запрос Хозрасчетный Остатки на Дату • Виды таблиц

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Запрос будет строится с помощью временных таблиц — очень удбный инструмент, так как не нужно постоянно тянуть данные из таблиц БД. 1C Запрос Хозрасчетный Остатки на Дату Обращайтесь в форму связи

Функции языка запросов 1с

Поскольку понятное описание функций языка запросов 1с встречается намного реже, чем описание конструкций, мы решили начать рассматривать именно функции. Теперь давайте разберем каждую по отдельности, описав ее назначение, синтаксис и пример использования, итак:

1. Функция ДАТАВРЕМЯ – данная функция создает константное поле с типом “Дата”.

2. Функция РАЗНОСТЬДАТ – возвращает разность двух дат в одном из измерений (год, месяц, день, час, минута, секунда). Измерение передается в параметре.

Запрос.Текст = “ВЫБРАТЬ | РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2015, 4, 17), ДАТАВРЕМЯ(2015, 2, 1), ДЕНЬ) | КАК КолвоДней”;

3. Функция ЗНАЧЕНИЕ – задает константное поле с предопределенной записью из базы данных, также можно получить пустую ссылку любого типа.

Запрос.Текст = “ВЫБРАТЬ //предопределенный элемент | ЗНАЧЕНИЕ(Справочник.Валюты.Доллар) КАК Доллар, //пустая ссылка | ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка) КАК Поступление, //знач. перечисления | ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо) КАК ФизЛицо, //предопределенный счет | ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы) КАК Счет_10” ;

4. Функция ВЫБОР – перед нами аналог конструкции ЕСЛИ который используется в коде, только эта используется в запросах 1С.

Запрос.Текст = //если сумма больше 7500, тогда должна быть скидка 300 рублей, //поэтому если условие срабатывает то функция //возвращает Сумма – 300 //в противном случае запрос вернет просто Сумма “ВЫБРАТЬ | ВЫБОР | КОГДА ТЧПоступления.Сумма > 7500 | ТОГДА ТЧПоступления.Сумма – 300 | ИНАЧЕ ТЧПоступления.Сумма | КОНЕЦ КАК СуммаСоСкидкой |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ТЧПоступления”;

5. Функция ВЫРАЗИТЬ – позволяет выразить константное поле определенным типом.

Запрос.Текст = “ВЫБРАТЬ РАЗЛИЧНЫЕ | Продажи.Регистратор.Номер, | ВЫБОР | КОГДА Продажи.Регистратор ССЫЛКА Документ.Расходная | ТОГДА ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.Расходная) | ИНАЧЕ ВЫБОР | КОГДА Продажи.Регистратор ССЫЛКА Документ.Реализация | ТОГДА ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.Реализация) | КОНЕЦ | … | КОНЕЦ КАК Номер | ИЗ | РегистрНакопления.Закупки КАК Закупки”;

Запрос.Текст = “ВЫБРАТЬ | ВЫРАЗИТЬ(Номенклатура.Комментарий КАК Строка(300)) КАК Комментарий, | ВЫРАЗИТЬ(Номенклатура.Сумма КАК Число(15,2)) КАК Сумма |ИЗ | Справочник.Номенклатура КАК Номенклатура”;

6. Функция ISNULL (альтернативное написание ЕСТЬNULL) – если поле имеет тип NULL, то оно заменяется на второй параметр функции.

Также отметим что тип NULL желательно ВСЕГДА заменять на какое-то значение, т.к. сравнение с типом NULL всегда дает ЛОЖЬ даже если вы сравниваете NULL с NULL. Чаще всего значения NULL образуются в результате соединения таблиц (все виды соединений кроме внутреннего).

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

7. Функция ПРЕДСТАВЛЕНИЕ – позволяет получить представление поля запроса.

Остатки 1С

  • Следует описать функцию Формат, без форматной строки:ФорматДата = Формат(Дата, “”);
  • Поставить курсор между кавычек, вызвать конструктор;
  • После окончания работы с конструктором нажать ОК.ФорматДата = Формат(Дата, “ДФ=dd.MM.yyyy”);

Функции языка запросов 1с

Поскольку понятное описание функций языка запросов 1с встречается намного реже, чем описание конструкций, мы решили начать рассматривать именно функции. Теперь давайте разберем каждую по отдельности, описав ее назначение, синтаксис и пример использования, итак:

1. Функция ДАТАВРЕМЯ – данная функция создает константное поле с типом “Дата”.

2. Функция РАЗНОСТЬДАТ – возвращает разность двух дат в одном из измерений (год, месяц, день, час, минута, секунда). Измерение передается в параметре.

Запрос.Текст = “ВЫБРАТЬ | РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2015, 4, 17), ДАТАВРЕМЯ(2015, 2, 1), ДЕНЬ) | КАК КолвоДней”;

3. Функция ЗНАЧЕНИЕ – задает константное поле с предопределенной записью из базы данных, также можно получить пустую ссылку любого типа.

Запрос.Текст = “ВЫБРАТЬ //предопределенный элемент | ЗНАЧЕНИЕ(Справочник.Валюты.Доллар) КАК Доллар, //пустая ссылка | ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка) КАК Поступление, //знач. перечисления | ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо) КАК ФизЛицо, //предопределенный счет | ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы) КАК Счет_10” ;

4. Функция ВЫБОР – перед нами аналог конструкции ЕСЛИ который используется в коде, только эта используется в запросах 1С.

Запрос.Текст = //если сумма больше 7500, тогда должна быть скидка 300 рублей, //поэтому если условие срабатывает то функция //возвращает Сумма – 300 //в противном случае запрос вернет просто Сумма “ВЫБРАТЬ | ВЫБОР | КОГДА ТЧПоступления.Сумма > 7500 | ТОГДА ТЧПоступления.Сумма – 300 | ИНАЧЕ ТЧПоступления.Сумма | КОНЕЦ КАК СуммаСоСкидкой |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ТЧПоступления”;

5. Функция ВЫРАЗИТЬ – позволяет выразить константное поле определенным типом.

Запрос.Текст = “ВЫБРАТЬ РАЗЛИЧНЫЕ | Продажи.Регистратор.Номер, | ВЫБОР | КОГДА Продажи.Регистратор ССЫЛКА Документ.Расходная | ТОГДА ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.Расходная) | ИНАЧЕ ВЫБОР | КОГДА Продажи.Регистратор ССЫЛКА Документ.Реализация | ТОГДА ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.Реализация) | КОНЕЦ | … | КОНЕЦ КАК Номер | ИЗ | РегистрНакопления.Закупки КАК Закупки”;

Запрос.Текст = “ВЫБРАТЬ | ВЫРАЗИТЬ(Номенклатура.Комментарий КАК Строка(300)) КАК Комментарий, | ВЫРАЗИТЬ(Номенклатура.Сумма КАК Число(15,2)) КАК Сумма |ИЗ | Справочник.Номенклатура КАК Номенклатура”;

6. Функция ISNULL (альтернативное написание ЕСТЬNULL) – если поле имеет тип NULL, то оно заменяется на второй параметр функции.

Также отметим что тип NULL желательно ВСЕГДА заменять на какое-то значение, т.к. сравнение с типом NULL всегда дает ЛОЖЬ даже если вы сравниваете NULL с NULL. Чаще всего значения NULL образуются в результате соединения таблиц (все виды соединений кроме внутреннего).

7. Функция ПРЕДСТАВЛЕНИЕ – позволяет получить представление поля запроса.

Разумеется в любом случае нужно наложить условие на поле Ссылка что бы не получить в результате запроса табличные части всех существующих в системе документов.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Разбираясь откуда такая котовасия появилась, выяснили что для редактирования движений документов использовали обработку Универсальный редактор реквизитов. 1c: база: запросы wiki-1c Обращайтесь в форму связи

Решение: Отчет со свободным остатком и ценой на СКД

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

Задача: разработка отчета, с показателями остатка и цены. Остатки должны быть в разрезе: общий, зарезервированный, свободный. Цена должна быть актуальная на текущую дату по выбранному типу цен.
Отчет разработан на СКД. Для извлечения всей необходимой информации понадобились три регистра:

— ТоварыНаСкладахОстаткиИОбороты (регистр накопления)
— ТоварыВРезервеНаСкладахОстатки (регистр накопления)
— ЦеныНоменклатурыСрезПоследних (регистр сведений)

Результат трех запросов выглядит следующим образом, но генерировать его нужно самостоятельно через конструктор запроса в системе компоновки данных:

ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад

ТоварыВРезервеНаСкладахОстатки.Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки

ЦеныНоменклатурыСрезПоследних.ТипЦен,
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен

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

КоличествоКонечныйОстаток — (ЕстьNULL(КоличествоОстаток,0) * (1) )

Если в выражении не использовать NULL то свободный остаток расчитается только для товара где есть резерв. NULL говорит о том, что в формуле одно из значений может быть нулевое, но расчет производить все-равно нужно.

Все остальное в отчете достаточно стандартное. Реквизиты, ресурсы, внешний вид. Может быть настроено, модифицировано по желанию пользователя.

Результат отчета в режиме 1С Предприятие

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

Решение: Отчет со свободным остатком и ценой на СКД — 1С ПРОЕКТ

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts