Как в «1С:Общепит» создать отчет по количеству гостей, проданным блюдам и видам оплаты?

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

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

Шаг 1. Определяем источники данных о количестве гостей

В отличие от типовой бухгалтерии, в общепите учет ведется не только в разрезе номенклатуры, но и в разрезе посещений. Разберем, где в системе фиксируется количество «ртов».

Основным документом в розничной торговле общепита является ЧекОбщепита. Проанализируем его структуру. В шапке или в дополнительных реквизитах этого документа обычно присутствует поле КоличествоГостей (или КоличествоПерсон). Если на предприятии ведется строгий учет посадочных мест, официанты заполняют это поле при открытии счета.

Если же данные о гостях не заполняются вручную, проанализируем ситуацию косвенно. В этом случае под «количеством питающихся» можно понимать количество порций основных блюд. Однако это даст погрешность, если один человек заказал два блюда. Поэтому рекомендуем в первую очередь проверить заполнение реквизита КоличествоГостей в документах ЧекОбщепита и ОтчетОРозничныхПродажах.

Шаг 2. Выделяем информацию о проданных блюдах

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

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

Проанализируем структуру регистра накопления Продажи. Нам понадобятся измерения Номенклатура и Склад, а также ресурсы Количество и Сумма.

Шаг 3. Разделение на наличную и безналичную оплату

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

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

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


ВЫБРАТЬ
    Продажи.Регистратор,
    Продажи.Номенклатура,
    Продажи.Количество,
    Оплата.ВидОплаты,
    Оплата.Сумма
ИЗ
    РегистрНакопления.ПродажиОбщепит КАК Продажи
ЛЕВОЕ СОЕДИНЕНИЕ 
    Документ.ЧекОбщепита.Оплата КАК Оплата
ПО 
    Продажи.Регистратор = Оплата.Ссылка

Шаг 4. Поиск готовых решений в системе

Прежде чем писать отчет с нуля, проанализируем существующий функционал, так как начальник в исходном сообщении упоминал, что «похожее есть». Рассмотрим следующие места:

Шаг 5. Особенности учета производства

Важно помнить, что общепит работает как производство. Рассмотрим ситуацию: когда гость ест салат, система списывает ингредиенты (помидоры, огурцы) согласно ТехнологическойКарте. Если заказчик требует отчет не просто «что съели», а «какие продукты потрачены на это количество людей», нам придется задействовать механизм калькуляций.

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

Итоговая структура отчета в СКД

Для реализации задачи «зеленому прогеру» стоит придерживаться следующей структуры в конструкторе схемы компоновки данных:

  1. Набор данных — запрос: выбираем данные из документа ЧекОбщепита. Нам нужны поля: КоличествоГостей, Товары.Номенклатура, Товары.Количество, Оплата.ВидОплаты.
  2. Группировки:
    • Верхний уровень: ВидОплаты (Нал/Безнал).
    • Второй уровень: Номенклатура (Блюда).
    • Детальные записи: для вывода количества гостей (учтите, что количество гостей нужно агрегировать функцией МАКСИМУМ или СРЕДНЕЕ по чеку, чтобы не суммировать их на каждую строку блюда).
  3. Ресурсы: Сумма (СУММА), Количество (СУММА), КоличествоГостей (СУММА, но с осторожностью при группировке по блюдам).

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

← На главную