[ Вопрос дня ] Правильное проектирование регистра накопления для построения отчета

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

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

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

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

Вопрос

В задаче 1.44 необходимо создать отчет, как на картинке:

Первое, что приходит на ум для получения такого отчета, это сделать регистр “Взаиморасчеты” с видом “Остатки” (Измерения: Контрагент и Документ. Ресурс: Сумма). В измерении “Документ” дублируется реквизит “Регистратор”. В этом случае отчет с небольшими оговорками но можно получить в таком виде. Но опять возникает момент, что приход по регистру взаиморасчетов идет только по расходной накладной, а расход – только по приходу денег. 

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

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

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

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

Ответ

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

Дублировать регистратор смысла нет. Он и так хранится в регистре и доступен при получении оборотов (виртуальные таблицы Обороты, ОстаткиИОбороты регистров накопления). Это обычное поле, которое можно получить, группировать по нему, включать в итоги и т.п. Тем более здесь довольно простой случай – не требуется получать реквизиты регистратора, достаточно его стандартного представления. 

В данном случае построение отчета видится с помощью использования в запросе виртуальной таблицы ОстаткиИОбороты (сразу будут и начальные и конечные остатки, приход и расход), далее – задание итогов по покупателю (контрагенту). Чтобы выбрать регистратор в конструкторе, поставьте параметр Периодичность у виртуальной таблицы в Регистратор или Авто.

Комментарии / обсуждение (2):

  1. Владимир

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

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

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

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.