ВНЕДРЕНИЕ 1С:ERP и 1С:Управление холдингом     Главная     Проекты, результаты     Консультации (Новый раздел!!)     Обратная связь. Отзывы, рекомендации    
 












1С : Консолидация & Отчеты

  • Архив

    «   Июль 2018   »
    Пн Вт Ср Чт Пт Сб Вс
                1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31          

Внедрение 1С:Консолидация. Управленческая отчетность. Часть 2.


В данной статье рассмотрим методику консолидации, элиминации и корректировок отчетности. Так же, рассмотрим «как устроены механизмы учета» в конфигурации «1C:Консолидация ред. 2.0».

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

И так, предоставляю вашему вниманию вторую статью из этого цикла.

1. Постановка задачи

Исходные данные

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

Однако, тот отчет о прибыли (который был сформирован), можно рассматривать как промежуточный, но не окончательный результат.

  • Во-первых, помимо розничной выручки, у нашей компании есть оптовая составляющая. Ее мы в предыдущей статье не учитывали. Тоже касается и затратной части по опту;


  • Во-вторых, ранее мы не учитывали т.н. внутригрупповые обороты (далее ВГО), а они у нас есть. И задача учесть и корректно отразить их в управленческой отчетности – одна из наиболее сложных и значимых для консолидации.
Еще в предыдущей статье мы не успели рассмотреть некоторые важные функциональные возможности «1С:Консолидации», такие как:


o Настройка соответствия внутригрупповых показателей;

o Настройка шаблонов ручных операции и использование ручных операции для элиминации и корректировки показателей отчетности;

o Настройка процедур заполнения показателей отчетов, использование параметров отчета;

o Настройка процедур проверки показателей отчетов;

o Использование механизмов обратного перераспределения показателей консолидированной отчетности по периметру консолидации.

Все эти задачи мы и рассмотрим в данной статье.


1. Постановка задачи «Учет внутригрупповых оборотов (ВГО)»

Перед тем, как приступать к решению указанных вопросов, определимся - как будем учитывать ВГО и в чем есть сложности.

По условию задачи бизнес компании построен таким образом, что ВГО возникают в следствии:

1. (1) Организации «А» и «Б» могут реализовывать друг другу товарно-материальные ценности (полуфабрикаты и готовую продукцию). ТМЦ реализуются между организациями по неким «трансфертным» ценам (эти цены – несколько выше себестоимости). Далее, готовая продукцию будет реализовываться (уже по оптовым ценам) «на сторону» (покупателям).

2. (2) Организации «А» и «Б» могут оказывать друг другу услуги (консультационные, бухгалтерские, IT и т.д.). Эти операции оформляется так же по некоторым «трансфертным» ценам.

Конкретизируем, в чем же сложность учета ВГО, и как ВГО отразятся на отчете о прибыли ?
  • Что касается (2), то с позиции управленческого учета оказание внутрифирменных услуг не должно отражаться в отчете о прибыли.
А с позиции бухгалтерского учета, например, по организации «А», возникает «выручка от реализации услуг», а по организации «Б» - затраты на «покупку» этих услуг.

В соответствии с методологией международного учета (МСФО) внутрифирменные услуги так же не должны отражаться в отчете о прибыли.

Итого, суть в следующем – внутрифирменные услуги не изменяют активы или обязательства компании в целом.

Таким образом, при формировании отчета о прибыли по компании в целом (консолидированного отчета), в программе необходимо исключать «куплю-продажу» по внутрифирменным услугам. Т.е одновременно уменьшить обороты по выручке от реализации этих услуг, и обороты по приобретению этих услуг.

В программе «1С:Консолидация» это обеспечивается специальным механизмом сверки и урегулирования ВГО, в частности, необходимо будет формировать «ручные операции элиминации» по организации «Элиминация».
  • Что касается (1), то тут ситуация более сложная. Суть в том, что полностью исключить ВГО мы не можем. Т.е. ztсли мы полностью исключаем ВГО, то тем самым искажаем данные о прибыли.
Вот пример:

Организация «А» реализовала «Б» 10 штук «Товара 1» по цене 120 рублей.
Далее, организация «Б» реализовала покупателю «Оптовый» 6 штук «Товара 1» по цене 180 рублей.

Прибыль компании (от реализации компанией «Б») составила = 6*(180-120) = 360 рублей.

Однако, это не вся прибыль компании. Предположим, что себестоимость «Товара 1» была 100 рублей. Далее, по трансфертной цене 120 рублей он был реализован в организацию «Б».

Таким образом, полная прибыль компании должна быть рассчитана так = 6(120-100)+6(180-120) = 480 руб.


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

Т.е организация «А» реализовала «Б» 10 штук * (120-100) = 200 рублей (прибыль). Но только 6 штук было продано конечному покупателю, и , следовательно: 200 = 120 + 80. Где «80» - это и есть нереализованная прибыль.

Задача точного расчета нереализованной прибыли не является выполнимой, особенно если учитывать, что «в цепочке движения ТМЦ» у нас могут участвовать не только товары, но и полуфабрикаты (входящие далее в состав товаров и т.д. «каскадно»).

В типовых методических моделях, входящих в демонстрационную базу «1С:Консолидации» (например, консолидации по МСФО) есть настроенные, сложные механизмы каскадного, последовательного расчета нереализованной прибыли. Однако, для целей упр. учета и отчетности, такой «сложный путь» едва ли оправдан.

И в нашем примере мы будем использовать иную, более простую методику – введем некий коэффициент (назовем его «норма прибыли от ВГО», экономисты его рассчитают J) и будем вычислять прибыль от ВГО, c его помощью.

Таким образом, поступим с продажами ТМЦ между организациями так:
  • (1) На первом шаге, полностью исключим ВГО;


  • (2) На втором шаге, рассчитаем прибыль от ВГО (на основе коэффициентов) и сформируем обороты по прибыли. Cформируем специальные корректировочные операции, «на суммы прибыли от ВГО», по элиминирующей организации;


  • (3) На третьем шаге, при формировании общего отчета о прибыли (по периметру консолидации «Организация А» + «Организация Б» + «Элиминирующая организация») внутрифирменные услуги будут полностью исключены из выручки/затрат, а ВГО от продажи ТМЦ войдут в отчет о прибыли (по элиминирующее организации), но не на полную сумму выручки, а с учетом коэффициента нормы прибыли.
2. Методики решения задачи на базе "1С:Консолидация проф ред.2"

Рассмотрим методику применения «1С: Консолидация» по шагам.

Шаг 1: Получение данных о выручке(опт, услуги) и затратам(опт, услуги).


1. Создание видов отчетов «Выручка опт», «Выручка услуги», «Затраты опт», «Затраты услуги»

Будем считать, что по условию задачи данные по оптовой выручке и затратам учитываютcя в базе «1С:Бухгалтерия 8» (ред. 2).

Добавим в справочник «Типы внешних информационных баз» элемент «Бух 82».




Далее, последовательно создадим 4 вида отчета и настроим заполнение каждого отчета способом «из внешней ИБ». В качестве механизма заполнения будем использовать «Произвольный запрос к внешней информационной базе».

У каждого из отчетов будет один единственный показатель («сумма выручки» или «сумма затрат», соответственно). Дополнительно, для целей аналитического раскрытия будем использовать аналитику «Контрагент» и «Статья доходов/расходов».
Рассмотрим, для примера, механизм заполнения показателя «сумма выручки ТМЦ (опт)»
Данные по выручке получим по документам «РеализацияТоваров.Товары», по выбранной организации и периоду (эти параметры будут указываться в экземпляре отчет «Выручка опт (ТМЦ)».

Обязательной, необходимой для нас аналитикой аналитического сделаем аналитику «Контрагент». Это потребуется нам, как раз для последующей сверки и исключения внутригрупповых оборотов. Т.е реализации услуг по организации «А» на контрагента « B » и поступления услуг по организации «Б» от контрагента «А».



Важно обратить внимание на то, как необходимо настраивать аналитическое раскрытие по такой аналитике (аналитике ВГО):



Так же важно, что тип значения у вида аналитики «Контрагенты (упр)» должен быть «Организационные единицы». Только в этом случае механизмы урегулирования и элиминации ВГО «1С:Консолидации» будут отрабатывать.



Еще, обращу ваше внимание на запрос получения данных из БУХ 8..

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

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

Хочу обратить ваше внимание еще на одну «фичу» «1С:Консолилации», на которую можно натктунься, при получении данных из внешней ИБ…

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

В этом случае, при загрузке данных из внешней ИБ (например, произвольный запрос в внешней ИБ), создастся еще одна карточка на этого же контрагента. Иными словами, произойдет «задвой» контрагента.

В чем же причина и как с этим бороться ?

«Фича» в том, что в процессе обработки внешних данных, «1с консолидация» выполняет неявный поиск аналитики (в данным случае – «контрагенты (упр)) по специальному (служебному) реквизиту «НСИ ВИБ».




Т.е получается, что если контрагент был создан «в ручную» (и это поле не было заполнено), то программа «не найден» контрагента и создаст новую карточку.

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

С этим – выяснили, продолжим далее..

2. Рассмотрим настройку соответствия аналитик внешней ИБ и консолидации.

Установим соответствие аналитик следующим образом:



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



Однако, следует понимать, что установка параметров «простым способом» (напрямую из экземпляра формируемого отчета) не всегда возможна. Т.е, могут быть ситуации, когда значение параметра потребуется вычислить программным способом.

Такая возможность в продукте «1С:Консолидация» тоже заложена. Для этого можно и нужно использовать способ определения параметра «Функция на встроенном языке».

Что бы написать собственную формулу вычисления параметра, необходимо использовать оператор «ВычислитьВыражение», который должен присваивать предопределенной переменной «ЗначениеПараметра» нужно значение.



Стоим обратить внимание еще на одну особенность программного заполнения параметров..

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

Однако есть простое решение данного вопроса: необходимо будет внести небольшую доработку в конфигурацию «1С:Консолидация».
А именно, в общем модуле «Управление отчетами», есть функция «ВычислитьПараметрФункции». В нее, нужно будет обеспечить передачу еще одного параметра - «КонстекстОтчета». И тогда, в формуле отчета можно будет, например, обратиться к организации как «КонстекстОтчета.Организация» и т.д.



Формирование отчета «Выручка услуги» будет производиться похожим (на «затраты услуги») способом, за исключением того, что:
  • Данные о выручке будут получены по документам «РеализацияТоваровУслуг.Услуги»;
  • Помимо раскрытия по «Контрагентам», суммы услуг будут иметь дополнительное аналитическое раскрытие по статьям дохода (это будет удобно, для доп. анализа доходов и их источников).



Способы формирования отчетов «Затраты опт» и «Затраты услуги» будут зеркально соответствовать отчетам «Выручка опт» и «Выручка услуги».

Отличие будет только в том, что источниками данных для запросов будут не документы «РеализацияТоваровУслуг», а документы «ПоступлениеТоваровУслуг».
И так, все 4 вида отчета у нас созданы. Введем экземпляры этих отчетов по организациям «А» и «Б», выполним «автозаполнение» этих отчетов данными из базы Бух8.



Шаг 2: Формирование отчета «Итоговая прибыль упр» по каждой организации

3. Создание отчета «Итоговая прибыль упр».

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

Соответственно, можно приступить к формированию итогового отчета по прибыли.

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


Т.е на данном шаге мы выполним формирование «Итогового отчета по прибыли» отдельно по организациям «А» и «Б», и только после этого переедем к решению следующих задач консолидации и пр.

И так, добавим в программу «1С:Консолидация» новый вид отчета «Итоговая прибыль упр».

В этом отчете, отдельно соберем показатели:
  • Доходы = ВыручкаРозница + ВыручкаОпт + ВыручкаУслуги;


  • Расходы = Зарплаты + РасходПродуктов + КосвенныеРасходы + ЗатратыОпт + ЗатратыУслуги;


  • Прибыль = Доходы – Расходы.



Для заполнения показателей будем использовать простой способ – «заполнение показателей из другого отчета».


«Доходы, расходы и прибыль» будут вычисляемыми показателями, по формулам.

Здесь же обратим внимание, что у показателя «Выручка розница» будет группа раскрытия «Подразделения», у показателей «Выручка опт/услуги» и «Затраты опт/услуги» - своя группа раскрытия - «Контрагенты».

Теперь все готово, введем новые экземпляры отчетов по прибыли по организациям «А» и «Б»





Обратим внимание, что в отчеты попали ВГО. Так же характерно, что суммы ВГО между организациями соответствуют друг другу, что является хорошим признаком (с учетом все в порядке).

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

Шаг 3: Элиминация ВГО, корректировка показателей прибыли

4. Возможности конфигурации «1С:Консолидация» для выполнения элиминации и корректировки показателей

Важным функционалом, заложенным в конфигурацию «1С:Консолидация», является поддержка операции элиминации и операций корректировки показателей отчетности.

Осуществляются эти операции с помощью специальных документов «Операция», предусмотренных в конфигурации.

При этом, существуют следующие варианты (способы) формирования (ввода) документов «Операция»:
  • (1) Ручной ввод;


  • (2) Обратное распределение;


  • (3) Актуализация бюджетов.
Для решения наших задач будет использовать способы (1) и (2).

Способ (1) - будем использовать для:

  • Элиминации ВГО;


  • Корректировки показателей прибыли по операциям ВГО (реализация ТМЦ).
Способ (2) - будем использовать для задачи обратного перераспределения показателя (консолидированного отчета) затрат по услугам (по организациям периметра – «А» и «Б»).

Смысл этой задачи будет в следующем: в консолидированном отчете мы получим некоторое значение показателя затрат по услугам. Значение этого показателя будет сложено так = Затраты по услугам организации «А» + Затраты по услугам организации «Б» + Затраты по услугам «Организации Элиминация».

Т.е виртуальная организация «Элиминация» специально вводится для того, что повлиять (нужным образом скорректировать) на консолидированную отчетность.
Помимо задачи консолидации поставим перед собой и решим еще одну задачу – «обратного распределения затрат».


Будем считать, что для целей управленческого учета затрат (по организациям «А» и «Б»), справедливо было бы распределить итоговую (общую сумму затрат по услугам) между организациями «А» и «Б», пропорционально затратам по их «основному» поставщику услуг.

В нашем случае это будет некий контрагент «Торговые системы». Этот контрагент оказывает «основные услуги» нашим организациям.

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


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

Для осуществления обратного перераспределения затраты мы как раз воспользуется способом ввода «Обратное распределение» документа «Операция». При этом, мы так же воспользуемся специальным механизмом «1С:Консолидация» для выполнения обратного распределения. А именно, настроим базу распределения показателя «Затраты услуги» по организациям (периметру консолидации), пропорционально затратам по контрагенту «Торговые системы».

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

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


Очевидно, что такая функциональность «1С:Консолидации» является очень важной и обеспечивает целостность и непротиворечивость показателей отчетности.

Более того, в функционал «Обратного распределения» еще заложены такие возможности как:
  • Каскадное распределение по подчиненным периметрам;.

    • Т.е можно выполнять каскадное (рекурсивное) перераспределение по вложенным периметрам консолидации. Т.е, когда в качестве организации, (входящей в периметр) входит организация, которая сама консолидирует некий (вложенный) в нее периметр и т.д.

  • Каскадное перераспределение по подчиненным периодам;

    • Например, мы получили итоговую отчетность за год (получили как консолидацию квартальных отчетов, квартальные отчеты – как консолидацию месячных и т.д. рекурсивно). Таким образом, выполнив некоторое перераспределение в годовом показателе, программа автоматически «применит» его ко всем «вложенным» периодам.



Теперь вернется к задачам элиминации ВГО и корректировки показателей выручки.

Для решения этих задач будем использовать документы «Операция» со способом ввода «Ручной ввод».

При этом, не следует упрощенно понимать, что ввод этих операции «ручной и не автоматизирован».

Возможности программы здесь такие: документы операция вводятся (ввод нового документа) в программу пользователем, но при этом есть механизмы для автоматизированного заполнения этих документов .

Т.е:
  • Для операций элиминации (такие операции всегда должны вводиться по выбранной элиминирующей организации) предусмотрен специальный механизм сверки и урегулирования ВГО;

    • В нашей задаче мы как раз настроим и используем этот механизм;

  • Для операций произвольной корректировки можно использовать «Шаблоны операций». В свою очередь, в шаблонах операций можно настроить правила расчета и заполнения показателей.

    • В нашей задаче мы настроим шаблон операции для расчета сумм прибыли от ВГО по операциям продажи ТМЦ. Здесь же задействуем (в формуле расчета) коэффициент нормы прибыльности ВГО.


Итого, какие есть инструменты «1С:Консолидации» и для чего они применимы, мы рассмотрели. И теперь можно задаться таким вопросом: «Как устроен учет в программе «1С:Консодидация» ?
  • Объектами учета выступают показатели отчетов. Это – первое;


  • Учет показателей ведется в следующих аналитических разрезах:

    • Период отчета;


    • Сценарий;


    • Организация;


    • Валюта (необязательная аналитика);



  • Кроме предопределенных (базовых) аналитик, учет показателей может вестись (по необходимости) и по дополнительным аналитикам (максимальный разрез показателя - 5 доп. аналитик).

    • В качестве дополнительных аналитик могут выступать произвольные, созданные пользователем «Виды субконто»;


    • А можно использовать некоторые предопределенные (в консолидации) справочники/документы, например такие как «Организационные единицы», «Статьи движения денежных средств» или «Заявка на расходование средств»;

Хранятся показатели отчетности в конфигурации «1С:Консолидация» следующим образом:



  • Регистры сведений «ЗначенияПоказателейОтчетов» хранят все изменения показателя в разрезе базовых аналитик (период, сценарий, организационная единица, валюта) и доп. аналитик;

    • Дополнительные регистр «ЗначенияПоказателейОтчетов1-5» - в разрезах дополнительных аналитик (до 5-ти).



  • Справочник «ПоказателиОтчетов» хранит описание всех показателей (показателей всех отчетов);


  • Справочник «ВерсииЗначенийПоказателей» обеспечивает учет всех изменений, т.е версионности показателей.

    • Значения показателей корректируются в экземплярах отчетов, c отслеживанием версионности изменений;


    • Так же справочник «ВерсииЗначенийПоказателей» обеспечивает связь значений показателя с базовыми аналитиками.

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

Так же любой показатель отчета всегда подчинен некоторому виду отчета. Значение показателя может вводиться (формировать/корректироваться в программе):
      • (1) С помощью документа «Экземпляр отчета»

        • (1-1) Этот документ может быть заполнен пользователем вручную;


        • (1-2) Может быть заполнен автоматически (например, по данным внешней информационной базы или неким произвольным способом);


        • (1-3) Может быть автоматически загружен из внешних файлов (XLS или МXL);

          • В «1С:Консолидации» предусмотрен специальный механизм «Подсистема Универсальная финансовая Отчетность», как раз и предназначенный для сбора и консолидации данных через заполнение специальных файлов XLS/MXL (я расскажу о работе с этим механизмом в следующих статьях);




      • (2) С помощью документа «Операция».

        • (2-1) Эти документы могут быть заполнены в ручную;


        • (2-2) Или с применением шаблонов операций (для автозаполнения);


        • (2-3) Или с использованием механизма сверки/урегулирования ВГО;


        • (2-4) Или с помощью механизма обратного распределения;


        • (2-5) Так же существует еще механизм актуализации бюджетов.

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

          • В наших задачах актуализацию бюджетов рассматривать мы не будем.




      • (3) Выполняя непосредственную корректировку значений показателя в документе «Экземпляр отчета»;

        • (3-1) Автоматически поддерживается «версионность» изменений значений показателей. Так же пользователи в процессе «правки отчетности» могут ставить доп. комментарии. И в программе будет видно: «кто/когда/почему изменил показатель» (т.е. будет виден «аудиторский след»).



      • (3-2) Итоговое (с учетом всех корректировок и операций) значение показателя можно «увидеть» в экземпляре отчета.


      • (3-3) Расшифровку (по изменениям показателя) можно увидеть в специальном отчете;


      • (3-4) Так же, видеть значения показателей и контролировать их можно с помощью аналитических отчетов и аналитических рассылок.

        • Это отдельные, специализированные механизмы «1С:Консодидации», которые специально предназначены для «мониторинга значений показателей.

          • Об этих механизмах я расскажу в следующих статьях.








Итого, «теоретическую» :-)) часть на этом закончим и продолжим практическое решение задач.


4. Настройка механизма сверки ВГO .

Для того, что бы «1С:Консолидация» смогла сопоставить ВГО, необходимо указать программе соответствие между показателями отчетов.

Храниться эта информация будет в регистре сведений «СоотвествиеВнутригрупповыхПоказателей».



Для указания соответствия показателей в программе предусмотрена следующая форма («Отчетность à Настройка соответствия внутригрупповых показателей»)

  1. Сверка , элиминация ВГО

Как уже было сказано ранее, для выполнения этой задачи введем документ «Операция».



При этом, в качестве организации нужно обязательно указать «элиминирующую» организацию.




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

Далее, откроется специальное окно «Операция по урегулированию и элиминации внутригрупповых оборотов».

Заполнить таблицу сверки и урегулирования можно по кнопке «Заполнить».

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

Например, по данным учета организация «А» реализовала организации «Б» услуг на сумму 10000 руб. И так же по данным учета организации «Б», она «купила» услуг у организации «Б» на 8000 руб.

В такой ситуации, можно урегулировать сумму ВГО только на меньшую из сумм (8000 руб.), а отклонения 2000 руб. можно «перенести» на отдельный сценарий, например «Не урегулированные ВГО», и далее «разбираться» (осуществлять перекрестную сверку учета) и урегулирование этого отклонения.

В программе мы можем вносить любые дополнительные (служебные) сценарии для «неурегулированных» ВГО.

Если мы используем автоматическое урегулирование (на меньшую из сумм), то в программе мы можем так же задать «некий порог в % отклонения». Тогда отклонения, превышающие этот порог, автоматически урегулироваться не будут.

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

Заполняется таблица по кнопке «Заполнить».



После этого, по кнопке «Ок» ---> «Записать и закрыть» нужно записать документ «Операция».

В результате, в программе сформировались «проводки»:

Корректировка показателей «Выручка» в части ВГО от реализации ТМЦ.
  1. После того, как все суммы по ВГО элиминированы, нам необходимо сформировать суммы выручки в части ВГО от реализации ТМЦ;
  2. Для расчета сумм выручки будем использовать коэффициенты «Норма прибыли ВГО».

    Поступим просто - внесем небольшую доработку в конфигурацию. Добавим в карточку организации реквизит «Норма прибыли ВГО %».




Что бы отделить (аналитически) суммы выручки ВГО от остальной выручки, добавим в справочник служебную карточку контрагента «Выручка от ВГО».

Соответственно, «проводки» на суммы выручки ВГО должны будут формировать по аналитике «Выручка от ВГО».

Для автоматического расчета и заполнения операции (по формированию выручки ВГО) создадим специальный вид операции «Расчет прибыли ВГО» и создадим для этого вида операции отжельный шаблон «Правила расчета прибыли от ВГ»



Формулу расчета настроим так:



Обратим внимание:

  • Для получения организаций, входящих в состав периметра, была использована предопределенная функция «СоставПериметраДляЭлиминации»;


  • Для получения сумм выручки (по аналитикам «Организация А», «Организация Б»)
    была использована предопределенная функция «ЗначениеПоказателя».

Итак, механизм расчета сумм ВГО создан. Теперь можно сформировать документы «Операция» по организациям «А» и «Б».
Результат заполнения операции по организации «А»:



Перед тем, как приступить к формированию итоговой отчетности по прибыли, рассмотрим еще несколько полезных функциональных возможностей «1С:Консолилации». А именно:
  • (1) Настроим процедуру заполнения «Итогового отчета по прибыли»;

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

В данном примере, используем общую процедуру для заполнения значения показателя «Косвенные расходы» (отчета «Итоговая прибыль»).




Еще, дополнительно добавим для вида отчета «Итоговая прибыль» параметр «ПроценКосвенныхРасх».




Условно будем считать, что сумма косвенных расходов, принимаемых для отчета о итоговой прибыли, должна рассчитаться по формуле: ОбщаяСуммаРасходов (по данным отчета «Косвенные расходы») * ПроцентКосвенныхРасх/100;
  • (2) Настроим процедуру проверки «Итогового отчета по прибыли»
В «1С:Консолидации» заложен функционал проверки корректности заполнения показателей отчета.

Т.е перед изменением статуса отчета на «Утвержден» отчет должен быть «проверен на корректность».
  • (а) Если для вида отчета процедура проверки не настроена, то программа «считает», что проверка всегда выполнена (и вызывать проверку не требуется);
  • (б) Если же процедура проверки настроена, то проверка в обязательном порядке вызывается:


Непосредственно алгоритм проверки показателей отчета (здесь можно заложить произвольный алгоритм) описывается в процедуре проверки.

В результате исполнения процедуры проверки должна быть обязательно заполнена предопределенная переменная «ПроверкаПройдена». Эта булевская переменная и она определяет - «пройдена ли проверки или нет».



В нашем примере мы последовательно проверяем:
  • Корректность вычисляемого показателя «Доходы значение»;


  • Корректность вычисляемого показателя «Расходы значение».
А может ли так получится, что значения этих показателей окажутся не корректными, ведь эти показатели вычисляются (как суммы) автоматически ?

Да, некорректность возможна. Пользователь может переключиться в режим «ручной корректировки» показателей отчета и изменить значение показателя на не корректное значение.

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


На данный момент отчеты по прибыли по организациям «А» и «Б» сформированы и прошли процедуру проверки.


Элиминирующие корректировки (проводки), и проводки по корректировке сумм прибыли от ВГО, так же сформированы.

Получается - все готово для формирования консолидированного отчета ?

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



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

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

И только, после этого программа сможет выполнить консолидацию всего периметра.



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


Наконец, сформируем консолидированный отчет по прибыли.

Обратим внимание на следующее:

  • (1) В состав показателя «Выручка опт» вошла выручка по аналитике «Выручка ВГО». Как раз, это результаты корректирующих документов «Операция»;
  • (2) Для формирования отчета нам нужно включить режим (нажать на кнопочку на верхней панели формы отчета) «Использовать для расчета показателей в т.ч. и предварительные данные». Тем самым «обратный» режим «Использовать данные только утвержденных отчетов» нужно отключить.
Все это необходимо сделать, так как пока у нас не регламентировали процесс утверждения отчетности.

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

О настройке регламентов , планировании и автоматизации управления процессами в «1С:Консолидации» я расскажу в следующих статьях.

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

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


В нашем примере будет использован способ (1).


Профиль распределения можно использовать как «ручной» (т.е. вводиться / корректироваться будет самой форме распределения), так и автоматический.




Применим автоматический профиль. Для этого откроем справочник «Базы распределения» и настроим базу распределения «Пропорционально затратам Торговые системы ООО»



Таким образом:
  • Введен новый профиль распределения, назовем его «Пропорционально затратам по Торговые системы ООО»;
  • В разрезе аналитик «Организация, Период, Сценарий, Валюта» значение профиля будет рассчитываться как сумма затрат (показатель из отчета Затраты (опт)) по контрагенту «Торговые Системы ООО»;

    В нашем примере, профиль получается таким: по организации «Б» - сумма затрат на Торговые системы – 24100, по организации «А» - 5084.
После того как профиль настроен, вернемся в консолидированный отчет о прибыли и перейдем в режим «Распределить значения» показателя «Затраты и услуги».

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

Так же можно настроить параметры каскадного распределения показателей.

Завершающим шагом процесса обратного распределения является формирование документов «Операция (обратное распределение)». Выполняется это из формы распределения по кнопке «Сформировать корректировки».

«Сформируем корректировки» и посмотрим документ «Операция», который получился в результате:



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

«1С:Консолидация» имеет развитые возможности для элиминации, консолидации и корректировке отчетности.

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

Для целей контроля корректности (сходимости) отчетности специально существует механизм проверки показателей. Это удобно использовать для камерального контроля отчетности.

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

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

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


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

  • Что же «осталось за кадром» ?
  • Какие возможность конфигурации «1С:Консолидация» еще предстоит рассмотреть ?
По большей части, это разнообразные сервисные возможности конфигурации. И они значительно упрощают процесс подготовки и анализа отчетности.

Перечислю эту функциональность:
  • Подсистема «Универсальная финансовая отчетность» (обработка и получение произвольных отчетов через XLS/MXL);


  • Планирование и управление процессом формирования отчетности;


  • Механизмы аналитических отчетов, панелей, рассылок (оповещений);


  • Использование сбалансированной системы показателей.
Об этих и других возможностях программы я планирую рассказать в следующих статьях.

Продолжение следует .

С уважением , Горский Михаил.
Фото:

Внедрение 1С:Консолидация. Управленческая отчетность. Часть 1.


Цель данной статьи – показать основные возможности, продемонстрировать технологию (методологию) подготовки управленческой отчетности средствами программы «1C: Консолидация данных Проф, ред 2».

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


Технические специалисты смогут узнать :
  • Как можно подключить к программе Консолидация различные источники данных, как получать из них любые данные и использовать их при формировании отчетности.
  • Как «устроена» программа Консолидация, как осуществлять манипуляцию и преобразование данных в ней.
Аналитики-внедренцы смогут узнать :
  • Какую методологию (по шагам) можно использовать для подготовки управленческой отчетности;
  • Какие сервисные возможности (а их много J) предусмотрены в программе для подготовки, формирования, анализа и корректировке отчетности.
Демонстрацию технологии и всех приемов я буду излагать на сквозном примере - простом, но приближенным в реальной практике.

Мною планируется продолжать рассмотрение методологий работы с 1С:Консолидация (на сквозном примере) и в следующих статьях.

А пока что, представляю вашему вниманию первую статью из этого цикла.

Постановка задачи

1.1 Исходные данные



1.2 Постановка задачи

Далее, перейдем к решению одной из задач подготовки упр. отчетности: формирование отчета о прибыли.

Сейчас, введем некоторые упрощения в задачу. Часть вопросов (например, исключение внутригрупповых оборотов) будут рассмотрены мною в следующих статьях.

Таким образом, оптовые продажи и консолидацию отчетности группы (пока что) рассматривать не будем. Отчет по прибыли будем формировать по:


· данным розничных продаж магазинов;
· расходу запасов (продуктов) со складов;
· начисленной зарплате;
· прочим расходам.

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

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

Важным требованием к отчетности (которое должно выполняться) является т.н «аудируемость» отчетов. Т.е необходимо обеспечивать:

· Возможность последовательного аналитического раскрытие показателей отчета (сначала по магазинам, а далее по другим аналитикам – номенклатурные группы, виды расчетов, амортизационные группы и т.д.).

· Возможность проанализировать взаимосвязи показателей. Осуществить т.н. «факторный анализ».

· Возможность зафиксировать т.н. «аудиторский след». Т.е фиксировать корректировки и примечания к отчетности.

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

1.3 Методики решения задачи на базе «1С:Консолидация проф ред.2»

Перейдем к решению задачи : рассмотрим методику применения продукта «1С: Консолидация» по шагам.

Шаг 1: Ввод начальной информации.

2.3.1 Введем данные о юр. лицах, входящих в состав группы компаний.


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

Это относится к внутрифирменным продажам (а точнее, к «нереализованной прибыли» по ВГО).


2.3.2 Введем данные о составе периметра консолидации.

Именно периметр консолидации (как таковой) используется для открытия периода отчетного периода (периода формирования отчетности).



Состав инвесторов орг. единиц и расчет долей владения вводить не будет. Будем считать, что все принадлежит одному собственнику (100 %).

2.3.3 Введем сценарий.

Сценарий является обязательной, консолидирующей аналитикой периода формирования отчетности.



Отчетность будем формировать с периодичностью – месяц.

2.3.4 Заполним справочник «Периоды»

Период, так же является обязательной аналитикой формирования отчетности.




Обратим внимание, что заполнение периодов (по подпериодам) может выполняться программой автоматически.

2.3.5 Загрузим курсы валют, рассчитаем средние курсы валют.

Загрузка из интернета (или установка «в ручную») курсов валют осуществляется в программе обычным образом.


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

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




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

2.3.6 Создадим «регламент» подготовки отчетности

В справочник «Регламенты подготовки отчетности» добавим элемент «Основной регламент» и заполним его организационную структуру.




«Регламент» подготовки отчетности будем использоваться (указан) при открытии периода формирования отчетности.

2.3.7 Откроем отчетный период .

Теперь все готово, для открытия отчетного периода. Введем новый документ «Управление отчетным периодом».





Откроем период «Апрель 2012», по сценарию «Факт». Далее, будем формировать отчетность за этот период.

Для контроля заполненных данных сформируем отчет «Состав по периоду сценария».




Итак, все в порядке. Первоначальные данные внесены в систему, период формирования отчетности открыт. Далее, можно переходить к настройке источников получения данных..

Шаг 2: Подключение источников данных (информационных баз)

2.3.8 Настройка аналитик учета .

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


В нашей задаче это будут:

  • Подразделения (аналитика продаж, начисления з/п, расходов по аренде);


  • Склады (аналитика расхода продуктов со складов);


  • Номенклатурная группа (аналитика продаж и расхода продуктов);


  • Виды расчетов (аналитика начисления з/п)


Добавим все указанные аналитики в справочник «Виды аналитик». Рассмотрим это на примере аналитик «Подразделение».



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



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

Флажок «Макет» указывает программе «какие реквизиты аналитики нужно выводить в таблицу группы раскрытия».

2.3.9 Подключение информационных баз 1С

Теперь можно переходить к регистрации в программе внешних информационных баз 1С.


Весь список баз будет храниться в программе, базы будут сгруппированы по типам информационных баз и их назначением.

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

И так, добавим в справочник «Типы внешних информационных баз» элементы: ЗУП 82 и Производство 77.



Сразу поле «Эталонная ВИБ» заполнять не будем, сначала добавим нужную базу в справочник «Внешние информационные базы», а затем выберем эту базу в поле «Эталонная ВИБ».



После того, как все типы баз и базы созданы можно переходить к настройке механизма сопоставления аналитик «внешняя база ---> база Консолидация».


2.3.10 Сопоставление аналитик внешей базы и базы Консолидации.

Настроим механизм сопоставления. Сделаем это на примере аналитики «Виды расчетов».


Так как данную аналитику нужно получать из базы «ЗУП 82», то выберем тип базы «ЗУП 82» и по кнопке «Перейти» отроем форму «Справочники внешней информационной базы».



Здесь нужно остановиться на одной особенности программы 1С: Консолидация. А именно на том, что в качестве аналитик сопоставления внешних информационных баз не могут выступать виды расчетов. Т.е справочники, перечисления, документы могут, а ПВХ – нет.

В нашей задаче обойдем это ограничение простым способом – введем в базе ЗУП 82 вспомогательный справочник «_ВидыРасчетовОсновые» и обеспечим его синхронизацию с ПВХ. Технически, это реализуется просто.

Далее, загрузим метаданные внешней ИБ, после чего перейдем к настройке сопоставления аналитик.

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

Обратим внимание, если реквизиты аналитики базы Консолидация имеют агрегатный тип, то можно указать настройку соответствия. И тогда, перенос данных будет осуществляться по указанной настройке.

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



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

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

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

Как известно, cуществуют разные варианты подключения из 1С к внешней SQL базе. Например, через драйвера БДODBC или ADO. Однако, выберем другой подход: создадим в конфигурации Консолидация новый внешний источник данных и будем получать данные через этот источник.

Тот факт, что потребуется внести изменения в типовую конфигурацию Консолидация, он- не существенен, так как изменений в части типового решения не будет. Мы просто добавляем новый источник данных и все.

При этом, главное преимущество «внешних источников» перед подключением непосредственно через драйвера – это возможность формирования запросов штатными средствами 82 и (главное) использование т.н. «объектных» запросов.



Т.е возможность «через точку» обращаться к связанным таблицам данных.

«Один раз настроенный» нужным образом источник данных существенно сократит в дальнейшем трудозатраты на создание множества различных запросов к SQL базе.

Фактически, можно будет настроить удобное «представление» получения данных для целей упр. отчетности.

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

Общая схема получения данных и формирования отчетности будет такой:




Шаг 3: Получение и консолидация произвольных данных из баз 1С 8.2

Создадим вид отчета «Расходы по зарплате (упр)» и настроим правила его заполнения.



В отчете будет один показатель «Начислено ЗП УПР». Способ получения показателя – заполнение. Группа раскрытия (аналитик) & «По подразделениям и видам расчетов».



Для правила заполнения показателя, способ получения данных будет – «Произвольный запрос к внешней базе» (других вариантов для получения данных регистра расчета в Консолидации не предусмотрено)



Правила заполнения параметров запроса настраиваются здесь.



Настройка соответствия аналитик и полей запроса настраиваются здесь.


Далее, можно сформировать экземпляр отчета «Расходы по зарплате УПР» и автоматически заполнить его данными.




Обратим внимание, что в «теле отчета» можно отключить/включить раскрытие по аналитикам.

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




Шаг 4: Получение и консолидация произвольных данных из баз 1С 7.7

Создадим вид отчета «Расходы продуктов УПР» и настроим правила его заполнения.

У отчета будут 3 показателя:
  • Израсходовано (ед)


  • Себестоимость одной ед


  • Сумма (стоимость) расхода.

Показатель «Сумма расхода» будет вычисляемым по следующей формуле:




Показатели «Израсходовано» и «Себестоимость ед» будут заполняться из базы 1С 7.7.

Для получения этих данных из базы 1С:7.7 используем мощную технологию
метазапросов

Предположим, что простых способов (обороты по регистру накопления) получения данных из базы 7.7 нет. И такая ситуация, кстати, является очень даже распространенной L.

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

Для этих целей, в 1С: Консолидация, предусмотрен способ заполнения показателя «Функция на встроенном языке».




После того, как выборка запроса получено, необходимо будет заполнить специальную (предусмотренную конфигурацией Консолидация) таблицу значений с именем «ТаблицаЗначенийОперанда».

В этой таблице нужно будет программно заполнить аналитическое раскрытие показателя. Вот и все.


Однако, перед тем как заполнить таблицу раскрытия показателя, нам необходимо самостоятельно (программно) обеспечить перенос данных аналитик раскрытия.

Сделать это нужно корректным образом, использую все ранее введенные настройки и правила сопоставления аналитик.

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



На этом подготовка механизмов заполнения отчета «Расходы по зарплате (упр)» завершена.

Сформируем новый экземпляр этого отчета и автоматически заполним его данными.




Шаг 5: Получение и консолидация данных из произвольных внешних баз

По аналогии с предыдущими отчетами, создадим вид отчета «Выручка по магазинам и номенклатурным группам». У этого отчета будет один показатель «Выручка УПР» и группа раскрытия «Подразделение – Номенклатурная группа».

Показатель будет иметь тип «заполнение» и способ заполнения «Функция на встроенном языке». После получения выборки данных, так же необходимо будет обеспечить трансформацию внешних данных в показатели 1С Консолидации.



Далее, все готово для формирования экземпляра отчета «Выручка по магазинам и номенклатурным группам»



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

Итак, уменьшим сумму выручки до 98000000.



Обратим внимание, что в Консолидации заложен механизм обратного перераспределения значения итогового показателя по аналитикам раскрытия.

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


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

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

Шаг 6: Настройка сложных макетов отчетности

На примере вида отчета «Косвенные расходы» процесс создания более сложных макетов отчетности.

По условию задачи, отчет «Косвенные расходы» будет заполняться пользователями «в ручную».

При этом, в отчете будут следующие показатели:

  • Задолженность по аренде (вводится);


  • Начислено по аренде (вводится);


  • Итого к оплате по аренде (рассчитывается);


  • ….. (данные по аренде вводятся по группе раскрытия «Подразделение»)


  • Начислено НДС (вводится);


  • Начислено НДФЛ (вводится);


  • Итого налогов (рассчитывается);


  • …..


  • Амортизация (итого, рассчитывается);


  • ….. (данные по амортизации должны вводиться по амортизационным группам)

  • Итого, общая сумма косвенных расходов (рассчитывается).
  1. Добавим в отчет показатели: задолженность по аренде на начало, начислено, итого. Добавим группу раскрытия «Подразделения» и укажем ее для этих показателей. Для показателя «Итого к оплате по аренде» введем соответствующую формулу:
  1. Аналогично, добавим показатели по налогам и всего налогов. При этом, группу раскрытия по налогам вводить не будем.


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



  1. И наконец, введем формулы для итоговых показателей: «итого амортизация» и «итого общая сумма расходов»




Закончим настройку макета отчета, сформируем новый экземпляр отчета «Косвенные расходы».

Заполним отчет: введем показатели по группе раскрытия (аренда), введем остальные. При этом вычисляемые и итоговые показатели заполняться автоматически.


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



Этот отчет, в частности, позволяет наглядно увидеть вклад одних показателей в состав других показателей.



По кнопке «Перейти» можно открыть и посмотреть список движений текущего документа «Экземпляр отчета».

При записи документа значения показателей записываются в регистры сведений «Значения показателей отчетов синтетика» (показатели без групп раскрытия) и «Значения показателей отчетов 1..5» (по группам раскрытия).

Стоит заметить, что если в отчет (который уже был записан в базу) вносятся коррективы (например, на с 2700000 значение показателя уменьшается до 2500000) , то после записи документа корректировочные движения программа автоматически рассчитывает и добавляются в набор движений. Благодаря этому, в программе обеспечивается возможность анализировать изменения показателей (т.н. «аудиторский след»).

Шаг 7: Перераспределение данных, формирование консолидированного отчета.

И так, все промежуточные отчетные формы готовы. Можно создавать результирующую отчетную форму.

Добавим в нее следующие показатели:

  • Выручка. Группа раскрытия – аналитика «Подразделения». Способ заполнения – по данным промежуточного отчета «Выручка по магазинам»


  • Зарплата. Группа раскрытия – аналитика «Подразделения». Способ заполнения – по данным промежуточного отчета «Расходы по зарплате упр»


  • Расходы продуктов Группа раскрытия – аналитика «Склады». Способ заполнения – по данным промежуточного отчета «Расходы продуктов»


  • Аренда Группа раскрытия – аналитика «Подразделения». Способ заполнения – по данным промежуточного отчета «Косвенные расходы»


  • Налоги Группа раскрытия – без группы. Способ заполнения – по данным промежуточного отчета «Косвенные расходы»


  • Амортизация Группа раскрытия – без группы. Способ заполнения – по данным промежуточного отчета «Косвенные расходы»

Пример настройки показателя «Выручка» :



Далее, добавим в отчет результирующие показатели:

  • Валовая прибыль (Выручка минус Зарплата минус Расходы продуктов) ;


  • Прибыль итог (Валовая прибыль минус Налоги минус Аренда минус Амортизация)

    У обоих показателей будет одинаковая группа раскрытия - аналитика «Подразделения».

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

Аналогично, нужно будет поступать и с другими косвенными расходами.

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

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

И так, распределение выполним в обработчиках заполнения итоговых показателей.



Будем использовать уже знакомый нам способ получения данных «Функция на встроенном языке».

Для реализации алгоритма перераспределения нам понадобятся две функции из модуля объекта «Настраиваемый отчет»:


  • Функция «ТаблицаЗначенийПоказателей»;
  • Функция «ТаблицаПоказателя»

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


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

И в завершении, результаты «вернем» в предопределенную таблицу значений «ТаблицаЗначенийОперанда». Все.

Шаг 8: Анализ, раскрытие показателей, корректировка отчетности.

Сформируем новый экземпляр отчета «Прибыль по магазинам».

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



Отдельно можно увидеть «из каких промежуточных отчетов» был получен выбранный показатель:



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




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

Заключение

Программа «1С:Консолидация» позволяет «строить» сложные, многоуровневые отчеты и пакеты отчетности. При этом, программа глубоко «заточена» на все фазы подготовки, анализа и корректировки отчетности.

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


В данной статье рассмотрены далеко не все возможности программы «1С:Консолидация».

О многих других возможностях (а именно)


  • Урегулирование ВГО, Элиминация, Консолидация;


  • Шаблоны процессов и управление процессом подготовки отчетности;


  • Создание аналитических отчетов, панелей, рассылок;


  • Использование сбалансированной системы показателей.

я планирую рассказать в следующих статьях.
Фото:

Внедрение 1С:Консолидация. Управленческая отчетность. Введение.

Если заинтересоваться вопросом «Какие тиражные решения 1С прошли внедрение и работают на сегодняшний день ?»,то мы увидим такую «картину»...

Таким образом, ERP (комплексные) системы занимают только ~ 8 % от всего рынка.

А УПП, наиболее развитое по функциональности решение, всего лишь 2 %.

Конечно же, это объяснимо, т.к. только 2% предприятий реально могут «потянуть» УПП,
в то время как остальные 98% не имеют ресурсов (и материальных и организационных)
для внедрения ERP-систем.

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

Конечно же, развитие здесь не останавливается, многие предприятия продолжают работать на системах, построенных еще с начала 2000-х годов (на пример 1С.7.7).

В этих системах много несовершенства, их трудоемко развивать; долго и дорого решать новые,
более сложные задачи.

Однако, экономическая и инвестиционная (в первую очередь!) ситуация таковы , что большинство
компаний не готовы к технологическому прорыву в этом направлении.

Драйверами развития (особенно в РФ) могут быть только руководства верхнего звена компании.

Если, например, менеджеры по продажам, работают в достаточно несовершенной, программе 1С,
и при этом (допустим) вынуждены еще использовать и EXCEL (так как у них нет в программе нужных им отчетов), то эта проблема, зачастую, не особо заботит руководство.. «Ну ничего, справятся, привыкнут…
А кому уж очень не нравиться, то возьмем другого сотрудника».

И тем не менее, интерес к ERP-системам есть и его проявляют именно руководители верхнего звена и представители руководства.

Все, конечно, осознают, строимость и трудозатратность внедрения ERP-систем, однако руководству компании (более всего другого) необходима профессионально подготовленная, финансовая управленческая информация.

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

Вот ERP-система как раз и может формировать такую отчетность, однако ERP - это только для 2%-8% процентов компаний.

Так как же быть остальным 92 % ?

Обращу внимание еще на один момент: характерно, что при наличии на предприятии различных программ и средств автоматизации, финансовое руководство, руководители верхнего звена все равно (в итоге) отрывает программу EXCEL...

Далее они "что-то туда копирует", "что-то там пересчитывают", кому-то (слава богу :-)) помогают макросы.

И в итоге, главные выводы и управленческие решения принимаются именно на основании данных, полученных
в этих вот электронных таблицах.

Такая, вот, автоматизация; стоит задуматься о ее причинах…

Тогда возникает вопрос: "А каким образом может быть построена эффективная информационная система, на выходе который формируется профессиональная управленческая отчетность ?"

Профессиональная означает то, что отчетность должна быть «аудируемой».

Т.е, например фин. директору «одним взглядом» нужно увидеть, например, сумму прибыли по выбранному направлению деятельности, а так же суммарно по всем направлениям и отклонение от предыдущего периода.

И формировать множество разных отчетов ему некогда, должно быть «все в одном флаконе».

Однако, если у фин. директора, вдруг возникнет желанию углубиться и понять: «А откуда взялась такая-то прибыль ?», то отчет «должен уметь» раскрываться и показать "от куда эти данные образовались и т.д".

Так какие же есть варианты построения системы, что бы получать такую отчетность ?
Первый, классический путь – это внедрение ERP – системы.

Но важно понимать, что такая система должна будет работать очень четко, «как часы».


А иначе (при условиях общей неорганизованности РФ и не соблюдения регламентов), ERP-система не сформирует такую отчетность.

В программах "1С" класса ERP (например, УПП) есть достаточное количество узких мест, не пройдя которые

(не исправив ошибки, не выправив «косяки» в движениях и т.д), процесс формировании отчетности остановиться.

Характерные примеры - расчет с/c, закрытие месяца по бухгалтерии.


А как всем известно – «Где тонко, там и рвется..»


Очень важно, что ERP-системы основаны на классическом, транзакционном принципе.

Т.е документы хронологически отражаются в учете, формируют проводки, а отчеты «снимают» результаты.


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

Теперь, для иллюстрации, приведу один пример из жизни…


Рассмотрим ситуацию с компанией, в которой для целей упр. финансового учета внедрен и используется

блок «Казначейства», и в частности сотрудники оформляют документы «Заявка на расходование д/с».

Предположим, что далеко не все сотрудники соблюдают регламент оформления в программе документов

«Заявка на расход д/с». И в результате, частенько в документах не правильно указывается подразделение затрат - т.е к чему относятся затраты и т.д.

В соответствии с транзакционным принципом, эти документы при проведении отражаются в учетных регистрах

и формируют «по аналитике», получается, не правильную, искаженную картину. Хотя по сумма и др. контурам
учета все в порядке.

Понятно, что по таким данным адекватьный БДС не сформируешь.


И что приходится делать работнику фин. службы ? Выявлять, исправлять и перепроводить (уже с установленной правильной аналитикой) документы «Заявки на расходование д/с».


Однако при этом, такое «перепроведение» "как бы никому" (ни каким другим службам и пользователям программы), кроме него самого и не нужно.


По суммам в документах все «ОК», контрагент правильный, расчеты – в порядке, бухгалтерия – тоже никаких претензий не имеет...

А вот тот факт, что приходится «перепроводить» документы прошлого периода (допустим бухгалтера уже закрыли период, а фин. отдел еще не отчитался), то это реально будет мешать многим.

Но давайте посмотрим на решении проблемы по иному.. А как было удобно, если бы была возможность поправить данные непосредственно в самом отчете. Т.е. увидев «перекос между аналитиками», финансист

тут же бы поправляет (перераспределяет по аналитикам) цифры и все!

Однако, в концепции транзакционных систем, так делать нельзя! Нужно вводить сторнирующие документы…
Таким образом, очевидно, что сам «транзакционный принцип» построения учетных систем усложняет процесс формирования итоговой финансовой отчетности.


Еще надо заметить, что процесс корректировок (сторнирования) документов в «транзакционных системах», является узким местом.


Так как:
  • «перепроведение» документов может привести к нежелательным изменениям в учете, где до этого было все ОК.
  • автоматическое формирование (точечное) только нужных нам сторно - движений (или функционал корректного «допроведение» документов) - это мало - где реализовано.
Вот и выходит, что альтернативный принцип построения системы формирования упр. отчетности – это не транзакционный принцип.

Как раз пример того, как финансист смог бф откорректировать данные отчета БДС непосредственно в самом отчете, и далее, эти корректировки бы автоматически учлись при формировании других отчетов - это пример системы, которая построена по такому, не транзакционному принципу.

И такая система, а точнее говоря “движок для построения таких систем» в линейке продуктов "1С" есть.


Это – программный продукт «1С: Консолидация».

И для «1С : Консолидация» уже созданы и доступны некоторые «типовые модели - настройки», например «Трансформация и Консолидация по МСФО».

Есть, к примеру, и методическая модель «Бюджетирование торговой компании», которая как раз нацелена на формирование управленческой отчетности.


Однако, для эффективного формирования упр. отчетности, в первую очередь важно именно наличие «движка». Т.е системы, внутри и по правилам которой можно описать нужные нам (оптимальные именно для нашей компании) процессы автоматизации:
  • Cбора, получения данных;


  • Последовательного преобразования, трансформации данных;


  • Формирование группы, иерархии отчетов;


  • Анализа и корректировки отчетов;
ИТОГО: если вы решаете задачу формирования управленческой отчетности, то я рекомендую вам обратить внимание на продукт «1С: Консолидация Проф».

Это – путь формирования профессиональной управленческой отчетности без необходимости перехода на ERP-системы.



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

СКД 1С 8.2; Внешние источники данных 1c 8.2; OLAP 1c, 1с OLAP



1. Предисловие

Цель данной статьи – показать быстрый, не трудный, (но при этом) мощный способ формирования аналитической (OLAP) отчетности средствами 1С и УПП 1.3.
Ключевым здесь являются сочетание технологий:

  • (1) новейших возможностей платформы 8.2;


  • (2) новых прикладных программных механизмов конфигурации УПП (редакция 1.3);


  • (3) технологии использования метазапросов и консоли запросов к базам 1С 7.7 (подробнее о технологии см. статью)

По пункту №1 будет продемонстрировано использование «Внешних источников данных» - новый объект конфигурации 1С 8.2.

По пункту №»2- технология формирования сложных отчетов на основе «фирменных» шаблонов и системе компоновки данных (СКД).

По пункту №3 – удобных способ получения данных 1С 7.7. (при этом, кодировать на 1С 7.7 вообще не придется!).

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


  • б) тем, кто хочет научиться сокращать свое время (трудоемкость) на разработку таких отчетов.
2. «А что тут нового ?»

«Мы и так это делаем. Как - знаем и умеем. Что тут нового?»

Такие суждения весьма распространены. Более того, во многом – справедливы.

Однако..

Взглянем немного назад (лет на 10 назад) и вспомним (кто застал :-) это время), что задачи формирования консолидированных отчетов из разных источников данных часто встречались и решались еще средствами 1С: Предприятия 7.7.

Подход к решению подобных задач – примерно такой:

  • (1) Данные из разных источников данных (различные базы данных, другие базы данных 1С, файлы с данными) загружались в 1С: Предприятие 7. Чаще всего агрегировались в многомерных массивах данных – Таблицах Значений.


  • (2) Эти данные соединялись (спасибо, программистам) c другими данными текущей базы 1С.


  • (3) Средствами «1С» формировался сводный отчет.

Характерно, что возможности формирования печатных форм (в т.ч. возможности оформления и расшифровки) во многом превосходили (на тот момент) иные технологии формирования отчетов.

Итак, прошло 10 лет . И что поменялось ?.

Принцип (в общем) остался прежним: «собираем данные вместе» средствами 1С 8.2 и формируем отчет.

Однако, благодаря новым технологиям «1С» (см. выше) стало возможных:

  • (1) Резко сократить написание программного кода. По сути, достаточно написать запросы или соединить иным способом таблицы данных.


  • (2) Удобнее и быстрее формировать запросы к внешним источникам данных, а так же предыдущим версиям 1С (7.7).


  • (3) Существенно повысить сложность формирования отчетов (в т.ч. многоуровневых группировок, кросс-таблиц, диаграмм).


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

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

Это реальная задача из моих текущих проектов. Трудоемкость реализации - всего-то 3 часа.

3. Постановка задачи (пример); план тех. решения.


Структура информационной системы (учет розничных продаж - чеки) некой организации представлен на рисунке:


Задача :

В 1С:УПП необходимо обеспечить формирование отчета (анализ почасовых продаж) на указанную дату.

Отчет должен формироваться по данным внешней SQL базы «RBM».
Для формирования отчета (получения данных о товаре) необходимо использовать внешнюю базу данных на 1С:7.7.

Структура отчета должна быть такой :



После анализа (структуры отчета и исходных данных) составим такой план решения:

  • (1) Отчет имеет сложную структуру: есть группировки по вертикали (день по часам) и по горизонтали (магазин, вид операции, номенклатура, чек). При этом группировка по номенклатуре должна быть с учетом иерархии.

    Программировать самостоятельно сложный вывод информации в такой отчет – трудоемко и долго. Гораздо правильнее (и легче) поручить формирование данного отчета системе компоновки данных 1С 8.2. Еще есть вариант использовать механизм 1С 8 «Построитель отчетов».

    Однако, УПП 1.3 «заточена» на использование СКД; в частности, в конфигурации уже предусмотрены общие модули «Типовые отчеты..». К тому же отчеты на СКД могут работать в режиме тонкого и WEB-клиента. Да и вообще, СКД более мощная и гибкая технология, чем например «Построитель отчетов».

    И так, c механизмов формирования отчетов мы определились – будем использовать СКД.

  • (2) Для формирования отчета данные о товаре (связка товара 1С и базы RBM) нужно получать данные из внешней базы 1С Предприятия 7.7. Предварительно загружать в базу УПП эти данные мы не будем, а получим их динамически.

    Для этих целей будем использовать OLE-соединение 1С:7.7 --> 1C:8.2.

    Писать код на языке 1С:7 не будем, а воспользуется технологией метазапросов.


  • (3) Самым характерным моментом в нашей задаче является то, что нам нужно будет получать данные (для формировании отчета) из внешних источников: базы MS SQL и 1С:Предприятия 7.7. А далее, соединить эти данные, за тем нужным образом скомпоновать и вывести в табличный документ.

Компоновку и вывод мы поручим системе СКД, а вот получить данные и их «соединить» - это придется делать «в ручную».

Получить данные их внешней базы MS SQL всегда (как раньше было, так и сейчас) можно создавая com-объекты доступа к базам. Например:

Соединение SQL = Новый COMОбъект( "ADODB.Connection" );

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



Далее, перечислю наиболее востребованные преимущества использования этого механизма (по сравнения с работой с внешней базой через com-объект):
  • (1) Формировать запросы и использовать внешние источники можно так же, как и «родные» (внутренние). Т.е используем консоль отчетов, СКД, обращаемся к этим источникам, так же как, к примеру, можно обратиться как к справочникам конфигурации.

    Есть правда, некоторое существенное ограничение, что в одном запросе нельзя использовать внешние и обычные (внутренние) таблицы данных. Так же нельзя формировать временные таблицы в запросах для внешних.

    Однако соединять внешние и внутренние источники средствами СКД можно.

    В нашем примере, соединять внешние и внутренние источники мы будем, но использовать для этого СКД не станем. У нас задача сложнее: нужно соединить данные из MS SQL (сделаем это внешним источником данных), УПП 1.3 (внутренний источник) и 1С: Предприятие 7.7 (здесь воспользуемся OLE-соединением и метазапросами).


  • (2) В платформе 8.2 есть конструктор таблиц внешнего источника данных, который существенно упрощает импорт структуры таблиц внешних баз данных в конфигурацию 1С.

    Отдельного внимания заслуживает такой аспект: «1C» сама помогает определять т.н «объектные типы» данных; так же мы самостоятельно можем тоже их настраивать.




В нашем примере, определен объектный тип dbo_t_Check. Это ссылка на таблицу чеков.

Что это нам дает ?

Возможность составлять запросы к внешней базе данных вот так:


Т.е в запросе можно обращаться к полям таблиц «через несколько точек» (разыменовывание полей в запросе, как это предусмотрено для объектов 1С):

dbo_ t_ CheckItem. ch_ zreport_ id. z_ teremok_ id.

Очевидно, таким образом можно упростить формирование сложных запросов.
  • (3) Предусмотрена возможность настроить права доступа (ролей пользователей) к таблицам внешних источников данных. Так же есть возможность задать (например, на русском языке) собственные имена (внутри конфигурации 1С) для таблиц и полей внешних данных.

Таким образом, можно подняться на более высокий уровень абстракции (уйти от всяких-там :-) OrderItemID...), что упрощает понимание структуры таких источников и работу с ними для программистов-прикладников 1С.

4. Решение, комментарии


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

Для этого быстренько создадим некий служебный справочник «__ВнешниеДанные» (можно создать и регистр сведений без периодичности и подчинения). На втором этапе (шаге) мы этот вспомогательный справочник использовать уже не будем и спокойно его удалим.

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

У справочника будут такие реквизиты :
  • ДатаВремяЧека (ДатаВремя)
  • Магазин (строка)
  • Товар (номенклатура)
  • НомерЧека (строка)
  • Стоимость (число)
  • Количество (число).

Теперь, сформируем отчет их этих «условных внешних» данных, настроим структуру отчета в соответствии с нашей задачей.

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

Кстати, разработчики УПП сами активно используют данную технологию. Вот, например, в конфигурации УПП есть отчет «ОтчетПоСистемеПрав».
Сохраним его «как внешний отчет» и отроем в конфигураторе.



Сразу видно, что данный отчет был разработан как раз на основе шаблона типового отчета. И мы поступим таким же образом:
  • Откроем основную схему компоновки данных отчета и заменим (имеющийся там) запрос, на наш.

    Выберем указанные поля из нашего справочника «__ВнешниеДанные» и установим условие (ГДЕ КонецПериода(ДатаВремяЧека,День)=&КонецПериода.

    Так как нам нужно будет группировать продажи по часам, то в запросе ДатуВремяЧека нужно выбрать так:


    НачалоПериода(ДатаВремяЧека,Час) как ЧасПродаж.
    Ресурсами отчета укажем: Количество и Стоимость.

    Используем конструктор настроек СКД для вывода данных в таблицу:




На этом закончим (пока что) настройку СКД и сохраним отчет.

Далее запустим отчет в режиме предприятия, заполним параметр «Конец периода», отметим показатели (количество и сумма) и сформируем отчет.

В результате, у нас должен сформироваться отчет нужной структуры, но при этом используются данные справочника «__ВнешниеДанные», а нам нужны данные полученные из баз: RBM, 1C:77 и УПП.

Так же нам самостоятельно придется соединить эти данные для вывода в отчет.

Однако теперь мы точно знаем, что итоговая структура данных которые нам нужна – это обычная таблица, поля этой таблицы точно должны соответствовать полям справочника «__ВнешниеДанные».

Данные мы соберем (соединим) в объекте «ТаблицаЗначений» и подключим ее (как источник данных) к СКД и шаблону типового отчета. Как это сделать – рассмотрим на третьем шаге, а пока перейдем ко второму шагу: «Получение данные из внешних источников».


  • (Шаг 2) С начала, создадим в нашей конфигурации новый внешний источник данных «RBM» и импортируем структуру таблиц «t_Check» и «t_CheckItem».

Не забудем создать объектный тип «dbo_t_Check», в этом нам так же поможет конструктор таблиц внешнего источника данных.

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





Итак, нужные данные из базы RBM получены. Теперь получим данные из базы 1С: 7.7. Нам нужно получить соответствие номенклатуры в «1С» и товаров в RBM. Соответствие кодов номенклатуры и товаров как раз и храниться в базе 1С:7.7.

Данные их 1С:7.7 (быстро и без программирования на этой платформе) можно получить так:




Далее в УПП напишем процедуру получения данных из 1С:7.7 и соединим данные по номенклатуре из базы 1С:7.7 и УПП:


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


Итак, таблица значений «ТабЧеки» готова. Теперь нужно выполнить ее подключение к СКД и шаблону типового отчета. Для этого перейдем к третьему (заключительному) шагу работы над отчетом.
  • (Шаг 3). С начала, внесем некоторые коррективы в СКД. Заменим источник данных типа «запрос» источником данных типа «Объект». Назовем этот источник данных «ТЗПродажи».

Настроим, что бы поля данных (и их типы) были точно такие же, как и у исходного источника данных (запроса).


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

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

Код будет примерно таким:





Обратим внимание на то, что для формирования запроса к базе RBM нам нужно указать дату. И эта дата предусмотрена в нашей СКД (это параметр – «КонецПериода»).

Однако требуется передать значение этого параметра (дату которую указал пользователь перед формированием отчета) в наш запрос. Для этого можно немного доработать шаблон типового отчета - передавать в процедуру «ПолучитьВнешниеДанные» параметр «КомпоновщикНастроекПользователя».

А далее, получать значения параметров очень просто (вот пример):

мКонецПериода = КомпоновщикНастроекПользователя.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода";);

Последнее, что нужно обязательно сделать - это передать нашу таблицу значений (подготовленные данные) в набор внешних данных для СКД. Имя набора (в данном случае "ТЗПродажи";) должно совпадать с именем источника данных, созданного нами в СКД.


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





На этом, все.


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

Получить файлы решения и др. материалы можно здесь...
Фото:

.$.
Открыть

    © 2011 Горский Михаил.