Как найти документы «Реализация товаров и услуг» с ценой номенклатуры ниже заданного значения в 1С:УТ 10.3?

Пользователь 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Способ 1. Использование «Универсального отчета»

Рассмотрим самый доступный для обычного пользователя способ — настройку Универсального отчета. Этот инструмент позволяет строить отчеты практически по любым данным системы, включая табличные части документов, без необходимости программирования. Разберем этот процесс по шагам.

Для начала откроем Универсальный отчет (обычно он находится в меню «Отчеты» -> «Универсальный отчет»). Проанализируем настройки, которые нам необходимо установить:

  1. В поле «Тип данных» выбираем значение Документ.
  2. В поле «Объект» находим и выбираем Реализация товаров и услуг.
  3. В поле «Табличная часть» выбираем Товары. Это критически важно, так как цена хранится именно в строках документа, а не в его «шапке».

После выбора объекта перейдем к кнопке «Настройка». Здесь нам нужно определить структуру вывода данных и условия фильтрации. Рассмотрим подробнее вкладку «Отбор». Чтобы найти цены меньше 100 единиц, добавим новое поле Цена, выберем вид сравнения Меньше и в колонке «Значение» укажем 100.

На вкладке «Группировки строк» добавим поле Ссылка (чтобы видеть сам документ) и поле Номенклатура (чтобы понимать, на какой товар установлена низкая цена). Также полезно добавить поле Проведен в отборы и установить значение Да, чтобы исключить из поиска черновики и помеченные на удаление документы.

Способ 2. Групповая обработка справочников и документов

Выясним, есть ли способ не просто увидеть список, но и сразу подготовить эти документы к массовому изменению. Для этого идеально подходит инструмент «Групповая обработка справочников и документов». Это мощный сервисный механизм, который часто недооценивают пользователи.

Перейдем в меню «Сервис» -> «Универсальные механизмы» -> Групповая обработка справочников и документов. Проанализируем алгоритм действий:

  1. В поле «Тип объекта» выбираем Документы.
  2. В списке ниже отмечаем галочкой Реализация товаров и услуг.
  3. Нажимаем кнопку «Настройка» в нижней части формы.
  4. В открывшемся окне обязательно ставим флаг «Использовать отбор по табличной части». Без этой галочки мы не сможем дотянуться до цен внутри строк.
  5. В появившейся возможности выбора таблицы выбираем Товары.

Теперь на главной форме обработки нажимаем кнопку «Добавить» в области отборов. Выбираем путь Товары.Цена, условие Меньше и наше значение (например, 100). После нажатия кнопки «Отобрать» программа выведет список всех документов. Преимущество этого метода в том, что вы сразу видите общее количество документов и можете открыть любой из них прямо из списка для корректировки.

Способ 3. Прямой запрос к базе данных (для опытных пользователей и программистов)

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


ВЫБРАТЬ
    РеализацияТовары.Ссылка КАК Документ,
    РеализацияТовары.Номенклатура КАК Товар,
    РеализацияТовары.Цена КАК Цена,
    РеализацияТовары.Ссылка.Дата КАК Дата
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ГДЕ
    РеализацияТовары.Цена < &ЗаданнаяЦена
    И РеализацияТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И РеализацияТовары.Ссылка.Проведен = ИСТИНА

Разберем, что именно делает этот код. Мы обращаемся к виртуальной таблице Документ.РеализацияТоваровУслуг.Товары. Важно помнить, что если в вашей базе ведется учет в разных валютах, простого сравнения Цена < 100 может быть недостаточно. Рассмотрим этот нюанс подробнее в следующем разделе.

Важный нюанс: Проблема разных валют

В конфигурации УТ 10.3 документ Реализация товаров и услуг может быть оформлен в любой валюте (рубли, доллары, евро). Если мы просто ищем цену меньше 100, то под этот фильтр попадет и товар ценой 90 рублей, и товар ценой 50 долларов, хотя в пересчете на рубли 50 долларов — это значительно больше 100.

Для корректного решения этой задачи мы рекомендуем использовать данные регистра накопления Продажи. В этом регистре суммы хранятся как в валюте документа, так и в валюте управленческого и регламентированного учета (обычно в рублях). Посмотрим на логику построения такого отчета:

  1. В качестве источника данных для Универсального отчета выбираем Регистр накопления -> Продажи.
  2. Поскольку в регистре нет готового поля «Цена», мы используем показатели Стоимость и Количество.
  3. Чтобы найти цену меньше 100 в валюте регламентированного учета, нам нужно анализировать отношение Стоимость / Количество.

Если вы используете Консоль отчетов на базе СКД, мы можем добавить вычисляемое поле СредняяЦена с формулой:


Выбор 
    Когда Количество <> 0 Тогда Стоимость / Количество 
    Иначе 0 
Конец

После чего мы накладываем отбор на это созданное поле. Это гарантирует, что мы сравниваем «яблоки с яблоками», приводя все цены к единому валютному знаменателю.

Профилактика: Как не допустить появления таких цен?

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

Рассмотрим порядок настройки:

  1. Зайдем в меню «Сервис» -> «Настройка учета» -> «Дополнительные права пользователей».
  2. Выберем нужного пользователя или группу.
  3. В дереве настроек найдем раздел Редактирование цен в документах.
  4. Установим флаг «Не разрешать цены ниже минимальных» (или аналогичный запрет на отклонение от типов цен).
  5. В настройках параметров учета укажите, какой именно тип цен (например, «Минимальная розничная» или «Себестоимость») будет являться нижней границей.

Таким образом, мы переводим задачу из плоскости «как найти ошибку» в плоскость «как исключить возможность ошибки». Сочетание оперативного контроля через Универсальный отчет и превентивных мер через Дополнительные права обеспечит максимальную точность данных в вашей базе 1С.

← На главную