Как получить отчет по недогруженным товарам по выставленным счетам в 1С:Бухгалтерия 3.0?

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

В процессе ведения торговой деятельности компании часто сталкиваются с необходимостью жесткого контроля отгрузки товаров по выставленным счетам. Классический сценарий: менеджер выписывает покупателю счет на 100 единиц продукции (например, коробок), а склад производит отгрузку частями — сначала 50 коробок, затем еще 30. Бухгалтеру или руководителю отдела продаж критически важно оперативно видеть актуальный остаток недореализованных товаров по каждому конкретному счету в разрезе договоров и номенклатурных позиций.

Однако при попытке найти подобный отчет в типовой конфигурации «1С:Бухгалтерия предприятия 8» (редакция 3.0) пользователи часто сталкиваются с трудностями. Давайте подробно разберем, почему возникает эта сложность, как программа обрабатывает эти данные под капотом, и какие существуют практические варианты решения данной задачи.

Выясним причину: почему в программе нет стандартного отчета?

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

  1. Отсутствие движений по регистрам. Документ СчетНаОплатуПокупателю в «1С:Бухгалтерии 3.0» является так называемым «непроводимым» документом. Он выполняет исключительно функцию подготовки печатной формы для клиента. При его проведении (или, точнее, записи) программа не создает никаких записей (движений) ни по счетам бухгалтерского учета (плану счетов), ни по регистрам накопления. Данные просто хранятся внутри табличной части самого документа.
  2. Реализация как первичный документ. В отличие от счета, документ РеализацияТоваровУслуг делает полноценные проводки в дебет счета 90.02.1 с кредита счетов учета номенклатуры (41, 43 и т.д.), фиксируя факт перехода права собственности на товар. Но эти проводки никак не привязаны к количеству, изначально заявленному в счете.
  3. Связь через документ-основание. Когда мы создаем реализацию на основании счета, программа записывает ссылку на этот счет в реквизит Сделка (или ДокументОснование) шапки или табличной части документа реализации. Это позволяет программе «помнить», по какому счету оформляется накладная, но эта связь существует только на уровне реквизитов документов, а не в едином регистре учета.

Именно поэтому стандартные бухгалтерские отчеты, такие как «Оборотно-сальдовая ведомость», «Анализ субконто» или «Карточка счета», не могут показать нам остатки к отгрузке. Они работают исключительно с проводками, в которых «Счет на оплату» вообще не участвует.

Почему не получится настроить «Универсальный отчет»?

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

Инструмент Универсальный отчет предназначен для вывода данных из какого-то одного источника: либо из одной таблицы документа (например, табличной части «Товары» счета), либо из одного регистра накопления. Чтобы вычислить недогруженные остатки, программе требуется выполнить сложную математическую операцию:

Такая операция требует полноценного левого соединения (LEFT JOIN) двух различных таблиц базы данных с последующей группировкой. Стандартный функционал настроек «Универсального отчета» не поддерживает связывание двух независимых таблиц документов с расчетом разницы. Поэтому настроить его силами обычного пользователя без изменения кода невозможно.

Что доступно в типовой конфигурации из коробки?

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

  1. Статусы отгрузки в списке документов. Если мы зайдем в меню «Продажи» — «Счета покупателям», то увидим колонку со статусами отгрузки (например, «Не отгружен», «Отгружен частично» или «Отгружен»). Программа вычисляет эти статусы автоматически с помощью фоновых запросов и записывает их в специальный регистр сведений СтатусыДокументов. Однако этот статус носит исключительно информационный характер. Он не позволяет увидеть детализацию: сколько именно штук какого товара осталось отгрузить.
  2. Отчет «Счета, не оплаченные покупателями». Этот отчет находится в разделе «Руководителю». Он отлично показывает финансовую картину: сумму счета, сколько денег поступило на расчетный счет или в кассу и сколько осталось доплатить. Но, к сожалению, этот отчет ориентирован только на денежные средства и полностью игнорирует товарный состав счетов и накладных.

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

Вариант 1. Разработка собственного отчета на СКД (Решение для программиста)

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

Разберем по шагам логику построения такого запроса. Чтобы отчет работал корректно даже в тех случаях, когда по одному счету было сделано несколько отгрузок, нам сначала нужно сгруппировать все реализации, а затем соединить их со счетами. Посмотрим на пример запроса:


ВЫБРАТЬ
    СчетТовары.Ссылка КАК Счет,
    СчетТовары.Ссылка.ДоговорКонтрагента КАК Договор,
    СчетТовары.Номенклатура КАК Номенклатура,
    СчетТовары.Количество КАК КоличествоПоСчету,
    СчетТовары.Сумма КАК СуммаПоСчету,
    ЕСТЬNULL(Реализовано.КоличествоОтреагировано, 0) КАК КоличествоРеализовано,
    ЕСТЬNULL(Реализовано.СуммаОтреагировано, 0) КАК СуммаРеализовано,
    СчетТовары.Количество - ЕСТЬNULL(Реализовано.КоличествоОтреагировано, 0) КАК ОстатокКоличество,
    СчетТовары.Сумма - ЕСТЬNULL(Реализовано.СуммаОтреагировано, 0) КАК ОстатокСумма
ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетТовары
    ЛЕВОЕ СОЕДИНЕНИЕ (
        ВЫБРАТЬ
            РеализацияТовары.Ссылка.Сделка КАК СчетОснование,
            РеализацияТовары.Номенклатура КАК Номенклатура,
            СУММА(РеализацияТовары.Количество) КАК КоличествоОтреагировано,
            СУММА(РеализацияТовары.Сумма) КАК СуммаОтреагировано
        ИЗ
            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
        ГДЕ
            РеализацияТовары.Ссылка.Проведен = ИСТИНА
            И РеализацияТовары.Ссылка.Сделка ССЫЛКА Документ.СчетНаОплатуПокупателю
        СГРУППИРОВАТЬ ПО
            РеализацияТовары.Ссылка.Сделка,
            РеализацияТовары.Номенклатура
    ) КАК Реализовано
        ПО СчетТовары.Ссылка = Реализовано.СчетОснование
        И СчетТовары.Номенклатура = Реализовано.Номенклатура
ГДЕ
    СчетТовары.Ссылка.ПометкаУдаления = ЛОЖЬ

Рассмотрим подробнее, как работает этот алгоритм:

Вариант 2. Использование готовых внешних отчетов и расширений

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

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

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

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

Вариант 3. Методологическое решение (переход на управленческий учет)

Проанализируем ситуацию с точки зрения методологии учета. «1С:Бухгалтерия 8» создана в первую очередь для ведения регламентированного (бухгалтерского и налогового) учета и сдачи отчетности в контролирующие органы. Контроль остатков по заказам, резервирование товаров под клиентов и отслеживание цепочек поставок — это классические задачи управленческого учета.

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

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

При такой схеме работы менеджеры ведут оперативный учет в торговой программе, а все необходимые документы для налоговой отчетности автоматически выгружаются в «1С:Бухгалтерию» посредством настроенной типовой синхронизации данных.

Выбор конкретного варианта зависит от масштабов вашей компании, бюджета и долгосрочных планов по развитию автоматизации бизнес-процессов.

← На главную