Кирилл Соппа, финансовый директор ООО "СП-НОВОСИБИРСК"
Cегодня необычный блог, потому что я опишу продукт, который делал не для себя, а для своего коллеги-предпринимателя. Мне это было интересно с точки зрения применимости облачных продуктов Google для автоматизации бизнес-процессов в различных сферах бизнеса. В этот раз будет розничная торговля.
У моего товарища несколько розничных точек продаж, причем находятся они в разных городах. Кассу каждая точка ведет в своем отдельном файле Excel, периодически скидывая их бухгалтеру, который проводит некоторую консолидацию и архивирование. Естественно, приходится некоторым образом править данные, поскольку продавцы на точках, обычно не знакомые с учетной политикой и методологией ведения управленческого учета, не всегда правильно могут определить смысл операции. Мало того, иногда они еще и формат файла меняют некорректным образом. Доступ к полной информации создает риск злоупотреблений на местах. После моих публикаций мой друг обратился ко мне с вопросом: нельзя ли как-то этот бизнес-процесс оптимизировать с помощью облачных технологий.
Первоначально завели служебный аккаунт в Google. В нем создали Таблицу для ведения единой кассы по всем точкам. Доступ к ней предоставлен только бухгалтеру и владельцу бизнеса. Формат таблицы примерно такой:
Для каждой точки создали свою Таблицу для ежедневного кассового отчета. Выглядит она следующим образом:
Шапка таблицы и все что выше запрещено для редактирования. Продавцы на точках могут заполнять лишь тело Таблицы. В колонке “Операции” установлена проверка данных, которая позволяет выбрать операцию из фиксированного справочника на втором листе, доступном для редактирования только владельцу аккаунта. Сам справочник заполняется формулой IMPORTRANGE из единой таблицы-справочника, что обеспечивает единый справочник операций для всех таблиц.
В меню добавлен пункт “Кассовый отчет”, в котором есть подпункт “Отправить”. При выборе этого подпункта вызывается скрипт, который переносит данные в сводную кассу, недоступную для продавцов на точках (скрипт, запускаемый из меню по URL вызывает опубликованный скрипт, который имеет права доступа к данным в служебном аккаунте), автоматически дополняет данные датой отчета и наименованием точки, в текущей таблице переносит остаток и ставит следующую дату (все это происходит в запускаемом по URL скрипте и недоступно для редактирования пользователю).
По триггеру ежемесячно сводная таблица в формате Excel отправляется почтой на определенный адрес для архивирования.
Вот таким нехитрым способом с помощью облачных технологий Google мы провели реинжиниринг бизнес-процесса. Какие преимущества мы получили?
Во-первых, мы получили простую, нетребовательную и доступную географически распределенную систему. Единственным требованием является наличие интернета. Устанавливать дополнительных клиентских программ не требуется - вся работа осуществляется из браузера. Дополнительно обучать работе с программой людей скорей всего не понадобится - работа осуществляется в дружественном интерфейсе электронных таблиц, функционал которых уже де-факто является стандартом и им владеет большинство кандидатов на рынке труда. В случае поломки компьютера на точке - оператор может внести данные на любом другом устройстве.
Во-вторых, мы бесплатно получили гибкую и доступную систему администрирования пользователей и объектов учета. Чтобы нанять человека нужно чтобы тот сам себе завел бесплатный аккаунт в Google. После этого мы даем ему доступ на редактирование к таблице точки, на которой он работает - все, человек включен в нашу учетную систему. Если мы захотим его уволить - удаляем его из редакторов таблицы - человек может идти со своим аккаунтом на все четыре стороны - нам не надо переименовывать или удалять пользователей, менять пароли. Если мы захотим добавить новую точку, то надо просто скопировать таблицу для точки - встроенный скрипт пользовательского меню копируется вместе с таблицей. Для добавления новой операции в справочник тоже достаточно дописать новую операцию в таблицу. Все эти действия совершаются штатными средствами приложений Google, для этого не требуется привлечение программиста.
В-третьих, консолидировав реестр операций, мы, фактически, автоматизировали управленческий учет бизнеса. В сводной таблице теперь легко формулами многофакторного суммирования или сводными таблицами получить и отчет о прибылях и убытках и управленческий баланс. Достаточно добавить лишь данные инвентаризаций, которые в любом случае должны происходить в реале.
Код скрипта здесь.
Last Updated on Понедельник, 21 ноября 2016 22:26
Hits: 5004
Кирилл Соппа, финансовый консультант
Примерно год назад я написал блог про методологию составления платежного календаря и пообещал раскрыть некоторые технические моменты реализации. Поскольку все это уже успешно работает в облаке, то размещаю продолжение на своем ресурсе бизнесвоблаке.рф.
Блог был опубликован на ресурсе моего друга Игоря Николаева findirector.com и также на сайте журнала “Финансовый директор”. С последними будьте аккуратны, они не дадут Вам ничего прочитать без регистрации, а потом начнут упорно спамить регистрационную почту. Ссылку на них я даю потому, что написать такой блог меня побудила статья на эту же тему на сайте журнала “Финансовый директор”, в которой четко обозначены проблемы и написано ЧТО делать, но не написано КАК, что в принципе для них характерно. В своем блоге я тактично разбираю этот материал, поэтому если у Вас уже есть подписка на журнал “Финансовый директор” или Вы не боитесь спама, то можете сравнить как делать “для галочки” и как делать чтобы был результат (как говорится, сам себя не похвалишь - никто не похвалит).
Платежный календарь “как по договору” у нас ведется в 1С. Для этого мы пользуемся штатными средствами 1С, такими как “Планируемое поступление ДС” и “Заявка на расходование ДС”. Я не знаю предприятия, в котором фактические платежи осуществляются строго по запланированному месячному календарю от и до, поэтому платежный календарь “на каждый день” мы ведем в Гугл Таблице. Реализовано это несложно. План на месяц изначально составлялся в Таблице. Переход в облако упростил процесс планирования. Раньше каждый сотрудник планировал свою часть в своей таблице Excel, потом все это куда-то пересылалось, корректировалось, объединялось. Сейчас все делается в одной Гугл Таблице в разграниченным по листам доступом и сводным листом. В нужный момент доступ всем отключается и сводные данные переносятся в платежный календарь. Вид плановой таблицы я приведу ниже.
Факт в платежный календарь заливает специально обученный человек. Чтобы упростить и максимально автоматизировать эту задачу был создан специальный отчет в 1С под формат Таблицы. Программиста для этого нанимать не обязательно, это можно сделать SQL-запросом в “консоли отчетов” 1С. Останавливаться не буду подробно, потому что во-первых, структура запроса зависит от конкретной конфигурации 1С, во-вторых, если Вы только начали внедрять похожую схему можно сформировать Таблицу под имеющийся в 1С отчет (пишите мне, если есть вопросы, попробую ответить). Из отчета данные переливаются легко и быстро, нажатием комбинаций клавиш Ctrl-C, Ctrl-V. Вот так выглядит лист “Факт”:
Поскольку мы делаем не “для галочки” нужно убедиться, что данные правильные. Для этого надо сверить остатки. Их мы ведем на соседнем листе “Остатки”:
Считаются они автоматически следующей формулой многофакторного суммирования:
=SUMIFS('Факт'!$E:$E;'Факт'!$B:$B;'Остатки'!$C$1;'Факт'!$A:$A;'Остатки'!A10)+C9
То есть, мы суммируем все значения в колонке E на листе “Факт”, у которых расчетный счет (значение в колонке B на листе “Факт”) совпадает с указанным в заголовке (ячейка C1) и дата совершения операции (значение в колонке A на листе “Факт”) совпадает с указанной в строке (ячейка A10). Полученная сумма это оборот по счету за день и нам надо прибавить остаток на предыдущий день (ячейка C9). В Excel есть аналогичная функция многофакторного суммирования - СУММЕСЛИМН().
Основной целью платежного календаря является планирование и предотвращение кассовых разрывов. Для этого составляется так называемый бюджет движения денежных средств - БДДС. Фактически, это подневной план остатков на расчетных счетах. Выглядит он примерно так:
Изначально он формируется на основании поданных планов на месяц. Теперь надо сделать так, чтобы он пересчитывался в соответствии с фактически совершенными платежами и поступлениями. Причем пересчет должен быть автоматическим, потому что любые ручные операции это источник человеческого фактора. Для этого остаток на утро мы формируем формулой:
=IF(A9>'Отчет'!$B$4;E8;'Остатки'!B9)
В Excel эта функция называется ЕСЛИ(). Если дата строки в БДДС больше установленной текущей даты (лист “Отчет” ячейка B4) - остаток на утро берется плановый, если дата равна текущей или меньше - то остаток берется по факту. Таким образом, при внесении факта и установки текущей даты, БДДС до конца месяца пересчитывается автоматически (уже при написании блога возникла идея скрипта, который при появлении отрицательных остатков будет автоматически рассылать тревожные письма кому надо).
Важнейшей функцией платежного календаря является то, что он является инструментом контроля платежной дисциплины. Приведенных таблиц для этого недостаточно. Например, нам вовремя не оплатил клиент как было запланировано, из-за этого нам не хватило денег оплатить нашему поставщику очередной платеж. Если мы посмотрим на фактический остаток (около нуля) то он будет практически равен плановому. Хотя очевидно, что ситуация не соответствует плановому сценарию. У финансового директора должен быть инструмент, позволяющий ему оперативно увидеть, что имеются отклонения по поступлению денег от клиентов и эти отклонения покрыты за счет денег, запланированных на ключевых поставщиков. Сейчас я расскажу как это сделать.
В первую очередь для этого нам нужен ключ - дополнительная аналитика, позволяющая различать платежи. В моем бизнесе этой аналитикой является сделка. Мы со всеми контрагентами ведем учет по сделкам, для этого ведем в 1С документы “Заказ покупателя” и “Заказ поставщика” и привязываем к ним план и факт платежей. В платежном календаре план поступлений на листе “Поступления” выглядит так:
Сначала поясню таблицу, которая начинается в девятой строке. Первые пять колонок копируются исполнителями из 1С при планировании календаря на месяц. В колонке “Просрочено” стоит простая формула
=IF(D10$B$2;10)
и условное форматирование. Если дата поступления позже даты отчета (ячейка B2), то ставится ноль, если дата поступления раньше - ставится единица и клетка закрашивается в красный цвет. В колонке “Оплачено” стоит формула
=SUMIFS('Факт'!E:E;'Факт'!C:C;'Поступления'!A10;'Факт'!D:D;'Поступления'!C10)
Этой формулой суммируем все фактические поступления денег от данного контрагента по данной сделке. Достаточно было условия по сделке, контрагент тут стоит для дополнительного контроля ошибок. И в последней колонке стоит сумма отклонения поступлений по данной сделке. Теперь легко формируется верхняя сводная таблица. Там мы суммируем в строке “План” все плановые поступления, у которых в колонке “Просрочено” стоит единица
=SUMIFS(E:E;F:F;1)
Это планируемые поступления на сегодня. В следующей ячейке суммируем факт (колонка G) по тем же строкам (с единичкой в колонке “Просрочено”). Ставим отклонение - просто разность. Аналогично со строкой “Поступления план (вперед)” - сумма планируемых и фактических платежей у которых в колонке “Просрочено” стоит 0 (дата поступления позже текущей). Строка “Поступления внеплан” формируется так. В первой плановой ячейке очевидно всегда 0, это же внеплан. В ячейке C6 формула
=SUMIFS('Факт'!E:E;'Факт'!F:F;"Оплата покупателя")-C5-C4
то есть, общая сумма фактических поступлений на текущую дату без тех поступлений, которые были запланированы, их мы уже посчитали. Таким образом, мы видим отсюда, что из запланированных на месяц 75 103,12 рублей поступлений 18 518,73 рублей должны были по плану поступить на текущую дату. Из поступивших на расчетный счет 23 839,81 рублей только 656,15 были запланированы, а остальное это новые продажи. Дефицит плана поступлений составил 17 862,58 рублей, он весь был покрыт новыми сделками.
Аналогичным образом формируются плановые листы по поставщикам, зарплате и любые другие какие Вы сочтете нужными для своего бизнеса. И уже можно собрать сводный отчет о движении денежных средств на листе “Отчет”:
Отсюда видно что запланированные поступления меньше на 245 871,99 рублей, при этом частично этот дефицит покрывается за счет новых продаж. Итого по поступлениям мы в плюсе на 5 615,01 рублей. Платежи в графике, но нам пришлось внепланово совершить платеж в размере 21 000,00 рублей. Итого на сегодня отклонение от платежного календаря на 15 384,98 рублей. При этом запас на счетах у нас был всего 4 868,00, то есть мы уже не укладываемся и понятно из-за чего.
Для работы данного платежного календаря достаточно всего трех ручных действий:
И состояние наших финансов я легко могу понять практически в любой момент из любой точки планеты где есть Интернет.
Напоследок скажу пару слов про выбор ключа - дополнительной аналитики для разнесения транзакций. Крайне важно, чтобы выбор ключа был обусловлен реальными бизнес-процессами компании, то есть, определялся теми понятиями, которыми оперируют Ваши исполнители во взаимодействии с исполнителями контрагента (Ваши снабженцы с менеджерами поставщиков, Ваши менеджеры по продажам со снабженцами клиентов, Ваши логисты с диспетчерами транспортных компаний) и которые закреплены в договоре: счета, сделки, поставки, поручения, спецификации и так далее. У нас работа ведется по сделкам, поэтому дополнительный ключ это сделка. Исполнитель по договору в текущей работе вынужден классифицировать транзакции по сделкам - если это предоплата, то надо заказывать товар и планировать отгрузку, если это закрытие дебиторки по сделке, то ничего делать не надо. Поэтому такая аналитика в платежном календаре не добавляет работы и не путает исполнителей. Например, можно взять производство. Там поставки сырья обычно осуществляются по длящемуся договору, который не делят на сделки и условия оплаты не изменяются в течении длительного периода. Тогда ключом должен быть договор (или лучше контрагент, если с этим контрагентом больше нет других договоров). Не позволяйте финансистам выдумывать дополнительные аналитики исходя из своего понимания! В случае, если дополнительные аналитики для планирования будут навязаны исполнителям финансовой службой, БДДС на Вашем предприятии так и останется сакральным знанием финансовой службы и непонятной аббревиатурой. В то время как при должном подходе это может быть очень эффективным инструментом управления бизнесом.
Last Updated on Воскресенье, 25 сентября 2016 22:59
Hits: 6857
Кирилл Соппа, финансовый консультант
В любой компании, число сотрудников в которой чуть больше, чем помещается одновременно в поле зрения, есть процедуры, предусматривающие визирование документов руководителем. И у нас в компании любые сделки на закупку товаров или услуг согласовывались операционным директором. Компания развивалась, мы открыли еще один офис в Новосибирске и филиал в Кемерово. Процесс согласования превратился в пересылку сканов по почте. И в этом году нас спасло облако Google.
Особенность работы с сервисами Google в том, что какое бы действие не совершал пользователь, будь то отправка электронной почты, работа с таблицей, создание документа, он обязательно должен авторизоваться. Фактически, пароль от аккаунта Google является аналогом подписи - это средство идентификации, которое пользователь носит с собой. Для внешних контрагентов она не является значимой, но внутри организации, где правила арбитража устанавливает сама компания, электронная подпись на основе авторизации Google является рабочим инструментом. И условно бесплатным.
Самым простым вариантом авторизации действий является штатные инструменты разграничения настроек доступа к документу. То есть, создать в Google-таблице отдельные поля, доступ к редактированию которых предоставить только одному человеку, имеющему право подписи. Например, вот так мог бы выглядеть реестр оплат на день:
Первые четыре колонки редактируются всеми, кто уполномочен ставить в оплату счета. К пятой колонке есть доступ только у финансового директора. У специалиста, который совершает платежи доступ на просмотр всей таблицы. И все эти люди могут находится в разных концах нашей необъятной Родины. А процесс согласования платежей будет прост и эффективен.
Замечу еще, что простым сценарием на Google Apps Script можно автоматически отключать права редактирования у всех кроме финансового директора, скажем, в 13-00, а в 9-00 заново подключать, и отправлять в 14-00 специалисту, осуществляющему платежи, напоминание по электронной почте, что реестр оплат готов. Таким нехитрым способом можно добиться автоматизации платежной дисциплины, чтобы все платежи включались в реестр с 9-00 до 13-00. Можно еще добавить колонку, права редактирования которой будут только у специалиста, который осуществляет платежи. Он в ней будет отмечать выполнение платежа. И настроить автоматическое уведомление по электронной почте финансового директора в 16-00, что-то вроде “из 3 согласованных платежей оплачено только 2”. Словом, если бизнес-процессы протекают в облаке Google, средства автоматического контроля за их исполнением можно настроить очень легко.
Вернемся к электронной подписи. Показанный выше вариант не всегда является удобным. Ведь он показывает согласование только тех реквизитов, которые мы выписали в строку. А на бумажном документе таких реквизитов может быть очень много, например, счет от поставщика, содержащий десяток позиций. Да и подписанный документ потом можно предъявлять в любых бизнес-процессах, а не только в тех, где задействован реестр в Google-таблице. Грубо говоря, хотелось бы иметь сканированный документ на Google Диске, про который мы могли бы определенно сказать, что он подписан.
Такая возможность есть. С помощью сценариев на Google Apps Script может ставить пометки на файлы, лежащие на Google Диске. Можно не только пометить, что файл подписан, но и сделать пометку какой пользователь его подписал и любые другие пометки. Я реализовал эту возможность в своем бизнесе.
В нашей компании была такая процедура:
Ответственность закупщика была в том, чтобы на каждый заказ поставщику у него была бумажка с подписью. Когда нужно было произвести оплату по некоторому заказу поставщику, закупщик находил в папке счет, на котором был подписан нужный номер и подпись опердиректора и предъявлял его.
Все это мы автоматизировали с помощью облака Google следующим образом:
Таким образом, мы получили на Google Диске полный аналог бумажного счета с подписью опердиректора и отметками на нем номера и даты заказа из 1С. Причем мы можем как угодно перемещать его на Диске, например, в конце года переместить в папку “Архив 2016”, он своих пометок при этом не потеряет. И воспользоваться им можно в любых бизнес-процессах компании автоматически.
Например. Оперативный учет мы ведем в 1С. Там автоматически формируется календарь оплат. Сейчас мы копируем список платежей из 1С в Google-таблицу и система автоматически по номеру и дате заказа (которые у нас в пометках на файле записаны) ищет на Диске файл с пометкой “Подписан”. И вставляет на него ссылку. Если такого файла нет - значит сделка не согласована.
Полученный эффект:
И все это для офисов в разных городах. Бизнес в облаке очень эффективная вещь.
Если есть вопросы, меня всегда можно найти в наших тематических группах Google+.
Группа Google Apps Script Russian: http://bit.ly/googlescriptru
Группа Google Apps Russian: http://bit.ly/rugoogleapps
Группа Google Документы и Диск: https://bit.ly/rudrive
Ну или в фейсбуке. Всем удачи!
Last Updated on Воскресенье, 03 июля 2016 15:11
Hits: 4854
Кирилл Соппа, финансовый консультант
Управленческим учетом я занимаюсь всю свою карьеру в разных ролях: и как наемный сотрудник, и как внешний консультант, и как финансовый директор в собственном бизнесе. Смею надеяться, обладаю некоторой экспертностью в этой темой и хочу поделиться новым трендом.
Основой методологии управленческого учета является формирование единого реестра хозяйственных операций с нужным количеством аналитики. Базовым набором являются движения денежных средств с указанием реального смысла транзакций. Современные программы для ведения учета позволяют проставлять правильные управленческие аналитики при внесении выписки автоматически на основании заданных шаблонов. Более продвинутые системы используют элементы казначейства и задают нужную управленческую информацию еще на этапе планирования платежа. В этом нет ничего крамольного, таким образом реализуется базовый принцип автоматизации учетных программ: “информация должна вносится в месте ее появления”.
Но сегодня мы наблюдаем новые тренды. ФНС стала определять контур бизнеса не по формальным а по фактическим основаниям. И суды полностью на стороне налоговиков. В делах (А29-459/2014, А11-556/2014, А12-14630/2014, А40-153792/2014, А27-5033/2015, А27-17015/2014) должниками по налоговым доначислениям во всех трех инстранциях были признаны вновь созданные юридические лица вместо уже проверенных по следующим критериями (в разных делах набор критериев разный):
Говоря проще, в правоприменительной практике закреплено понятие бизнеса в бытовом смысле этого слова, так как понимают бизнес обыватели и учредители. Фактически, ФНС относит налоговую задолженность не к формальному юридическому лицу, а к бизнесу в бытовом смысле слова, использовавшему это юридическое лицо в своей деятельности.
В таких условиях для компаний, активно использующих схемы налоговой оптимизации, современные программы ведения управленческого учета и казначейства становятся очень токсичными инструментами. Я позволю себе привести кое-какие цитаты из публичных (в свободном доступе) бесплатных вебинаров одной компании-интегратора (называть я ее по понятным причинам не буду), продающей такую программу. И кратко прокомментирую каждую цитату.
“Если у Вас много юрлиц, то можно загружать банковскую выписку каждую по отдельности, можно всех их собрать в одну папочку и нажать кнопку загрузить (…) в любой компании в России, которая что-то продает и что-то покупает, в ней уже есть до пяти юрлиц (...) с теми стройками, что мы сталкивались, в них даже больше 15 юрлиц, это включая ипешников, то есть, у них 3-4 своих компании и где-то до двадцати ипешников (...) и всю эту информацию им надо собирать”. Все мы понимаем прекрасно для чего строительной компании нужны ипешники, но эта схема работает только пока создается видимость того, ипешник осуществляет независимую деятельность.
“Одно юрлицо купило товар, а другое юрлицо продало товар клиенту (...) движение между юрлицами оно исключительно внутреннее (...) товар мог не приехать со склада на склад, скорей всего там и оставался (...) как избежать задвоения? Для этого надо всех таких контрагентов в системе пометить как компании группы, наши компании (...) программа, видя продажу одного своего юрлица другому автоматически проводит эти движения как транзитные”; еще цитата: “В 1С может быть из Ваших 6-7 юрлиц только 5 (...) простой ипешник если платит налоги простым способом, но 1С у него нет (...) эти ипешники тоже должны быть занесены в систему и указаны как компании группы (...) движения по ним должны уходить на внутрихолдинг”. Прямое указание всех юридических лиц и ИП, которые задействованы исключительно в процессе извлечения налоговой выгоды. И не скажешь уже, что пометка “наша компания” появилась по ошибке, выручка вся стоит как “внутрихолдинг”.
“В России в силу некоторой специфики практически у каждой компании может быть до 5 юрлиц: одно покупает, другое продает, третье хранит, четвертое еще что-то, пятое ИП (...) очень довольно сложная структура (...) во всех таких компаниях отчетность по конкретному юрлицу не интересна руководству, ему интересна консолидированная информация, собранная из разных источников”. Если отчетность по юрлицу никому не интересна, то это опять же прямое подтверждение того, что юрлицо создавалось с какой-то иной, не предпринимательской целью. А информация, кропотливо собранная и структурированная из разных источников в одном месте пригодится не только руководству компании.
“Финансовому директору выгодна система электронного согласования заявок (...) в бухучете у Вас просто не может быть нужных управленческих аналитик (...) вся необходимая информация заранее заносится в заявку инициатором платежа (...) можно предоставить доступ к согласованию заявок сотрудников не только финансовых подразделений, в том числе и для согласования предметных специализированных особенностей, например, айтишники правильность оплачиваемого оборудование, инженеры нужность и совместимость закупаемых ТМЦ”. Централизованное управление денежными потоками серьезный аргумент в пользу взаимозависимости юрлиц, а большое количество свидетелей (инициаторы платежа, согласованты) только облегчит работу налоговой.
Венцом всего этого являются логотипы бизнеса в разделе “наши клиенты” на сайте компании-интегратора, продающей эту систему для управленческого учета. Вот они мы, собираем всю информацию о наших движениях в одно известное место. На то, что удастся предотвратить доступ проверяющих в базу я бы не рассчитывал. Во-первых, полномочия силовиков у нас в последнее время сильно расширены вплоть до возбуждения уголовных дел, в рамках которых можно изымать все что угодно, а во-вторых, отключая и пряча на период проверки программу, автоматизирующую важнейшие бизнес-процессы в компании (управление денежными потоками, принятие иных управленческих решений), вы серьезным образом осложните свою операционную деятельность и увеличите риски потерь.
Я не критикую создателей программ для управленческого учета. Они делают правильный и качественный продукт. Просто этот продукт не очень подходит тем, кто отражает в правовом поле не ту бизнес-модель, на которой зарабатывает на самом деле. Управленческий учет такого бизнеса должен вестись с поправкой на агрессивные действия государства в части администрирования налоговой нагрузки. Ушли безвозвратно те времена, когда для оптимизации налогов достаточно было оформить формальный пакет документов, положить его на полку и спокойно работать. Сегодня все бизнес-процессы, включая управленческий учет, должны быть по возможности выстроены в соответствии с картинкой бизнеса, которую мы хотим показать налоговой инспекции.
Мне кажется, методология “безопасного” управленческого учета должна учитывать следующие несколько принципов:
Я, безусловно, продолжу изучение данной темы и все удачные решение буду публиковать в своем блоге. Управленческий учет должен помогать бизнесу, а не создавать проблемы.
Last Updated on Воскресенье, 19 июня 2016 11:09
Hits: 4246
Кирилл Соппа, финансовый директор ООО "СП-НОВОСИБИРСК"
Cегодня хочу рассказать Вам о еще одном кусочке моих бизнес-процессов, который я автоматизировал с помощью облачных технологий Google. Надеюсь Вам будет интересно, потому что данный кусочек есть почти у всех компаний, которые чуть больше чем сверхмалые. Речь идет о процедуре согласования договоров.
Процедура на первый взгляд не представляет никакой сложности. Но это в том случае, если все комментаторы согласны с первоначальной версией. А как только начинаются правки, сразу возникают сложности. Во-первых, необходимо вести учет версий. Во-вторых, необходимо вести учет правок комментаторов. В-третьих, необходимо иметь возможность сопоставить какие правки какой версии соответствуют. Помимо того, в обязанности комментаторов может (и должна) быть включена проверка сопутствующих документов к договору (например, учредительные документы). Как это может быть реализовано с помощью подручных средств без покупки программы документооборота? Примерно так:
Вариант вполне рабочий, но есть несколько вопросов. Например, как убедится подписанту что в папке проекта лежит все, что там должно лежать? Скажем, через некоторое время хотим подать в суд на контрагента а учредительных документов в папке нет. В рассылке были, а в папке нет. Еще вопрос, как комментатору увидеть процесс согласования? Я как комментатор с большим стажем могу сказать, что когда мне прилетает договор, который я когда-то смотрел, у меня сразу же возникает желание посмотреть какие правки я предлагал и учтены ли они. А не вспоминать их мучительно, читая договор. Помимо того, мне как финансовому директору нередко бывает интересно какие замечания к договору внесли юрист и бухгалтер. Ну и напоследок эта схема не позволяет отследить вернулся ли нам оригинал подписанного договора поскольку обычно хозяйственные операции начинаются после обмена сканами подписанных договоров, а дальше у исполнителя уже снижается мотивация доводить подписание договора до конца.
Эти вопросы легко решаются в облаке.
При рассылке на согласование (пункт 6) вместо рассылки собственно документов рассылается ссылка на последнюю версию и ссылка на папку проекта. Эти ссылки доступны комментаторам из любого места Земного шара, поскольку находятся на Google Диске.
При получении ответа комментатора (пункт 7) ответственный должен не только сохранить его в папку проекта, но и вставить в предварительно заведенный в папке проекта Google Документ “Лист изменений” ссылку на этот ответ с датой и временем его получения. И любой комментатор в любой момент в этом документе может увидеть историю согласования данного договора.
Процедура стала лучше, но требует еще немного ручных операций. Но уже видно, что общедоступными инструментами Google можно решить практически любой вопрос, связанный с этой бизнес-процедурой. Так, можно вести реестр проектов в опубликованной в интернете Google Таблице, предоставив доступ к колонке “сдан оригинал” только сотруднику, ответственному за ведение папки с оригиналами договоров. Тогда в любой момент из любой точки можно будет посмотреть сколько договоров у Вас в работе и по каким не сдан оригинал.
В целом, у нас получилось вполне рабочее решение. Договоры с учредительными документами лежат каждый в своей отдельной папке, в ней же лежит документ с историей согласования и таблица с текущим статусом согласования у комментаторов. Доступ тоже легко администрируется: к папке проекта имеют доступ только нужные люди в соответствии со своим статусом - комментаторы имеют доступ на чтение, ответственный сотрудник имеет доступ на редактирование. Поскольку это все находится в облаке, работать все люди могут из любой локации. И самое главное - это решение бесплатно!
По большому счету остался один минус: много ручных операций по переносу информационных потоков из одного приложения в другое (из почты на диск, обновление реестра при заведении новой папки на диске и тд и тп). Самое обидное что от человека в этих операциях не нужен мозг а нужны только руки. Значит это можно и нужно автоматизировать. Тут нам на помощь приходит Google Apps Script! За несколько часов я создал Web-приложение - сайт в интернете, который автоматически выполняет все возможные ручные операции (пп. 3, 4, 6, 7, 8 полностью, частично пп. 1, 2, 5). Выглядит это примерно так.
Панель проекта, которую видит ответственный:
Комментаторы добавляются по их электронной почте. Версии договора и сопутствующие документы автоматически загружаются в нужную папку. Кнопка “Отменить проект” доступна ответственному сотруднику для закрытия проекта без подписания, кнопка “Закрыть проект” доступна специально назначенному контролеру, который должен принять оригинал, убедиться в полном комплекте документов и сделать любые другие действия, после которых проект можно считать выполненным. Любое действие любого участника система автоматически записывает в автоматически созданный Google Документ “Лист изменений”. Он выглядит примерно так:
Все документы проекта открываются по ссылкам из этого документа. Комментаторов можно добавлять любых, не только имеющих какой-либо корпоративный или внутренний аккаунт. Необходимое условие - чтобы у комментатора была электронная почта. На нее скрипт автоматически рассылает уведомление о каждой новой версии. размещенной на согласование и прикладывает лист согласования, из которого комментатор может освежить в памяти всю историю и открыть по ссылкам все документы. Действия комментатора тоже автоматизированы. Под каждого комментатора создается документ, к которому доступ есть только у него. В меню этого документа есть надстройка “Документооборот”.
При выборе пункта меню “Сохранить замечания” замечания автоматически отправляются исполнителю и включаются в “Лист изменений”. Также меняются все необходимые статусы. Пункт меню “Согласовать без замечаний” делает все то же самое, но текст документа игнорируется а статус комментатора становится “Согласовано”.
В моем приложении еще много функционала, я не буду тут описывать все. Порассуждаю еще про преимущества и недостатки этого решения в сравнении с коробочными приложениями для электронного документооборота.
Главное преимущество на мой взгляд это гибкость. Что я в это вкладываю? Это решение является надстройкой над общедоступными бизнес-приложениями Диск, Таблица, Почта. Оно лишь автоматизирует некоторые ручные операции. При этом Вам всегда доступны все данные и реестры. Вы можете сами вручную делать любые операции, а не только те, которые предусмотрены интерфейсом приложения (с коробочными продуктами, являющимися черным ящиком для пользователя это невозможно). Скажем, уволился у Вас сотрудник, надо изменить ответственного у его незакрытых проектов. Это редкое событие и смысла нет его программировать. Новый ответственный просто через интерфейс заводит новый проект, мы заходим под нужным аккаунтом на Google Диск (в котором лежат все папки) и просто переносим все файлы из старой папки в новую! И все работает дальше с сохранением истории статусов и прочего. Или, например, у нас есть на согласовании очень важный контракт, мы провели переговоры с контрагентом и хотели бы зафиксировать результат этих переговоров. Интерфейс приложения не позволяет этого делать, но мы опять же заходим под нужным аккаунтом и руками пишем в “Лист изменений” все что нужно с ссылками, картинками и таблицами.
Второе преимущество это цена. Все с кем я общаюсь все время указывают мне на то, что я сам пишу и якобы поэтому получается “квазиэкономия”. Но давайте представим что Вы привлекли программиста для написания кода на Google Apps Script. Я утверждаю, что это все равно будет намного дешевле чем написать специализированное приложение. Потому что
а) бизнес-процесс Вы разрабатываете сами а не программист; Вы это и лучше умеете делать и все инструменты в Вашем распоряжении: 99% офисных сотрудников умеют обращаться с такими приложениями как Диск, Почта браузерная, Таблицы (полный аналог Excel);
б) если делать отдельное приложение, то программисту придется также создавать какие-то структуры данных, что в случае с Google не потребуется - все это уже написано и бесплатно предоставлено гуглом (Таблицы, Диск, Документы и так далее);
в) встроенная “облачность”; то есть, если мы хотим написать приложение с похожим функционалом - а именно, доступность каждому комментатору где угодно, нам надо позаботиться о сервере и о публикации в сети наших данных;
г) различные редкие операции каким-то образом программисту придется предусматривать в своем коде, в то время как мы их просто проигнорировали;
д) стоимость владения: зависимость от программиста ниже; в случае если он вдруг прекратит поддержку продукта для Google мы всегда можем какие-то вещи делать руками, а вот с приложением придется изобретать велосипед, теряя эффективность в бизнесе.
Третье преимущество, на мой взгляд самое главное преимущество. Поэтому начну издалека. Каждый собственник хочет автоматизировать свой бизнес полностью. Это сама по себе сложная задача - описать весь бизнес в техзадании программисту. И даже если представить, что мы “уперлись рогом” и сделали это, к моменту программной реализации почти наверняка наше решение безнадежно устареет. Если же мы будем внедрять автоматизацию кусочно, то существует немаленькая вероятность возникновения проблем в будущем при сопряжении разных приложений, автоматизирующих разные куски нашего бизнеса. Эти проблемы почти наверняка будут “как-то решаемы“, но это, безусловно, дополнительные затраты, иногда немалые. С Google у нас таких проблем не возникнет, потому что в основу автоматизации положен единый стандарт хранения, обработки и доступа к данным. Поясню сказанное простым примером. Допустим, мы автоматизировали согласование договоров. Через некоторое время мы приступили к автоматизации согласования платежей и, безусловно, захотим узнать что у нас с наличием договора на момент совершения платежа. Нет проблем. Эта информация у нас хранится в Таблице Google, в которой ведется реестр договоров приложением “Документооборот”, нам известен к ней режим доступа и структура хранения информации - проще говоря мы знанием в какой колонке какие данные у нас записаны. А если бы мы купили коробочное решение или заказали бы свое? Сейчас нам надо было бы придумывать как нам залезть в структуру данных того приложения. И потом еще и как-то “помнить” как мы залезли, потому что в случае реинжиниринга процесса согласования договоров новое приложение нам надо писать с учетом этих влезаний. Резюмируя, на мой взгляд Google дает реальный шанс автоматизировать бизнес полностью, ну или хотя бы большую его часть, условно бесплатно.
В первую очередь, именно из-за последнего момента я и выбрал облако Google для автоматизации своего бизнеса и вот уже полгода последовательно впихиваю его в облако.
P.S.
К блогу прикладываю ссылки на код своего приложения “Документооборот”. Если у Вас платный аккаунт для бизнеса как у меня, то его можно брать и использовать. Если у Вас бесплатный одиночный аккаунт, то необходимо будет сделать кое-какие изменения в код, связанные с разделением ролей по аккаунтам (какой аккаунт будет у Вас в компании хранителем, как определить аккаунты, которые могут быть ответственным и и так далее). Любую помощь с этими вопросами Вам окажут я и мои товарищи в наших группах гуглохакеров в Google+.
Код: https://gist.github.com/kir-sf/30ad2085c68e54209045a5bb6dcb2a2e
Группа Google Apps Script Russian: http://bit.ly/googlescriptru
Группа Google Apps Russian: http://bit.ly/rugoogleapps
Группа Google Документы и Диск: https://bit.ly/rudrive
Last Updated on Воскресенье, 29 мая 2016 20:55
Hits: 12338
Кирилл Соппа, финансовый директор ООО "СП-НОВОСИБИРСК"
Чтобы сделать блоги об автоматизации бизнеса в облаке с помощью сервисов Google более интересными для финансовых директоров и предпринимателей, я решил сместить немного акцент от искусства программирования на Google Apps Script в сторону реинжиниринга бизнес-процессов. Поскольку сегодня на падающем рынке само уже ничего не продается, сегодня я хотел бы поговорить об организации системы продаж. Точнее, поделиться некоторым опытом, как это делали мы (о полученных результатах здесь).
Думаю, не сильно погрешу против истины если скажу, что самая распространенная система продаж в РФ: взять менеджера по продажам, пообещать ему хороший процент от продаж и терпеливо ждать. Конечно же, при этом, менеджера снабжают прайсами, каталогами и шаблонами коммерческих предложений, в некоторых случаях, проводят обучение, кое-где дают начальную базу “полуживых” клиентов, где-то “нарезают” фронт работы по географическим или отраслевым признакам. Но суть от этого меняется не сильно. А суть этой схемы простая: если менеджер не продаст, то ему платить ничего не надо. Никаких дополнительных издержек. Мы взглянули на эту схему по-другому: если менеджер не продаст — то и мы ничего не заработаем. А это уже меняет всё дело. Поэтому мы решили форсировать процесс продажи.
В нашем бизнесе, как и во многих, одним из важных этапов являются телефонные звонки (от холодных до звонков любой температуры). В холодных звонках главная сложность в том, что люди не то что не могут, они не хотят обзванивать потенциальных клиентов. Вторая сложность: большинство не могут отработать минимального возражения, потому что не имеют навыков и не замотивированы на это. Мне запомнился один характерный диалог с моей сотрудницей, специалистом по работе с клиентами, временно исполнявшей обязанности логиста.
— Я не хочу делать холодные звонки. Людям не до меня, а я буду звонить, отвлекать их, навязываться. А может им задвижки не нужны.
— Ты же ведь звонишь каждый день, чтобы заказать ГАЗель для доставки товара клиенту. А вдруг им тоже некогда, а тут ты со своими проблемами?
— Ээээ… Ну ведь они этим и занимаются!
— Мы тоже уже сделали несколько предварительных звонков этому потенциальному клиенту. Мы выяснили что он наш целевой и узнали лицо, принимающее решение по нашим материалам. Все остальные компании в план твоих звонков не попадают. То есть, тебе надо позвонить человеку, который постоянно только и думает о том, где ему взять наши задвижки. Тебе надо звонить не секретарше, директору или бухгалтеру, а конкретно этому человеку.
— А, ну тогда я согласна. Но обзванивать всех подряд по телефонной книге я не буду, только так, как Вы сказали.
Таким образом, разложив телефонную продажу на этапы и написав сценарии разговора для каждого этапа мы решили обе эти проблемы. У нас работала специалистом по работе с клиентами очень стеснительная девушка. Она была настолько стеснительная, что при устройстве на работу, увидев турникет на первом этаже бизнес-центра, в котором у нас располагается офис, сразу же позвонила в отдел кадров и спросила, как получить пропуск. Хотя если бы она не испугалась подойти к нему поближе, она бы увидела, что на нем всегда горит зеленая стрелка. И уволилась она в итоге из-за того, что приходилось делать очень много холодных звонков, отчего она испытывала дискомфорт. Но при этом эффективность ее обзвона на этапе была около 90%. И мне абсолютно не жалко было платить ей её оклад.
Теперь немного об автоматизации обзвона. Сначала все сценарии звонков мы реализовали просто в Microsoft Excel. Работать было неудобно, все-таки электронные таблицы не очень годятся для представления деревьев. Тогда мы перенесли все в Google Таблицу и создали простое веб-приложение (я потратил на его написание 2 часа, назвал его SalesScriptor) для отображения текущего вопроса и вариантов ответа к нему. По ссылке можно посмотреть, как это работает. Хотел бы еще раз обратить Ваше внимание на то, что с помощью Google можно автоматизировать бизнес-процесс постепенно. Сначала просто использовать таблицу, затем прикрутить к ней какие-то скрипты для автоматизации. Кстати, мы используем уже более усовершенствованный вариант. Поиск нужных данных в Таблице я осуществляю с помощью запроса (=QUERY()) и загружаю сразу два уровня дерева на клиента, потому что практика показала, что пауза между ответом клиента и следующим вопросом иногда становится слишком долгой. И все эти доработки на непрерывно работающем бизнесе и исключительно для его потребностей. В противном случае Вам пришлось бы тратить время на написание техзадания, потом ждать разработчиков, потом отлаживать… И так далее. А по времени миллионеров нет.
Ниже представлен исходный код приложения SalesScriptor, таблица сценариев и инструкция по заполнению таблицы. Если есть желание самостоятельно доработать код — ждем Вас в сообществах Google Apps Script, Google Apps и Google Документы и Диск. Да, и не забудьте в коде скрипта поменять ссылку на свою таблицу сценариев!
Инструкция
Таблица сценариев
Исходный код приложения
Продавайте больше, коллеги!
Last Updated on Понедельник, 08 февраля 2016 20:34
Hits: 6288
Кирилл Соппа, финансовый директор ООО "СП-НОВОСИБИРСК"
В 2015 году, несмотря на общее падение строительного рынка, нам почти удалось сохранить оборот и при этом почти в два раза увеличить чистую прибыль. Безусловно, не последнюю роль сыграла девальвация рубля, но далеко не решающую. Иначе удвоение прибыли было бы массовым явлением и информационный фон был бы другим. Ниже приведены ключевые, на мой взгляд, управленческие решения, которые позволили нам добиться результата.
В итоге ценовая, кадровая и кредитные политики позволили нам в условиях дефицита ликвидности поддержать оборотные средства компании на рабочем уровне. При этом оптимизация методов продаж сбалансировала негативное влияние повышения цен и сокращения отсрочек на оборот компании. Наше финансовое состояние и обширная клиентская база позволили нам “подобрать” покупателей у сокращающихся конкурентов.
Безусловно, я не хочу сказать, что мы на 100% предвидели то, как сложится 2015 год и с полным осознанием последствий приняли этот пакет мер. Не обошлось и без везения. Так, нам с трудом удалось получить многомиллионный долг с одного клиента за две недели до того момента, как он “ушел в бега” и оставил неоплаченными долги на сумму свыше десяти миллионов рублей (это только те, которые нам известны). Но везет сильнейшим, это было бы невозможно без повышенного контроля за состоянием дебиторской задолженности. В тяжелые времена серьезно выросла цена управленческих ошибок, поэтому крайне необходимо чтобы люди, принимающие ключевые решения в компании держали руку на пульсе.
Last Updated on Воскресенье, 31 января 2016 19:14
Hits: 5768
Кирилл Соппа, финансовый консультант
С того момента, как я использую облачные технологии Google для автоматизации бизнес-процессов, я активно интересуюсь отношением к облачным технологиям в среде своих коллег предпринимателей. Подавляющее большинство в моем окружении, за исключением совсем “дремучих” экземпляров, активно используют облако для хранения и обмена информацией (Google Drive, Dropbox, Яндекс.Диск, OneDrive, iCloud и другие). Кто-то использует для работы, кто-то для личных целей, но твердо можно сказать что облачное хранилище уже стало таким же обыденным инструментом как электронная почта. В данном материале хочу провести краткий анализ возможностей и недостатков облачных технологий Google для автоматизации бизнес-процессов, составленный мною по результатам моего опроса.
Самый главный страх предпринимателей - данные лежат не у тебя в надежном месте, а где-то там, непонятно где и доступ к ним может получить кто угодно. На мой взгляд не очень обоснованное мнение. Во-первых, что касается фискалов, то мне вообще непонятно что от них можно спрятать. Банковской тайны для них уже давно не существует, как в отношении физлиц, так и в отношении юрлиц. Подавляющее большинство хозопераций отражаются в АСК НДС-2. Междугородние поставки товаров скоро будут подтверждаться данными из системы “Платон”. ФНС уже наладила автоматический обмен данными с базами ФМС, ФТС, ГИБДД и активно продолжает эту работу в отношении других госорганов. Я думаю, с учетом общемировой тенденции и в отношении заграничных активов тоже скоро наступит полная прозрачность. Мое мнение - необходимо менять парадигму - изначально полагать что налоговой известно все и исходя из этого строить бизнес. В этой парадигме ничего не противоречит ведению документооборота в облаке. Во-вторых, мало знать, надо иметь возможность доказать свои доводы в суде. Я не знаком с правоприменительной практикой (да и не думаю, что она уже сложилась), но мне кажется что “привязать” данные, изъятые под протокол при обыске офиса к деятельности организации гораздо проще, чем какие-то данные, полученные сомнительными методами из облачных хранилищ.
Если речь вести об утечке коммерческой конфиденциальной информации конкурентам, то опять же сомнительно, что облачные технологии дают меньшую защиту, чем собственный сервер. У провайдеров облачных хранилищ работают специалисты как минимум не хуже, чем Ваши специалисты по IT. А для того, чтобы надежно уберечься от взлома, Вам необходимо вообще отключить свой сервер от выхода во внешний мир, что в сегодняшних условиях для бизнеса может стать драматичным.
Еще одним риском являются санкции. А точнее, блокировка сервисов как элемент разворачивающейся сегодня санкционной войны. Тут важно кто будет вводить санкции. Если РФ захочет “забанить” капиталистических провайдеров, то скорей всего обойти такую блокировку не составит труда. А вот если США решит ограничить владельцев российских айпишников доступа к сервисам своих информационных лидеров, то придется всем переходить на Яндекс.Диск. Но лично я расцениваю ограничения со стороны США как маловероятные и не беру такое развитие событий в расчет.
Мелькали в разговорах и риски, связанные с доступностью интернета. Лично я их также расцениваю как малозначимые. При сегодняшнем покрытии операторов связи организовать постоянный доступ в Интернет и резервный канал (например, в виде обычной 3G-флешки) вообще не представляется чем-то запредельным.
Вполне обоснованным риском в отношении использования облачных технологий является деятельность российских законодателей, например, 242-ФЗ от 21.07.14г. С этим риском приходится считаться, он есть, он вполне реален. К сожалению, наша действительность такова, что законодатели своими инициативами могут обрушить любой бизнес, даже не использующий облачных технологий. Сглаживает этот риск то, что ограничивающие законы обычно имеют отложенный срок вступления в силу.
Теперь о преимуществах. Поскольку я использую облако от Google, рассказывать буду про его преимущества.
Во-первых, экономия на оборудовании и ПО. Не надо покупать сервер и программное обеспечение, гораздо легче все администрируется. Вполне доступно любому сотруднику с высшим техническим (да и не только техническим) образованием.
Во-вторых, бесперебойность. Снижаются риски, связанные с повреждением или утратой оборудования и информации в результате различных форс-мажоров, как то, пожар, наводнение, короткое замыкание, изъятие оборудования госорганами и так далее.
В-третьих, гибкость. В своих блогах на сайте журнала “Финансовый директор” я писал о двух путях автоматизации бизнес-процессов: покупку “коробочного” ПО и выстраивания бизнес-процессов под требования купленной программы; либо выстраивание бизнес-процессов и разработку индивидуального ПО под свой бизнес. Оба подхода имеют преимущества и недостатки, которые я подробно разобрал в блогах. На мой взгляд Google дает компромиссный вариант: конструктор из “коробочных” бизнес-приложений (почта, электронные таблицы, редактор документов, календарь, задачи, сайты, карты, мессенджер), каждое из которых имеет устоявшийся функционал и общепринятый интерфейс, позволяющий использовать их любому сотруднику без дополнительного обучения. А также язык сценариев, позволяющий как расширять функционал отдельных приложений, так и связывать работу нескольких приложений. При этом данный подход дает возможность автоматизировать бизнес постепенно, участками и также участками его потом дорабатывать.
В-четвертых, доступность. Google снизил порог входа для людей, которые хотят использовать облачные технологии для автоматизации. Чтобы написать макрос для Excel не нужно нанимать квалифицированного программиста. Это вполне доступно любому человеку с аналитическим складом ума. С Google Apps Script ситуация аналогична - не надо быть матерым веб-программистом, чтобы написать скрипт. Язык скриптов - это язык сценариев, который оперирует объектами бизнес-приложений. Поэтому написание такого сценария аналогично созданию должностной инструкции для сотрудников. Поясню на простом примере. Представим, что у нас есть простая бизнес-процедура: менеджер по продажам ставит логисту задачу доставить товар клиенту. Мы поручаем менеджеру ставить задачу электронным письмом с указанием соответствующей темы, скажем “ДОСТАВКА”, указанием в теле письма нужных реквизитов и вложением, скажем, счета клиенту. А логисту поручаем при получении такого письма:
Доступ к таблице предоставляем менеджеру, чтобы он сам мог проконтролировать ход исполнения заявки и не дергал логиста звонками или письмами. После некоторого периода отладки процедуры в реальной работе мы можем написать скрипт, который будет выполнять часть ручных действий автоматически. Например, код, выполняющий пункты 1)-3) инструкции для логиста будет выглядеть примерно так (в скобках /*...*/ в коде пишутся комментарии):
var folder=DriveApp.getFolderById(INVOICES_ID); /* обращаемся к бизнес-приложению “Диск” и получаем ссылку на нужную папку */ var file=folder.create(taskMail.attach); /* создаем в папке файл из вложения в письмо */ var ss=SpreadsheetApp.open(DELIVERY_TASKS_ID).getSheets()[0]; /* обращаемся к бизнес-приложению “Таблица” и получаем ссылку на первый лист (нумерация с нуля) нужной таблицы */ ss.appendRow([taskMail.sender, taskMail.client, file.getUrl()]); /* добавляем в таблицу строчку с необходимой информацией */
Не сложнее должностной инструкции. С использованием справки Google написание таких сценариев доступно любому человеку с аналитическим складом ума или, скажем, имеющему высшее техническое образование. Вот что я имею ввиду, когда говорю, что Google подвинул средства автоматизации ближе к предпринимателям и пошатнул монополию айтишников на информационные системы.
Вот сравнение доступности и затрат на создание приложения из блога “Волшебная кнопка”:
№ | Операция | Без использования облачных технологий Google | C использованием облачных технологий Google |
1 | Создание сервера для хранения базы данных | Необходимо купить сервер и настроить доступ к нему из Интернета или арендовать (хостинг). Нужны услуги квалифицированного специалиста, требуется ОПЛАТА оборудования или хостинга и ОПЛАТА услуг специалиста | Заводим аккаунт в Google. Доступно любому, БЕСПЛАТНО |
2 | Создание базы данных и интерфейсов для работы с ней | Необходимы услуги разработчика ПО, требуется ОПЛАТА услуг программиста | Google Таблица на Google Диске, можно настроить разграничение доступа для оператора и владельца, доступно любому, БЕСПЛАТНО |
3 | Написание сайта, который отображает сводные данные из базы данных | Необходимы услуги разработчика ПО, требуется ОПЛАТА услуг Веб-программиста | Написание сценария для передачи данных из Google Таблицы на сайт, доступно любому, прочитавшему блог “Волшебная кнопка”, БЕСПЛАТНО |
Я для себя выбрал технологии Google для автоматизации бизнеса и продолжу публиковать внедренные решения. Если Вы тоже сделали выбор в пользу Google, есть сообщества G+, участники которых могут помочь с администрированием Диска и Документов, администрированием домена в платной версии, написанием сценариев на Google Apps Script.
Last Updated on Понедельник, 18 января 2016 00:05
Hits: 4531
Кирилл Соппа, финансовый консультант
Продолжая тему автоматизации с помощью сервисов Google, в канун Нового года подготовил для Вас легкий праздничный материал. О том, как я с помощью скриптов сделал поздравительную рассылку для своих клиентов и партнеров.
Итак, у нас есть на Google Диске праздничная открытка и список клиентов в Google Таблице, которым надо разослать поздравление, например, в таком формате:
№ | Название компании | Фамилия | Имя | Отчество | Почта |
1 | Индивидуальный предприниматель | Соппа | Кирилл | Михайлович | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Крутая компания | Петров | Евгений | Алексеевич | This email address is being protected from spambots. You need JavaScript enabled to view it. |
Жмем кнопку “Создать” в Google Диске, выбираем в меню “Еще/Google Apps Script”. Открывается редактор скриптов. Меняем название проекта кликнув мышью на само название или в меню “Файл/Переименовать” на “Sending mails”. Удаляем заготовку function myFunction() {}
и начинаем создавать свой код. Сначала создадим переменные ADDRESS_BOOK
и PICTURE
и присвоим им значения идентификаторов файлов списка клиентов и открытки:
// идентификаторы адресной книги и картинки var ADDRESS_BOOK='1CrYN4w8gpwIfxNI7tx580YuqxCJjPDM2g96etxEb7Hk'; var PICTURE='0B5dfvgXy_O9QY3JnYnVoT0FZU0k';
После двойного слеша //
в тексте кода можно вставлять любые комментарии. Узнать значения идентификаторов можно выбрав в контекстном меню (кликнув правой кнопкой мыши на файле) пункт “Показать ссылку”. В открывшемся окне будет ссылка вида:
https://drive.google.com/open?id=0B5dfvgXy_O9QY3JnYnVoT0FZU0k
Все что после символов "...id=" и есть идентификатор файла на Google Диске. Копируем и вставляем в наш код. Дальше нам надо вставить текст письма. В письме должно быть обращение, поздравительная открытка и ссылка для перехода на наш сайт (это же наш клиент).
// текст письма в HTML-формате var TEXT_EMAIL='<font size="4 face=fantasy" color="blue">’+ ‘Здравствуйте, #NAME#!</font><br>'+ '<img src="cid:imageHappyNewYear"><br>'+ '<a href="/google.ru"><font size="4 face=fantasy" color="blue">’+ ‘посетить наш сайт</font></a>';
Это текст в HTML-разметке. Кратко его прокомментирую. В первой строке задаются параметры обращения. Во второй строке стоит само обращение. На место #NAME#
мы будем вставлять адресата письма. В следующей строке мы задаем контейнер для нашего рисунка imageHappyNewYear
. А в последних двух строках задается ссылка на наш сайт (в данном примере указан сайт Google).
Теперь создадим функцию отправки писем:
function sendMails() { }
и дальше код будем вставлять между операторных скобок {}
. Переносим наш рисунок из файла на Google Диске в контейнер:
// загружаем картинку из файла в Blob-хранилище var imageBlob=DriveApp.getFileById(PICTURE).getBlob() .setName("imageBlob");
Доступ к файлу с картинкой мы получили через идентификатор файла, который записан в переменной PICTURE
с помощью функции getFileById
объекта DriveApp
. Дальше нам надо получить доступ к списку адресов:
// открываем список адресов, сохраняем его в addressTable, узнаем его размер var sh=SpreadsheetApp.open(DriveApp.getFileById(ADDRESS_BOOK)) .getSheetByName('List'); var addressTable=sh.getDataRange().getValues(); var numRows=sh.getDataRange().getNumRows()-1;
Объект SpreadsheetApp
дает доступ к функциям работы с Google Таблицами. Доступ к нужной таблице опять же осуществляется через ее идентификатор ADDRESS_BOOK
. Функция getSheetByName
возвращает нужный лист, функция getDataRange
возвращает прямоугольную область, в которой есть какие-либо значения. Функция getValues
возвращает значения в диапазоне. Функция getNumRows
возвращает количество строк в диапазоне. Таким образом, у нас в массиве addressTable
значения списка клиентов, а в переменной numRows
их количество. Вставляем код дальше:
// создаем файл отчета с именем "REPORT дата и время отправки" var curDate=new Date(); var ss=SpreadsheetApp.create('REPORT '+curDate.getDate()+'/' +(curDate.getMonth()+1)+'-' +curDate.getHours()+':'+curDate.getMinutes()); var shr=ss.getSheets()[0];
Это необязательная часть — создание таблицы с отчетом об отправке писем. Нужна мне была в основном для отработки навыков работы с таблицами и выявления случайных ошибок в написании электронной почты в большом списке клиентов. Строка var curDate=new Date()
создает переменную curDate
с текущими датой и временем. Дальше мы создаем таблицу с именем вида “REPORT 26/12 17-12”. Функции getDate, getMonth, getHours, getMinutes
как видно из их названия возвращают соответствующую часть даты. Тут стоит только отметить функцию getMonth
. Она отличается тем, что нумерация месяцев в отличие от дней начинается с нуля. Ну и в последней строке мы получаем ссылку на первый лист таблицы (листы тоже нумеруются с нуля). Все готово, можно запускать цикл по рассылке писем:
// цикл по всем записям из списка адресов for (var index=1; index=numRows; index++) { // меняем #NAME# на ФИО контакта var html_text=TEXT_EAIL.replace('#NAME#', addressTable[index][2]+' ' +addressTable[index][3]+' '+addressTable[index][4]); // формируем сообщение var mail={ htmlBody: html_text, name: 'Наша компания', to: addressTable[index][5], subject: 'С Новым Годом!', inlineImages: {imageHappyNewYear: imageBlob} }; // пытаемся отправить, результат пишем в отчет try { MailApp.sendEmail(mail); shr.getRange(index, 3).setValue('Отправлено'); } catch (err) { shr.getRange(index, 3).setValue('Ошибка: '+err.message); }; // заполняем остальные колонки отчета shr.getRange(index, 1).setValue(addressTable[index][0]); shr.getRange(index, 2).setValue(addressTable[index][1]); shr.getRange(index, 4).setValue(MailApp.getRemainingDailyQuota()); }
Код содержит комментарии, но все же дам краткие пояснения. Объект MailApp
дает доступ к отправке писем, функция sendMail
отправляет письмо, заданное структурой mail
. В структуре письма параметры name, to, subject
соответствуют своим обиходным значениям: имя отправителя, адресат, тема письма. Параметр htmlBody
содержит текст письма в HTML-разметке. Параметр inlineImages
— это структура, которая показывает соответствие между ссылкой на контейнер картинки в HTML-тексте письма и самим контейнером. Конструкция try {} catch (err) {}
позволяет не прерывать выполнение скрипта при возникновении ошибки. Если ошибка возникает при выполнении кода в секции try {}
, то выполнение передается секции catch (err) {}
. Если ошибки не возникает, секция catch (err) {}
не выполняется вообще. Функция getRange
возвращает диапазон (в данном случае одну ячейку), функция setValue
помещает в указанный диапазон значение. Наконец, функция getRemainingDailyQuota
возвращает остаток от дневного лимита на отправку сообщений.
Код готов. Необходимо выполнить его авторизацию. Это делается просто — запускаем функцию sendMails
(меню “Выполнить/sendMails”), Google сам напоминает нам, что нужна авторизация. Жмем “Далее”, видим следующее окно:
“Просмотр и изменение таблиц на Google Диске” нам нужно для доступа к списку клиентов, “Храните файлы пользователей на Google Диске” необходимо для сохранения файла отчета, “Рассылка почты от вашего имени” - собственно, для рассылки от Вашего имени.
Жмем “Разрешить”, скрипт выполняется. Находим на Google Диске (в корне) таблицу REPORT с текущим временем. Открываем, видим примерно следующее:
1 | Индивидуальный предприниматель | Отправлено | 96 |
2 | Крутая компания | Отправлено | 95 |
В завершении скажу несколько слов о своем опыте использования данного скрипта.
Также, если Вас заинтересовали возможности, предоставляемые сервисами Google для автоматизации бизнес-процессов, есть сообщество в Google+. Там очень отзывчивые ребята, собственно, по мотивам их публикаций я и написал данный скрипт.
Ссылки на документы из блога:
Список клиентов
Скрипт
Картинка
Last Updated on Воскресенье, 03 января 2016 19:34
Hits: 13170
Кирилл Соппа, финансовый консультант
Думаю, никто не будет спорить, что голубой мечтой собственников и руководителей бизнеса является управленческая отчетность, получаемая мгновенно нажатием одной волшебной кнопки. Под управленческой отчетностью, естественно, имеются ввиду показатели “Заработано” и “Можно забрать и потратить дивидендов”. А последнее время к ней плавно добавилась вторая голубая мечта: чтобы эта волшебная кнопка была на экране смартфона. В данном блоге я расскажу как реализовать эти две мечты с помощью подручных средств.
Мысль о реализации данного проекта мне пришла, когда финансовый консалтинг превратился из эпизодической халтуры в обычный бизнес. Для учета не хотелось городить новую базу в 1С и я завел таблицу в Microsoft Excel. Через некоторое время для повышения мобильности я перенес таблицу на Google Диск и преобразовал в формат Таблиц Google. Ну и еще через некоторое время дико захотелось упростить доступ к некоторым ключевым показателям. Например, чтобы посмотреть остатки на счетах приходилось сначала заходить на Диск, потом заходить в Таблицу, потом находить нужный лист, возможно чего-то листать. Захотелось просто ткнуть в экран смартфона и все. Так я узнал про Google Apps Script (что-то вроде макросов для Microsoft Office, только языком макросов является Visual Basic for Application, а скрипты Google основаны на JavaScript) и возможность опубликовать скрипт в Интернете, чтобы доступ к нему осуществлялся из любого браузера по ссылке. В итоге один потраченный выходной день (хватило бы и пары часов, но последний раз я программировал не на 1С еще в прошлом тысячелетии, пришлось осваивать HTML и JavaScript заново) — и у меня на рабочем экране смартфона есть иконка, которая открывает мне мой текущий управленческий баланс.
Итак, у нас есть таблица, в которой мы ведем управленческий учет. Как это сделать очень подробно рассказывает своих блогах и вебинарах мой коллега Игорь Николаев, поэтому останавливаться на этом не буду. Скажу только, что основная функция многофакторного суммирования СУММЕСЛИМН, на которой базируется ведение учета в электронных таблицах, в Google Таблицах имеет название SUMIFS. Также, чтобы не погружаться в методологию управленческого учета, в Google Таблице, которая приведена в качестве примера, учет ведется по оплате. Имеем: лист “Реестр операций”, на который вносятся все операции; лист “ОПиУ”, на котором автоматически считается финансовый результат по оплате; лист “Остатки”, на котором автоматически рассчитываются остатки по дням; лист “Справочники” — на нем приведены все справочники, используемые для отражения операций (в приведенном случае “Банки” и “Статьи”) и лист “Summary”, на котором сведены нужные нам показатели с предыдущих листов (можно было бы их и с соответствующих листов тянуть, но это усложнило бы код скрипта). Лист “Summary” имеет вид:
Дата отчёта: | 31.10.2015 | |||
Остатки на счетах: | 33 300,00 | |||
Операционная прибыль: | 53 300,00 | |||
Лимит по операции | месяц | карта | лимит | остаток |
Снятие наличных | 10 | Сбербанк карта | 300 000,00 | 280 000,00 |
Лимит снятия вносится руками из банковского договора, остаток считается исходя из суммы операций по указанным статье, месяцу и счету с помощью функции SUMIFS. Данные для публикации готовы.
Переходим к скрипту. Если у Вас платный аккаунт, то Google Apps Script у Вас скорей всего уже подключен. Если бесплатный — нажимаем правой кнопкой мыши в свободном поле на Google Диске и в контекстном меню “Еще/Подключить другие приложения” подключаем Google Apps Script (у меня на скрине он уже подключен):
После этого создаем новый проект в том же контекстном меню “Еще/Google Apps Script”. Сразу, с помощью пункта меню “Файл/Переименовать” меняем название так как нам надо. В текстовом поле уже создан файл кода “Код.js” (js означает код на языке JavaScript) и заготовка для функции myFunction(). Кстати, в JavaScript регистр букв имеет значение. Если мы хотим опубликовать свой скрипт, то нам надо поменять название функции на doGet()
. Это предопределенное наименование. Функция с таким названием автоматически вызывается в момент, когда браузер осуществляет переход по ссылке, закрепленной за нашим скриптом. И результатом этой функции должна быть страница HTML, которая и будет отображена. Все просто. Вставляем следующий код:
function doGet() { return HtmlService.createHtmlOutputFromFile('Page') .setSandboxMode(HtmlService.SandboxMode.IFRAME); }
Сильно вникать в эту абракадабру не стоит. Достаточно знать, что данный код создает интернет-страницу на основе HTML-файла “Page”, который мы сейчас с Вами создадим. Пугаться не стоит, HTML — это не язык программирования, это просто система обозначений, для создания макета страницы. По нему очень много справочного материала в Интернете, сложностей с ним возникнуть не должно.
Итак, “Файл/Создать/HTML-документ”. Вводим имя файла “Page” и в наш проект (слева вертикальная панель с файлами нашего проекта) добавляется еще один файл. Отметим, что тип файла .html добавился автоматически. HTML-файл состоит из тегов, заключенных в угловые скобки, закрывающий тег повторяет открывающий, но в начале названия стоит знак /. В добавленном файле у нас есть следующие теги: <html></html>
— начало и конец самого HTML-файла; <head></head>
— начало и конец заголовка, в котором задается формат выдачи, скрипты и другая служебная информация; <body></body>
— начало и конец тела HTML-файла, собственно то, что и будет выдаваться на экран. Что означает надпись <!DOCTYPE html>
в самом начале я толком не знаю сам, где-то читал что так должно быть. Ну и пусть, жить не мешает. Узнаю, расскажу обязательно. Тег <base target="_top">
в заголовке нашей страницы указывает браузеру формат окна для нашего скрипта.
Вставляем тело нашей HTML-страницы:
<body> <table width=50% border=1> <caption align="center"><h1><b> БАЛАНС </b> </h1></caption> <col width=70%> <col width=30%> <tr> <th align="center"> Показатель </th> <th align="center"> Значение </th> </tr> <tr> <td><b> Остатки на счетах: </b></td> <td align="right"><b> <span class="label" id="Cash"></span></b></td> </tr> <tr> <td><b> Финансовый результат: </b></td> <td align="right"> <span class="label" id="Profit"> </span></td> </tr> <tr> <td><b> Лимит снятия: </b></td> <td align="right"> <span class="label" id="Limit"> </span></td> </tr> </table> </body>
Наверное опытные верстальщики Web-приложений умеют какими-то хитрыми методами красиво размещать все на своих страницах. Я использовал для разметки простой рабоче-крестьянский метод: таблицу. Обрамляют таблицу теги <table></table>
. В открывающем теге можно указывать так называемые опции. У меня это width=50%
— ширина таблицы в процентах и border=1
— ширина границ таблицы. Полный список опций для таблицы легко найти в интернете, например, здесь. Дальше идут теги (для сокращения указаны без закрывающего тега): <caption>
— заголовок таблицы с опцией align="center"
для выравнивания по центру, <h1>
— размер букв (допускаются теги от h6 до h1 — в сторону увеличения), <b>
— жирный текст, <col>
— формат колонки (в моем случае задается ширина, не имеет закрывающего тега), <tr>
— строка таблицы, <th>
— ячейка шапки таблицы, <td>
— ячейка таблицы. Отдельно отмечу тег <span></span>
— он позволяет “пометить территорию”. То есть, присвоить куску страницы имя, указанное в опции id, чтобы потом можно было в скрипте чего-нибудь туда поместить. Опция class="label"
указывает браузеру, что в данном месте будет просто текст. Как я и говорил, ничего сложного.
Уже можно проверить что получилось. Выбираем в меню “Публикация/Развернуть как веб-приложение…”, в открывшемся окне жмем “Развернуть”, в следующем окне видим следующее:
В верхней части окна указана ссылка, по которой наш скрипт можно запустить из браузера. Под ней синим выделена ссылка “последнюю версию кода”, нажав на которую можно посмотреть как выглядит сверстанная нами страница.
Приступаем к написанию скрипта, который будет брать данные из нашей Google Таблицы и вставлять в HTML-страницу. Переходим в файл “Код.js”, добавляем туда код:
function setCurDate() { var files=DriveApp.getFilesByName("BalanceSheet (блог)"); if (!files.hasNext()) return 0; var sh=SpreadsheetApp.open(files.next()).getSheetByName("Summary"); var curDate=new Date(); sh.getRange(2, 2).setValue(curDate.getDate()+"/"+(curDate.getMonth()+1+"/"+curDate.getFullYear()); return 1; } function getCash() { var files=DriveApp.getFilesByName("BalanceSheet (блог)"); if (!files.hasNext()) return 0; var sh=SpreadsheetApp.open(files.next()).getSheetByName("Summary"); return sh.getRange(4, 2).getValues(); } function getProfit() { var files=DriveApp.getFilesByName("BalanceSheet (блог)"); if (!files.hasNext()) return 0; var sh=SpreadsheetApp.open(files.next()).getSheetByName("Summary"); return sh.getRange(5, 2).getValues(); } function getLimit() { var files=DriveApp.getFilesByName("BalanceSheet (блог)"); if (!files.hasNext()) return 0; var sh=SpreadsheetApp.open(files.next()).getSheetByName("Summary"); return sh.getRange(8, 5).getValues(); }
Функция setCurDate()
устанавливает на листе “Summary” текущую дату. Функции getCash()
, getProfit()
и getLimit()
возвращают нужные нам показатели из соответствующих ячеек таблицы. Классы DriveApp
и SpreadsheetApp
предназначены для доступа к объектам Google Диска и Google Таблиц соответственно. Нумерация строк и колонок начинается с единицы, сначала указываются строки, потом колонки (аргументы getRange()
). Можно было выбирать данные одной функцией и возвращать все показатели одним динамическим массивом, но я сознательно пошел по пути упрощения кода. Иначе здесь пришлось бы компоновать массив, потом на клиентской стороне его парсить.
С файлом “Код.js” закончено. Теперь нам надо его авторизовать, в данном случае дать доступ к Таблицам на нашем Диске. Выбираем пункт меню “Выполнить/setCurrDate” (можно любую функцию выбрать), появится сообщение, что требуется авторизация. Жмем “Далее”, Google сам по коду определит размер необходимых полномочий и выдаст окно:
Жмем “Разрешить”. Авторизация пройдена. Кстати, если Вы запускали функцию setCurDate()
, то дата на странице “Summary” должна поменяться на текущую. Проверьте.
Возвращаемся в файл “Page.html”. Вставляем в заголовке между тегами <head></head>
следующий код:
<script> function putCash(newCash) { var c = document.getElementById("Cash"); c.innerHTML=newCash+" RUR"; } function putProfit(newProfit) { var c = document.getElementById("Profit"); c.innerHTML=newProfit+" RUR"; } function putLimit(newLimit) { var c = document.getElementById("Limit"); c.innerHTML=newLimit+" RUR"; } function ShowResults() { google.script.run.withSuccessHandler(putCash).getCash(); google.script.run.withSuccessHandler(putProfit).getProfit(); google.script.run.withSuccessHandler(putLimit).getLimit(); } function Show() { google.script.run.withSuccessHandler(ShowResults).setCurDate(); } </script>
Тегами <script></script>
выделяются вставки JavaScript-кода. С функциями putCash()
, putProfit()
и putLimit()
все ясно. Они обращаются к “помеченной территории” и вставляют в нее переданный аргумент. На функциях Show()
и ShowResults()
требуется остановится поподробнее.
Когда мы пишем скрипт для публикации в Интернете, мы должны учитывать одну особенность, которой нет при написании, скажем, макроса для Microsoft Excel. В таких скриптах всегда участвуют два исполнителя: сервер Google, находящийся где-то в Дублине (может быть и не в Дублине) и смартфон в Вашей руке, называемый клиентом. И мы всегда должны четко себе отдавать отчет какая часть кода в каком месте будет исполняться. Выдачу страницы на экран осуществляет клиент (наш смартфон) на основании полученного от сервера HTML-файла (браузер автоматически делает так называемый GET-запрос на сервер, находящийся по указанному нами в адресной строке http-адресу; на данный запрос сервер отвечает результатом функции doGet()
). Поскольку Google Таблица находится на сервере где-то в Дублине (или не в Дублине), то функции setCurDate()
, getCash()
, getProfit()
и getLimit()
должны выполняться там же на сервере. С точки зрения клиента (нашего смартфона) он вообще “не знает” о существовании нашей таблицы (может у нас там полноценная база данных). Для запуска функций на сервере и предназначена конструкция google.script.run.
, после которой указывается запускаемая функция. Но и это еще не все. Есть еще одна важная особенность. Если бы мы просто написали google.script.run.setCurDate()
, то наш смартфон запустил бы на сервере функцию setCurDate()
, но в отличии от обычного макроса, не стал бы ждать ее исполнения сервером!!! То есть, дальнейшее исполнение кода на клиенте шло бы уже параллельно с выполнением запущенных функций на сервере. Но нам то надо исполнять последовательно!!! Сначала установить дату, и только после установки и пересчета листа брать актуальные данные из ячеек, сначала запросить данные из ячеек на сервере и только после их получения разместить их на странице. Для этого и нужна конструкция .withSuccessHandler()
. Ее действие объясню на примере строчки:
google.script.run.withSuccessHandler(putCash).getCash();
В данном примере клиент вызывает на сервере функцию getCash()
и в случае успешного ее завершения (не 0) запускает на клиенте функцию putCash()
с аргументом, который является результатом исполнения функции getCash()
.
Если грубо, наш код работает так.
setCurDate()
, а на клиенте устанавливает правило, что при успешном завершении этой функции запустится функция ShowResults()
. После этого скрипт работу прекращает (тем кто писал одни только макросы это нелегко понять);setCurDate()
браузер проверяет не оставлялись ли на этот счет какие-либо правила. ShowResults()
. Данная функция запускает три новых запроса на сервере (функции getCash()
, etProfit()
и getLimit()
) и оставляет три новых правила для клиента, указывающих что делать с возвращаемыми сервером результатами.putCash()
, putProfit()
и putLimit()
) и передает им возвращенные с сервера значения. putCash()
, putProfit()
и putLimit()
) размещают полученные с сервера данные в соответствующие места на нашей странице. Осталось последнее — запустить этот адский алгоритм. Для этого перед тегом </body>
после тега </table>
надо вставить вызов нашей основной функции:
<script> Show(); </script>
Вот и все. Выбираем в меню “Публикация/Развернуть как веб-приложение…”, в выпадающем списке “Версия проекта:” выбираем “Новый” и жмем “Обновить”. В открывшемся окне копируем ссылку из поля “Текущий URL веб-приложения:” (она обязательно должна заканчиваться /exec), помещаем эту ссылку на рабочий экран смартфона и пользуемся!
В завершении хочу добавить еще один момент. Я потратил время и узнал сколько такой функционал стоил бы как самостоятельное Web-приложение. Один мой знакомый программист сказал что реализовал бы это за 30-40 тысяч рублей за две-три недели. А в ответ на официальный запрос в одну из компаний, занимающихся Web-разработкой, я получил смету на 80 тысяч рублей и сроком 3-4 недели (как пишут СМИ - коммерческое предложение есть в моем распоряжении). Так что автоматизация с использованием облачных сервисов Google поможет прилично сэкономить деньги. При том, что мое решение гораздо гибче. Например, если Вы через некоторое время передумаете и решите вести учет по начислению, то Вам достаточно будет лишь нужным образом переделать Google Таблицу и не придется нанимать программистов для переделки Web-приложения.
Ссылки:
Проект скрипта
Учётная таблица
Last Updated on Среда, 16 декабря 2015 22:51
Hits: 7737
Кирилл Соппа, финансовый консультант
С 2009 года я являюсь де-факто финансовым директором (де-юре — я один из учредителей) и при этом я “халтурю” финансовыми консультациями на стороне. Последнее время все чаще у клиентов стал звучать вопрос минимизации налоговых рисков. Рассказывать людям как вести бизнес в гармонии с налоговым кодексом и при этом брать расчет кэшем — оксюморон. Поэтому 15 апреля 2015 года я стал индивидуальным предпринимателем.
Неожиданным стало то, что сделав свой новый статус публичным я попал в немилость на сайте fd.ru! Оказывается, чтобы материал попал в анонс, необходимо чтобы должность совпадала с названием журнала. Поэтому я благодарен Игорю Николаеву за предоставление альтернативной площадки для моего самовыражения и тому, что он не парится по поводу записи в моей трудовой книжке.
Об авторе
По образованию я математик, закончил в 2002 году мехмат НГУ. В анамнезе 4 года работы в отделе управленческого учета многопрофильного холдинга и 6,5 лет топ-менеджером на ликеро-водочном заводе — возглавлял снабжение. Реализовал несколько проектов по автоматизации бизнес-процессов на 1С. После того. как мы вошли в структуру, торгующуюся на NASDAQ, как владелец бизнес-процесса “Закупки” я участвовал во проекте внедрения контрольных процедур для соответствия бизнес-процессов компании требованиям закона Сарбейнза-Оксли.
С 2009 года с двумя компаньонами веду предпринимательскую деятельность. По взаимному согласию мне достался функционал финансового директора. В сферу моей ответственности входит организационная и юридическая структура, бухгалтерский, управленческий и налоговый учет, автоматизация и оптимизация бизнес-процессов, контроль финансовых потоков компании.
С 2015 года я отделился, забрал себе колл-центр, автоматизировал CRM и зарабатываю на аутсорсинге активных продаж. Пока только для бывших компаньонов. Параллельно, я занимаюсь консалтингом, помогая предпринимателям внедрять управленческий учет и автоматизировать бизнес-процессы. С апреля 2015 года я формализовал этот бизнес, став индивидуальным предпринимателем.
Часть своего накопленного опыта было отражено мною в своих блогах на fd.ru. Частью опыта я планирую поделиться с читателями findirector.com.
Но это не единственная и далеко не главная сложность. После принятия 134-ФЗ от 28.06.2013 (электронные книги покупок и продаж) риск работы с фирмами-однодневками стал несовместим с уровнем бизнес-рисков. И большинство налоговых консультантов стали говорить что ИП — это единственный легальный источник получения наличных денег. Самой распространенной схемой, которую я сейчас встречаю — это передача ИП полномочий единоличного исполнительного органа компании. Действительно, это допускается законом (п. 2 ст. 40 14-ФЗ “Об ООО”). При этом, выплата управляющему не облагается НДФЛ и взносами (п. 3 ст. 346.11 НК РФ). Таким образом, делают вывод налоговые консультанты, деньги можно “обналичить” за 6% (правда НДС придется заплатить). Можно составить договор с ИП и на любые другие консультации. Распространенность варианта с управляющим объясняется тем, что единоличный исполняющий орган есть у всех коммерческих организаций, а целесообразность различных консультационных услуг очень неоднозначна. Опять же, их оказание нужно потом будет подтвердить, что в случае с управляющем гораздо проще. Но лично я бы не советовал использовать ИП для “обналичивания” денег.
Во-первых, никуда не делись налоговые риски — переквалификация гражданско-правового договора (п. 2 ст. 170 ГК РФ) в трудовой (при наличии соответствующих признаков ст. 57 ТК РФ) либо признание сделки мнимой (п. 1 ст. 170 ГК РФ). Грозит доначислением налогов, штрафов и пеней. Самый известный и показательный пример: приговор Мещанского суда в отношении Михаила Ходорковского и Платона Лебедева содержал обвинения по ст. 198 УК РФ “Уклонение от уплаты налогов и (или) сборов с физического лица”. Оба предпринимателя были зарегистрированы в качестве ИП и получали доходы от оказания консультационных услуг офшорам, владеющим НК ЮКОС. Суд решил что полученные деньги — их зарплата. Аргументы суда сложно назвать однозначными: единообразие схем (контракты на оказание консультационных услуг заключили одновременно сразу шесть основных акционеров ЮКОСа), оказание услуг лишь организациям входящим в одну группу компаний, отказ раскрыть детали договоров и представителей контрагентов, которым оказывались услуги, зависимость консультантов и заказчиков, один и тот же сотрудник ЮКОСа представлял всех “консультантов” в налоговой. Однако, правоприменительная практика задана.
Во-вторых, добавилось активное противодействие банков. Все тот же 134-ФЗ от 28.06.2013 "О внесении изменений в отдельные законодательные акты Российской Федерации в части противодействия незаконным финансовым операциям" ввел в отношении должностных лиц банка санкции от 30 до 50 тысяч рублей (ч. 2.1, 2.2, 2.3 ст. 15.27 КоАП РФ), упростил отзыв банковской лицензии регулятором (ст. 13 115-ФЗ “О противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма”), разрешил расторжение банком договора банковского счета в одностороннем порядке (п. 1.2 ст. 859 ГК РФ), приравнял уклонение от уплаты налогов к отмыванию денег, полученных преступным путем (ст. 174.1 УК РФ). У банков не осталось выбора, они обязаны теперь обращать пристальное внимание на клиентов, снимающих наличные средства свыше 80% оборота по счета (п. 1 письма ЦБ РФ 161-Т от 26.12.05г.). В противном случае они рискуют своей лицензией, а сотрудники банка своим материальным благополучием.
Один мой знакомый индивидуальный предприниматель является производителем и не занимается “фиктивными” операциями. Его проблема была в том, что расчетный счет (40802810...) он открыл в небольшом банке, закачавшимся в нынешние неспокойные времена. И чтобы не рисковать мой знакомый перевел несколько миллионов рублей одним траншем на свою дебетовую карту (40817810…) в другом банке. Несмотря на то, что как физлицо он является в этом банке VIP-клиентом, деньги были заморожены на период, пока он не предоставил в банк всю документацию, подтверждавшую хозяйственную деятельность на указанную сумму и уплаченные с нее в полном объеме налоги. Последней каплей для него стало то, что в банке ему сказали: “вот если бы эту сумму наличными принесли, то блокировки бы не было”, на что он заметил: “то есть, будь я сутенером, у меня не было бы проблем, а раз я законопослушный бизнесмен, то мне это надо непременно всякий раз подтверждать”.
Хотелось бы дать несколько рекомендаций коллегам - консультантам, которые согласно требований российского законодательства ведут бизнес получив свидетельство ОГРНИП. Ведь консалтинговый бизнес попадает в зону риска: практически все полученные деньги являются доходом консультанта, у нас нет больших накладных расходов. Чтобы не попасть под подозрение банка необходимо:
а) сразу оставлять на расчетном счете не менее 6% от всех поступающих сумм;
б) переводить деньги со своего расчетного счета (40802810…) на личные счета (42307810… или 40817810…) внутри одного банка, чтобы сотрудники финмониторинга видели происхождение денег и их “очистку” от налогов;
в) избегать оказывать консультационные услуги взаимосвязанным компаниям (лично я не оказываю консультационных услуг для своего колл-центра — точнее, я конечно выполняю некоторый функционал CFO, однако делаю это как учредитель, получая доход в виде роста капитализации);
г) расширять клиентскую базу — консультант, оказывающий услуги одному и тому же контрагенту безусловно вызовет подозрение налоговой и желание переквалифицировать договор в трудовой;
д) делать подробные справки о выполненных работах к каждому акту оказанных услуг;
е) участвовать в семинарах, публиковать статьи, вести блоги — публичное подтверждение сыграет положительную роль для банка, да и налоговой будет сложнее доказать “фиктивность” предпринимательской деятельности.
Last Updated on Среда, 09 декабря 2015 22:03
Hits: 4293
Кирилл Соппа, финансовый консультант
Прочитал замечательную статью "Платежный календарь. Образец" (http://fd.ru/articles/36630-platejnyy-kalendar-obrazets). Решил немного ее дополнить, так как в ней хорошо описываются проблемы, хорошо описывается ЧТО необходимо сделать для их решения, но, на мой взгляд, мало уделяется ответам на вопрос КАК это сделать. Поэтому в данном блоге я делюсь несколькими своими рабоче-крестьянскими методами.
В статье есть очень правильная фраза, цитирую: “Можно смело утверждать, что составление платежного календаря, сколько-нибудь достоверного, на ближайшую неделю не получится, если в компании нет регламента платежей. Всегда найдутся руководители подразделений, которые будут требовать немедленно оплатить тот или иной счет. И это при том, что на практике крайне редко возникают ситуации, когда предвидеть необходимость тех или иных выплат хотя бы за неделю невозможно.” К сожалению представленный в статье образец регламента не дает ответа на вопрос, как заставить исполнителей сразу же в момент возникновения включать в платежный календарь информацию о готовящемся платеже. Ну принесут они по регламенту до 13-00 платежей в два раза превышающих остаток на расчетном счете. Все срочные. А самое обидное то, что необходимость половины из них была известна еще неделю назад и можно было под них как-то ликвидность запланировать.
Как это сделал я. Я привязался к основным бизнес-процессам в компании. Так у закупщиков есть специальный отчет “Номенклатура в работе” - это те позиции, которые они должны срочно где-то заказать. Этот отчет их руководитель смотрит каждое утро на планерке, поэтому каждый из них стремится побыстрее закрыть всю потребность. Из отчета позиции уходят после создания в 1С документа “Заказ поставщику”. Я обязал снабженцев (а также продажников и логистов, там схожая логика, только у продажников основной документ “Заказ покупателя”) вместе с созданием заказа поставщику, то есть в момент возникновения обязательств, создавать на полную сумму заказа заявки в платежный календарь. И создал себе отчет по отклонениям в таком виде:
Контрагент | Сделка | Сумма в валюте | Сумма в рублях |
Итог | -145 684,65 | ||
ПОЛИПЛАСТИК ЗапСиб | Клименко Александра Васильевна | 15 161,96 | |
Заказ поставщику ЛГВ00134 от 14.10.2015 17:13:56 | 15 161,96 | 15 161,96 | |
СпецТехСтрой | Игнатова Ирина Александровна | -160 846,61 | |
Заказ покупателя СПН00798 от 15.10.2015 17:53:22 | 0,00 | -160 846,61 |
Из этого отчета я сразу вижу, что Александра Васильевна заказала в Полипластике товар, но по какой-то причине в платежный календарь платежей по нему включила на 15 161,96 рублей меньше. В то же время Ирина Александровна сделала все правильно (0 в графе сумма в валюте), потому что выставила счет в евро и планируемые платежи на всю сумму счета в евро по курсу ЦБ РФ на день этих платежей внесла в платежный календарь (в графе сумма в рублях получилась в данном случае курсовая разница между суммой счета по курсу на дату счета и суммой счета по курсу на дату платежей).
Конечно же сотрудники не бросились сразу исполнять это требование с нужной мне щепетильностью. Но уже можно было оценить масштаб сюрпризов, которые поджидали меня за пределами платежного календаря и понять основные причины пренебрежения работниками дополнительным функционалом. Во-первых, они из-за постоянной нехватки времени откладывали платежный календарь на потом, считая это второстепенной задачей. Во-вторых, как на любом нормальном предприятии, у нас много вещей происходили задним числом (отказ покупателя от товара, дополнительная скидка из-за не совсем качественного товара и так далее). В итоге заказы правились, а про заявки забывали.
Чтобы заставить людей делать то что мне нужно я создал контрольную точку. Каждый четверг за попадание в отчет “Неразнесенные оплаты” я стал штрафовать сотрудников на 100 рублей. Не помогло. Потом стал брать 100 рублей за каждый заказ. Но и это не помогло. Для них проще было отдать 400-500 рублей в месяц, но быстрее выполнить основные свои функции. Дальнейшее закручивание гаек было чревато пренебрежением основной функцией, а это тоже было недопустимо. Поэтому я сделал, как оказалось впоследствии, ход конем. Собрал всех и толкнул примерно такой спич: “За четыре года существования нашей компании мы ни разу ни на один день не задержали выплату зарплаты. Если вы думаете что это благодаря тому, что я деньги выращиваю на деревьях, то вы ошибаетесь. Это достигается кропотливым планированием движения каждой копейки и люди, которые халатно относятся к внесению заявок в 1С мне очень сильно в этом мешают. Поэтому за каждое попадание в “Неразнесенные оплаты” сотрудник будет получать зарплату на день позже”. Один раз снабженец получил зарплату на два дня позже, потом логист получил зарплату позже на неделю, зато теперь по пятницам одно удовольствие планировать денежные средства на неделю. Ведь каждый четверг все сотрудники, выходя с утренней планерки, откладывают все дела и приводят платежный календарь в порядок. Самостоятельно. Без палки и надсмотрщика.
Также, в статье четко обозначена постоянная проблема всех финансовых директоров – распределение имеющихся денежных средств в случае их дефицита. Решение предлагается в виде поля “приоритет” для каждой заявки, а также кратко описывается примерный вариант задания приоритетов. По моему мнению автор уделил не так много внимания этому вопросу (несоразмерно проблеме), поэтому предлагаю Вашему вниманию свой алгоритм.
Все платежи делятся на две группы: операционные и платежи обеспечения. Операционные – это закуп товара, который мы продаем, транспортные расходы, реклама, маркетинг. Платежи обеспечения – налоги, зарплата, аренда офиса и склада, кредиты, внутригрупповые платежи. Операционные расходы контролирует операционный директор, а платежи обеспечения – финансовый директор . Операционные платежи делятся еще на две категории: ключевые – это те поставщики, которые на первый же день просрочки присылают дополнительные соглашение о процентах за коммерческий кредит (у нас таких 30% от объема платежей в рублях) и все остальные (ведь каждый финансовый директор знает, что самый дешевый источник оборотных средств – это любимый поставщик). Далее алгоритм следующий:
1) Сначала планируем календарь на месяц: поступления от клиентов по дням, платежи обеспечения, платежи ключевым поставщикам (платежи третьей группе не планируем вообще). Получаем примерно такую картину:
Дата | На утро | Поступления | Поставщики | Обеспечение | На вечер |
6 октября | 4 726 763,05 | 90 093,51 | 0,00 | 0,00 | 4 816 856,56 |
7 октября | 4 716 702,39 | 0,00 | 2 237 337,55 | 402 200,00 | 2 077 164,84 |
2) Сводим итого за месяц, примерно так:
Остатки на расчётных счетах: | 4 530 001,93 |
Планируемые поступления: | 5 117 955,58 |
Платежи обеспечения: | -1 336 836,67 |
Платежи поставщикам: | - 4 629 995,95 |
Дельта: | 3 681 124,89 |
3) Говорим операционному директору что ему на месяц на прочих поставщиков, перевозчиков, рекламу и маркетинг выделяется сумма, которая написана в графе "Дельта" и чтобы он строил всю свою работу на месяц исходя из нее. Надо больше, пусть больше продает, поступления от клиентов ведь планировал он сам.
4) Ежедневно эта цифра корректируется с учетом фактического исполнения, то есть уменьшается на величину недоплаты от покупателей и совершенных платежей прочим поставщикам и увеличивается на величину поступлений от клиентов, не включенных в календарь (сверх плана). Новая цифра ежедневно доводится до операционного директора чтобы он понимал как ему жить дальше (если быть точным, у него в работе две цифры: общий лимит на месяц и лимит на сегодня).
5) В случае драматической нехватки денег операционный директор сначала пытается переговорами оттянуть оплату, потом выклянчить деньги у клиентов, потом решить вопрос за счет ключевых поставщиков. Иногда получается.
6) Если все равно не хватает, операционный директор пишет обоснование (достаточно просто по емейл) и идет к финдиректору. Финдиректор читает обоснование и принимает решение, достаточны ли основания чтобы запустить руку в овердрафт, например.
Может мне повезло с операционным директором, но после внедрения этой системы распределение денег в 95% случаев он взял на себя. Раньше мне почти каждый день приносили дефицитный реестр оплат, а сейчас пару раз за месяц. Ему же там виднее кто может потерпеть без ущерба для бизнеса. Да и планировать работу ему стало проще, зная на что он может рассчитывать в плане денег. При этом от KPI в виде объема продаж его никто не освобождал, поэтому ему не выгодно говорить "нет денег – нет отгрузок". Крутится; молодец.
И в завершении хотел прокомментировать момент актуализации платежного календаря. В статье освещено лишь фактическое исполнение, а что делать с неисполнением не сказано. Если у Вас все поступления и платежи происходят в строгом соответствии с платежным календарем дальше можете не читать.
Я веду речь, например, о таких ситуациях, когда покупатель звонит и говорит нечто вроде: “вот-вот жду поступления от заказчика, потерпите еще пару дней”. Или мы сами придержали платеж за аренду склада на недельку из-за локального разрыва. Постоянно корректировать заявки в 1С времени не напасешься. Во-вторых, если разрешить править базу по звонку, то операторы внесут туда что попало и будут потом валить на контрагентов, которые якобы чего-то там наговорили по телефону. И в третьих, такая актуализация платежного календаря имеет еще один существенный минус. Мы не видим реальную просрочку клиентов (да и свою, что уж греха таить). То есть тянет клиент, тянет. А сколько уже просрочена оплата? Надо в договор лезть.
Все же эту информацию, пусть и телефонную, хочется учитывать при планировании денежных средств. Поэтому я веду у себя два календаря. В 1С все автоматизировано и все заявки планируются строго по договору для всех поставщиков, в том числе и из третьей группы. А актуальный календарь с цифрами для операционного директора ведется в Microsoft Excel. И уже там в ячейках можно мгновенно сдвинуть поступления или платежи на актуальную дату с сохранением в базе изначальной информации.
Отдельную благодарность хотелось бы выразить нашему коллеге Николаеву Игорю. Его материалы по Microsoft Excel позволили сделать операцию по ежедневному ведению актуального календаря десятиминутной. Был написан дополнительный отчет в 1С, который простым копипастом переносится на специальный лист в экселевском файле и оттуда уже все данные подтягиваются в нужные формулы. При наличии времени я обязательно расскажу как у меня все устроено, потому что я сам доволен как слон.
Спасибо всем за внимание!
Last Updated on Воскресенье, 29 ноября 2015 16:37
Hits: 7013
Если вы правильно организовали процесс поиска новой работы, в какой-то момент к вам косяком пойдут предложения от потенциальных работодателей. Не стоит расслабляться или почивать на лаврах — ошибка в выборе работодателя может оказаться фатальной. Давайте поговорим о том, как правильно сделать судьбоносный выбор, который определит ближайшие несколько лет вашей карьеры.
При правильном поиске работы варианты трудоустройства возникают практически гарантированно. К примеру, когда автор зимой 2008-2009 гг., в самый разгар экономического кризиса в России, покинул Производственное объединение «Элтехника», всего за месяц им было получено целых 3 предложения о трудоустройстве: от логистической компании, от управляющей компании группы разнородных бизнесов (включая одну из крупнейших в России розничных сетей) и от группы компаний «Интернест», которая в результате и выиграла этот импровизированный тендер. И у меня нет оснований считать, что в нынешней, достаточно непростой, но вполне уже типичной для нашей страны кризисной ситуации, найти работу существенно сложнее, чем в кризис шестилетней давности.
Поэтому, помимо привлечения внимания потенциальных работодателей к вашей персоне, следующей важной задачей является выбор правильного работодателя из имеющихся вариантов. Делаем это так:
К примеру, получив несколько лет назад от кадрового агентства предложение рассмотреть вакансию CFO в одной крупной питерской компании, автор посетил известный сайт отзывов, из которого выяснил, что собственник данной компании практикует достаточно жёсткий стиль управления, в компании царит хаос, а регулярный менеджмент отсутствует как класс. Изучив другие материалы в интернете о данной компании и её собственнике, автор выяснил, что собственник, судя по всему, достаточно близок к криминальным кругам Санкт-Петербурга, у правоохранительных органов есть подозрения в его причастности к резонансному убийству, в результате он скрывается за границей, и т.д. и т.п. Всего этого автору было более чем достаточно для того, чтобы отказаться от дальнейшего рассмотрения данной вакансии. Конечно, это достаточно крайний и нетипичный случай, но он весьма показателен.
Если после всех вышеперечисленных действий компания продолжает вам нравиться — принимайте её предложение. Если же вам что-то не нравится, что-то смущает, даже если вы не можете четко сказать, что именно — лучше воздержаться от трудоустройства. В подобных вопросах стоит прислушаться к собственной интуиции, чтобы принять оптимальное решение.
Last Updated on Суббота, 30 мая 2015 18:49
Hits: 3777
Итак, решение об уходе принято. Теперь начинается самое интересное: из всего многообразия имеющихся на рынке вариантов нужно выбрать идеального работодателя, сотрудничество с которым продлится долгие годы на радость и к удовлетворению обеих сторон. Задача нетривиальная, но вполне достижимая при правильном подходе.
Успешное трудоустройство — процесс, состоящий из двух важных этапов:
1. Поиск вакансий;
2. Выбор работодателя.
По каждому этапу можно написать целые трактаты, но мы пройдёмся по ним достаточно тезисно, делая упор на специфику данных процессов именно для финансовых директоров.
Итак, поиск вакансий. Позиция финансового директора практически в любой компании является чрезвычайно привлекательной, что обуславливает высочайший уровень конкуренции среди претендентов. Например, в Санкт-Петербурге на вакансию CFO в самой обычной компании со средним для рынка окладом, размещенную на сайте hh.ru, приходит минимум 100 откликов. С другой стороны, финансовый директор является одним из ключевых членов управленческой команды, допущенным ко всем критически важным для компании секретам и нюансам её работы, поэтому случайных людей на данную позицию разумные компании стараются не брать. Всё это приводит к тому, что реально трудоустроиться на должность финансового директора на практике крайне сложно (несмотря на колоссальную потребность бизнеса в грамотных финансовых руководителях), процесс поиска может занять месяцы и годы без всякой гарантии успеха. Поэтому действовать надо по следующему алгоритму:
Тут есть определённый моральный аспект, связанный с тем, что поиск работы параллельно с работой в прежней компании без ведома работодателя является не совсем корректным по отношению к нему шагом, что для CFO, который заботится о своей деловой репутации (и хочет уйти действительно красиво), неприемлемо. Поэтому самое правильное — заранее предупредить работодателя о желании в среднесрочной перспективе покинуть компанию, объяснить причины такого решения и договориться о формате сотрудничества на этот период. При нормальных отношениях с работодателем это абсолютно реально, к примеру, мой уход из ООО «Профмеханика» был организован именно так. Открытая честная позиция, продемонстрированная финансовым директором в столь щекотливом вопросе, как увольнение из компании, является залогом доверия работодателя и конструктивных отношений с ним в будущем.
Чем громче вы заявите о себе как о классном специалисте, тем больше возможностей у вас появится, причем, зачастую, без каких-либо усилий с вашей стороны. Советую брать пример с автора, который активно пишет статьи, блоги (в том числе для fd.ru), проводит аншлаговые вебинары, заседает в Экспертном Совете журнала «Финансовый директор», развивает собственный сайт о корпоративных финансах и, как результат, не реже раза в неделю получает заманчивые предложения :)
Если вы всё будете делать правильно, очень скоро у вас появится сразу несколько вариантов трудоустройства, каждый из которых будет вполне привлекателен и достоин пристального изучения. Как в данной ситуации сделать правильный выбор, который определит развитие вашей карьеры на несколько лет вперед — мы поговорим в следующий раз.
Last Updated on Вторник, 05 мая 2015 16:33
Hits: 3463
Любому действию в большинстве случаев предшествует принятие решения. Поскольку решение о смене работы относится к категории ключевых решений для карьеры практически любого человека, принимать его следует ответственно и осмысленно. К сожалению, зачастую такие решения принимаются на основании эмоций и сиюминутных обстоятельств.
Работа финансового директора для большинства людей является результатом продолжительной карьеры в качестве финансового специалиста. К этой цели идут последовательно и целенаправленно, развиваясь профессионально и совершая расчётливые переходы с одних мест работы на другие. Лично я уже в последних классах школы чётко знал, что я буду финансовым директором, и именно в этом направлении направлял свои усилия: поступил в лучший финансовый вуз России — Санкт-Петербургский государственный университет экономики и финансов, после второго курса распределился на факультет ФК и МЭО на специальность «Финансы и кредит», а после четвёртого курса выбрал специализацию «Финансовый менеджмент». Начиная с пятого курса я уже работал, вначале в качестве главного бухгалтера маленькой строительной фирмы (так как понимал, что правильный ФД должен хорошо ориентироваться в бухучёте), затем в качестве финансового менеджера крупной оптово-розничной компании «Стройбаза Рыбинская» (ныне известной в качестве сети гипермаркетов «Метрика»), после чего перешёл в Фармацевтический холдинг «Аконит». Как результат — в 24 года я стал финансовым директором холдинга, входившего на тот момент в TOP 10 крупнейших фармдистрибьютеров России, с собственным производством, филиальной сетью и динамикой роста порядка 50-60% в год. Этот пример, на мой взгляд, отлично иллюстрирует правильность сфокусированного подхода к построению карьеры финансового директора.
После того, как вожделенная цель — кресло финансового директора — достигнута, необходимо крайне осторожно и осмотрительно подходить к вопросу дальнейших переходов с места на место. Практика показывает, что далеко не все переходы оказываются удачными: где-то ожидания собственников и генеральных директоров от работы ФД являются далекими от адекватности (когда финдиректора воспринимают как волшебника и мессию, способного совершить чудо и избавить компанию от последствий всех управленческих ошибок, совершённых за годы работы, в том числе не имеющих никакого отношения к финансам), где-то функционал ФД оказывается слишком узким и неинтересным, а где-то сама компания оказывается настолько слабой и неконкурентоспособной, что каждодневной задачей всех её руководителей становится бесконечная борьба за выживание. Всё это часто приводит к тому, что спустя всего несколько недель после выхода на новое место финансовый директор начинает чувствовать, что он совершил ошибку, и в особо клинических случаях сразу же возобновляет процесс поиска новой работы.
Вместе с тем, полностью исключать для себя возможность смены работы и сидеть десятилетиями на одном и том же месте тоже вряд ли является удачной стратегией. Какой бы ни была хорошей компания, спектр вопросов, которыми занимается в ней финансовый директор, является достаточно узким (если, конечно, компания не представляет собой динамично растущий многопрофильный холдинг, включающий в себя компании из различных отраслей). Все ключевые проблемы, как правило, решаются в течение первого года-двух, и дальше ФД переходит в режим поддержания системы в функционирующем состоянии и внесения в неё небольших корректировок по мере изменения внешней конъюнктуры. Отсутствие сложных нерешённых задач в рабочей повестке дня неизбежно приводит к профессиональной деградации и застою в карьере. Уверен, что для большинства компетентных и амбициозных финансистов такая перспектива вряд ли покажется привлекательной.
Итак, мы подходим к ключевому вопросу: какой момент является оптимальным для принятия решения финансовым директором о смене компании? Разумеется, каждый для себя определяет этот момент самостоятельно, но для меня таким критерием является одновременное выполнение двух условий:
Что это значит? Первый пункт означает, что всё, что вы могли привнести в компанию в части организации работы финансовой службы, выстраивания финансовых процессов, внедрения прогрессивных технологий и т.п. — всё это уже сделано и внедрено. Вашей квалификации, опыта или личных качеств уже недостаточно, чтобы сделать что-то ещё. А может быть, у вас есть интересные идеи и наработки, но компании это попросту не надо, или она ещё к этому не готова — бывает и такое. То есть ваше дальнейшее пребывание в компании не будет вести к её дальнейшему развитию, в лучшем случае будет просто сохраняться статус-кво.
Второй пункт означает, что вы перестали расти в компании как специалист. В большинстве случаев это бывает, когда финансовый директор перерастает компанию, в которой работает. Перерастает профессионально, психологически, ментально. Он готов браться за более сложные задачи, развиваться в процессе решения этих задач (причём не только как эксперт по финансам, но и как управленец в широком смысле этого слова), решать их на всё более и более высоком уровне, повышать личную эффективность и результаты всей команды, но, увы, это никому не надо, таких задач нет, все заняты привычной рутиной.
Разумеется, наличие этих двух признаков вовсе не означает, что ФД следует немедленно писать заявление об увольнении и уходить из компании. Осмысленный и грамотный уход, как мы уже говорили — очень серьёзный и достаточно продолжительный процесс, и к нему следует подходить тщательно и основательно. И ключевой его этап, определяющий успех всего мероприятия — это мониторинг рынка труда и поиск достойного нового места работы. Но об этом мы будем говорить уже в следующий раз.
Last Updated on Вторник, 31 марта 2015 23:25
Hits: 3345
Как известно, при полёте на самолете самые опасные моменты — это взлёт и посадка. То же самое можно сказать и о финансовых директорах: неважно, ассоциируете ли вы себя с легкомоторной Cessna, или с многотонным Боингом, в вашей карьере есть два момента, значение которых зачастую недооценивается, а зря. Речь идёт о начале работы в компании и о её завершении.
Подробно о первых шагах финансового директора на новом месте мы говорили в предыдущем цикле блогов (см. здесь и далее по порядку). Вместе с тем, процесс увольнения зачастую даже более важен, чем процесс вхождения в рабочий процесс, так как тут у вас нет права на ошибку — испорченные отношения с работодателем в результате плохой сдачи дел могут вам аукнуться через многие годы, причём в самый неподходящий момент. Оно вам надо? Если нет — давайте поговорим о том, как уйти красиво.
Корректное увольнение с работы важно не только и не столько в связи с тем, что необходимо сохранить ровные отношения с бывшим руководством во избежание каких-либо проблем в будущем. Красивый уход даёт большое количество преимуществ, которые на первый взгляд не вполне очевидны, но при этом весьма существенны. Конечно, я не могу дать гарантию, что бывший работодатель будет каждый вечер звонить вам по телефону и умолять вернуться, или просто тихо рыдать в трубку (хотя такое тоже бывает :). Но вы наверняка хотели бы в будущем получать от него первоклассные рекомендации при последующих трудоустройствах, помогать ему и его деловым партнёрам решать отдельные вопросы бизнеса (а может быть, и вести крупные проекты) в формате внешнего консалтинга (разумеется, за щедрое вознаграждение), а также использовать в случае необходимости его возможности и ресурсы (трудовые, кадровые, организационные) в своих целях. Да и простое понимание того, что в случае неудачи на новом месте вы всегда можете вернуться на предыдущую работу, и там вас примут с распростёртыми объятиями (да еще и зарплату, возможно, увеличат), оно, знаете ли, греет и придаёт уверенности в себе. Особенно в нынешнее, крайне неспокойное для наёмных работников время.
В моей 12-летней практике работы в качестве CFO все увольнения производились по моей инициативе, и во всех случаях я стремился делать это максимально корректно и безболезненно по отношению к работодателю. Результаты такого подхода проявлялись каждый раз по-разному, но весьма показательно:
Как видно из этих примеров, корректный уход — шаг, не только оправданный с моральной точки зрения, но и очень профессиональный и дальновидный.
Процесс красивого ухода достаточно сложен и растянут по времени, поэтому мы будем анализировать его в разрезе этапов. Я бы выделил следующие этапы:
Каждый этап мы подробно рассмотрим отдельно в рамках отдельного блога, так что следите за обновлениями сайта fd.ru!
Last Updated on Вторник, 31 марта 2015 23:20
Hits: 3228
Итак, в предыдущих двух блогах мы пришли к двум взаимоисключающим выводам:
- Excel лучше, чем 1С
- 1С лучше, чем Excel
Поскольку данные два вывода в своей совокупности никоим образом не помогают нам сделать выбор между этими двумя системами, рассмотрим основные ситуации, в которых оказываются финансовые директора, и определим, в каких случаях Excel является наиболее предпочтительным выбором, а когда стоит остановиться на 1C.
Excel оптимально использовать в следующих случаях:
1С оптимально использовать в следующих случаях:
Таким образом, в схватке «Excel vs. 1C» победитель так и не выявлен. Обе системы прекрасно справляются со своими профильными задачами, ради которых они были созданы и на которых специализируются, и обе в обязательном порядке должны быть в арсенале правильного финансового директора. А если вы научитесь использовать эти системы вместе, на полную катушку используя сильные стороны каждой из них — это будет просто высший пилотаж!
Last Updated on Вторник, 17 февраля 2015 20:47
Hits: 3882
В прошлый раз мы убедились в том, что Excel обладает целым рядом серьёзных преимуществ перед 1С благодаря универсальности, гибкости и наглядности. Однако странное дело: в подавляющем большинстве российских компаний (думаю, минимум в 99%) установлена и активно используется именно 1С. Парадокс? Ни в коем случае. Просто 1С лучше, чем Excel.
На самом деле существуют десятки достаточно известных решений, аналогичных 1С и с успехом применяемых в целом ряде компаний. Однако 1С по сути стала отраслевым стандартом, монополизировала рынок и овладела умами, сердцами и десктопами миллионов финансистов и бухгалтеров в нашей стране. Поэтому говорить мы будем именно о ней, хотя всё сказанное вполне можно отнести и к другим аналогичным программам типа «Паруса» или «Галактики».
Итак, 1С лучше Excel, потому что:
Итак, мы убедились в том, что 1С лучше Excel. Но в предыдущем материале столь же убедительно доказывалось, что Excel лучше 1С. Где же истина? Как всегда, истина находится где-то посередине. Но об этом — в следующий раз.
Last Updated on Вторник, 17 февраля 2015 20:29
Hits: 7561
Важнейшей задачей любого финансового директора является автоматизация учётных процессов. Без преувеличения можно сказать, что учётные процессы в принципе неосуществимы без их автоматизации — в любой компании с количеством транзакций больше пяти ведение учёта на огрызке бумаги с помощью деревянных счётов обречено на неудачу.
И в этом контексте сразу встает вопрос выбора платформы для автоматизации. При всем разнообразии выбора (на рынке представлены сотни, если не тысячи, разнообразных решений), подавляющее большинство финансовых директоров выбирают из двух продуктов: Excel и 1С. Попробуем помочь им сделать правильный выбор.
В этом блоге я расскажу о том, почему Excel лучше, чем 1С.
Приведённые аргументы звучат убедительно, не правда ли? Но это лишь одна сторона правды. Ибо есть целый ряд аргументов в пользу того, что, напротив, 1С лучше Excel. Но об этом — в следующий раз.
Last Updated on Понедельник, 16 февраля 2015 22:18
Hits: 6391
После того, как в компании запущены подсистемы управленческого учёта и бюджетирования, самое время сформулировать требования по их автоматизации. Это повысит эффективность работы финансовой службы за счёт снижения трудозатрат на администрирование данных подсистем, а также обеспечит высокую точность и оперативность учётного процесса.
В разных компаниях практикуются разные подходы к автоматизации операционной деятельности. В большинстве компаний, в которых работал или которые консультировал автор, автоматизация была реализована на базе программных продуктов 1С, причём, как правило, в следующей связке:
Соответственно, первой задачей, которую необходимо решить при автоматизации управленческого учёта и бюджетирования, является выбор конкретной системы, в которой данные процессы будут автоматизированы.
Технически и 1С: УТ, и 1С: УПП, и другие аналогичные системы управленческого и оперативного учёта вполне удовлетворяют требованиям финансовой службы. Поэтому при выборе платформы автоматизации необходимо опираться (по крайней мере — финансовому директору) не столько на технические, сколько на организационные моменты, а именно:
После выбора системы автоматизации необходимо определиться с тем, в какой последовательности будут автоматизироваться финансовые контуры. Это зависит от сложившейся в компании практики учётного процесса.
Так, если управленческий учёт в компании ограничен учётом движения денежных средств и, соответственно, единственной бюджетной формой является бюджет движения денежных средств, процесс автоматизации управленческого учёта и бюджетирования будет выглядеть так:
В части управленческого учёта:
Помимо простого перечисления реквизитов справочников иногда бывает необходимо указать дополнительные сведения, например, для статей движения денежных средств — перечень ЦФО, которые могут использовать данные статьи.
В части бюджетирования:
Таким образом, алгоритм формирования требований по автоматизации учётного процесса выглядит так:
Автоматизация учётного процесса — важнейший процесс, от качества реализации которого зависит качество работы всей системы финансового менеджмента в компании. Поэтому финансовый директор должен быть плотно вовлечен в это процесс и контролировать его вместе с ИТ-директором компании на правах постановщика задачи и главного пользователя.
Last Updated on Понедельник, 16 февраля 2015 22:20
Hits: 3123
После внедрения системы управленческого учёта и отчётности финансовому директору предстоит разработать и внедрить систему бюджетного управления, включая финансовую структуру компании, формы бюджетов ЦФО и бюджетный регламент. Это позволит запустить процесс проактивного (то есть опережающего) финансового менеджмента в компании.
Практически все компании сознают важность бюджетирования как ключевого инструмента управления финансами. И, как правило, бюджетирование начинает внедряться в первую очередь, зачастую даже до внедрения управленческого учёта и отчётности. На мой взгляд, это не совсем правильно: при отсутствующей методологии учётного процесса, бюджетирование будет либо недостаточно эффективно, либо слишком трудоёмко с точки зрения контроля за исполнением бюджетов и осуществления план-фактного анализа.
Поэтому бюджетирование имеет смысл запускать только после того, как в компании внедрена система управленческого учёта и отчётности, как минимум, в части учёта движения денежных средств. То есть компания должна иметь работающую форму ОДДС (Cash flow statement), рубрикатор статей движения денежных средств (с чёткими правилами отнесения различных видов платежей к конкретным статьям) и запущенный процесс отражения в учёте денежных транзакций в разрезе утверждённых статей.
При таких исходных параметрах процесс внедрения бюджетирования становится весьма простым. Поскольку компании обычно начинают внедрять управленческий учёт и отчётность с учёта денежных потоков, бюджетирование имеет смысл запускать с внедрения бюджета движения денежных средств (БДДС). Для этого необходимо осуществить следующие действия:
Бюджеты ЦФО вместе с бюджетным регламентом рассылаются руководителям ЦФО, после чего последние (под чутким руководством финансового директора) формируют свои первые бюджеты. Как правило, для этого используется Microsoft Excel. На данном этапе не надо стремиться к максимальной точности и подробности бюджетов — бюджетирование, в первую очередь, это управленческая процедура, поэтому очень важно запустить сам процесс, а над его точностью можно будет работать позднее.
Вместе с тем, финансовый директор должен уже на стадии внедрения бюджетирования наладить рабочий контакт с руководителями ЦФО в части отслеживания их производственных планов и мониторинга событий, которые могут эти планы скорректировать. Несмотря на то, что бюджеты ЦФО формируются руководителями самих ЦФО, финансовый директор должен хорошо знать обстановку внутри подразделений, чтобы гарантировать адекватность принимаемых финансовых планов, так как в конечном счёте именно он отвечает за работоспособность системы бюджетирования и является (будучи контролером и распорядителем финансовых потоков) одним из главных выгодоприобретателей от её успешного функционирования.
Более подробно о процессе внедрения бюджетирования и сопровождающих его подводных камнях рассказывалось на состоявшемся 19 декабря 2014 года вебинаре автора «Бюджетирование в малом и среднем бизнесе», материалы которого (вместе с видеозаписью самого вебинара) доступны на сайте журнала «Финансовый директор» по адресу http://fd.ru/webinar/115.
Last Updated on Понедельник, 16 февраля 2015 22:20
Hits: 3268
Управленческий учёт и отчётность — первый контур финансового менеджмента, который должен быть внедрён финансовым директором в самом начале его работы в компании. Это связано с тем, что без управленческого учёта финдиректор слеп, он не владеет реальной картиной на предприятии и, как следствие, не может принимать обоснованные управленческие решения.
Как правило, в компании перед приходом туда ФД уже есть какая-то отчётность, разной степени несуразности. В практике автора был случай, когда он устроился на достаточно крупное производственное предприятие, и в самый первый его день на новом рабочем месте генеральный директор гордо представил ему ежемесячный управленческий отчёт, который готовил его предшественник. Отчет выглядел примерно так: в первой его части присутствовали данные о поступлениях денежных средств на счета компании, во второй части — данные о платежах со счёта, а венчала отчёт строка со словом «Прибыль» (которая рассчитывалась как разница между поступлениями и платежами денежных средств из предыдущих строк отчёта). Слово «прибыль», правда, было взято в кавычки, то есть автор отчёта, видимо, смутно подозревал, что к прибыли получившийся результат имеет весьма слабое отношение. И, тем не менее, такой симбиоз Cash Flow Statement и Profit & Loss Statement каким-то мистическим образом использовался в компании на протяжении достаточно длительного времени.
Правильная система управленческого отчёта и удобные управленческие отчёты — важнейшие инструменты, которые должен привнести с собой в компанию высокоэффективный финансовый директор. Рассмотрим основные шаги этого процесса.
Как известно, существует три основных формы управленческой отчётности:
Помимо этих отчётов компании могут формировать произвольное количество собственных отчётов, более заточенных на специфику их деятельности, но эти три отчёта должны присутствовать всегда, так как они охватывают абсолютно все аспекты деятельности компании, включая:
Полноценной систему управленческого учёта можно считать только тогда, когда она позволяет формировать данные три формы (в их классическом понимании, о котором мы будем говорить ниже) на любую прошедшую дату за любой прошедший период.
Я рекомендую внедрять данные формы в следующей последовательности:
Денежные потоки — самое очевидное явление хозяйственной деятельности компании, поэтому, как правило, с них начинают вести управленческий учёт и на них же заканчивают. Наладить управленческий учёт денежных потоков достаточно просто, для этого необходимо:
Самое главное при учёте денежных потоков — обеспечить полноту информации и корректное разбиение Cash Flow по статьям. Например, распространённой ошибкой является то, что в управленческий учёт попадают только денежные потоки по основному юрлицу компании, и не включаются аффилированные структуры (например, офшоры). В этой связи следует иметь в виду следующий критерий, по которому можно идентифицировать потоки, которые должны попадать в управленческий учёт: пока право собственности на денежные средства остается у компании (вне зависимости от формальной стороны вопроса), движения этих денежных средств должны включаться в управленческий учёт и отчётность.
ОДДС обычно имеет следующую структуру:
Такое разделение денежных потоков на операционную, финансовую и инвестиционную деятельность не является обязательным, но настоятельно рекомендуется, так как, помимо всего прочего, сильно упрощает последующую работу над формированием P&L и баланса.
Главным недостатком ОДДС является то, что из него не видно сумму прибыли, полученной компанией в прошедший период времени. Поэтому P&L — второй по важности отчёт, который в том или ином виде также присутствует в бизнес-практике большинства компаний.
Структура P&L, как правило, выглядит так:
При формировании P&L важно учитывать следующие моменты:
В отличие от ОДДС и ОПУ, полноценный балансовый отчёт присутствует в управленческой отчётности компаний достаточно редко. Это связано с тем, что такой отчёт реже запрашивается собственниками компаний, его сложнее анализировать и он, откровенно говоря, не столь полезен для текущего управления, как остальные отчёты (поскольку отражает остатки, а не обороты, в то время как всё финансовое управление осуществляется через обороты). Тем не менее, полноценная система управленческой отчётности обязательно должна иметь балансовый отчёт в своём составе, так как он является своего рода «общим знаменателем» в системе отчётности.
Балансовый отчёт состоит из двух разделов: активы и пассивы. В состав активов входят:
В свою очередь, к пассивам относятся:
Балансовый отчёт имеет смысл внедрять после того, как внедрены и успешно работают ОДДС и ОПУ. Это связано с тем, что большинство статей баланса можно сформировать на основе данных, которые присутствуют в этих двух отчётах. В частности:
Last Updated on Понедельник, 16 февраля 2015 22:20
Hits: 3945
После того, как финансовый директор взял под свой контроль финансовые потоки компании, провел систематизацию краткосрочных обязательств и осуществил мероприятия по привлечению финансирования, самое время детально проанализировать деятельность компании в предыдущих периодах, чтобы сформировать для себя среднесрочную повестку дня и определиться с тем, каким аспектам деятельности следует уделить больше внимания, а какие можно отложить до лучших времён.
Все компании отличаются друг от друга, поэтому схема работы и приоритеты финансового директора также будут разными в зависимости от того, в какой компании он работает. Чтобы финансовый директор был максимально эффективен и в первую очередь занимался теми вопросами, которые действительно являются ключевыми для компании, необходимо провести финансовый анализ её деятельности. Этот процесс (его можно назвать операционным due diligence) в чем-то схож со стандартной процедурой due diligence, которая проводится при покупке бизнеса, но есть и существенные различия.
Главным отличием операционного due diligence является то, что он проводится не с целью определения стоимости компании, а с целью выявления наиболее слабых мест в её финансовой политике и определения приоритетов деятельности финансового директора на ближайшую (1-2 года) перспективу.
В состав операционного due diligence входят следующие этапы:
Кратко рассмотрим цель каждого этапа.
Анализ денежных потоков. Этот этап является ключевым, так как денежные потоки, будучи зримым отражением практически всех хозяйственных операций компании, могут очень многое рассказать о выручке, затратах, инвестициях компании, привлечении кредитных ресурсов и т.д. На основе анализа денежных потоков финансовый директор должен выяснить следующие моменты:
Анализ продаж и маржинального дохода. Этот этап призван ответить на следующие вопросы:
Анализ дебиторской и кредиторской задолженности производится с целью выяснения следующих моментов:
Анализ накладных расходов важен с точки зрения:
Анализ товарных потоков особенно актуален для торговых компаний, у которых значительная часть оборотного капитала инвестирована в товарные остатки. В связи с этим необходимо обратить внимание на следующие моменты:
Анализ кредитных и заёмных средств позволяет выяснить:
По итогам операционного due diligence финансовый директор должен определиться с перечнем первоочередных мероприятий, необходимых для повышения эффективности финансово-хозяйственной деятельности. Это может быть:
Таким образом, операционный due diligence — это важнейший этап процесса адаптации финансового директора в новой компании, после осуществления которого CFO определяет ключевые проблемные точки в деятельности компании и приступает к реализации программы действий по их устранению.
Last Updated on Понедельник, 16 февраля 2015 22:20
Hits: 3316
Очень часто финансовый директор приходит в компанию, которая испытывает острую потребность в привлечении внешнего финансирования. Более того, наличие такой потребности зачастую является именно той причиной, по которой компания решает нанять финансового директора (или сменить старого ФД, если он не в состоянии решить данную проблему в силу своей недостаточной квалификации). Поэтому очень важно уже в первые дни работы в компании выявить данную потребность и принять соответствующие меры.
О том, что компании требуется внешнее финансирование, можно понять по следующим признакам:
Самый простой способ узнать о наличии потребности в финансировании — спросить об этом генерального директора. Если проблема действительно серьёзна, практически в 100% случаев генеральный директор об этом знает. Впрочем, иногда о наличии кассовых разрывов становится известно всего за несколько дней до их возникновения (например, при истечении срока кредитного договора, о котором все забыли). В любом случае, финансовый директор должен самостоятельно проанализировать ситуацию с ликвидностью в компании и запустить мероприятия по ликвидации потенциальных кассовых разрывов. Для этого необходимо:
Таким образом, потребность в финансировании в компании финансовый директор может диагностировать, выявив одновременное соблюдение двух условий:
Величина потребности в финансировании соответствует величине предстоящих кассовых разрывов. Вместе с тем, поскольку для нового ФД ситуация в компании еще не является абсолютно прозрачной, и прогнозная величина кассовых разрывов может оказаться заниженной, целесообразно привлекать финансирование в размере 150-200% от прогнозируемых кассовых разрывов.
Что же касается источников финансирования, их следует искать в следующей последовательности:
При выборе источника финансирования кассовых разрывов в первую очередь необходимо руководствоваться возможностью получения необходимых денежных средств к моменту наступления кассовых разрывов, и лишь во вторую — критерием стоимости этих ресурсов, ибо издержки при невыполнении компанией своих обязательств перед контрагентами при наступлении кассового разрыва могут многократно превысить выгоды от несвоевременного привлечения ресурсов, но по более низким ставкам.
Следует отметить, что, конечно же, потребность в финансировании должна определяться финансовым директором с помощью штатных контуров бюджетирования и финансового планирования. Предложенные в данном материале инструменты хороши лишь на начальном этапе работы ФД, когда времени на развёртывание всех контуров финансового менеджмента нет, а проблемы надо решать практически в ручном режиме.
Last Updated on Понедельник, 16 февраля 2015 22:21
Hits: 5090
Взяв под свой контроль денежные потоки, финансовый директор должен сделать следующий шаг и внимательнейшим образом разобраться в обязательствах компании перед её контрагентами. Без преувеличения можно констатировать, что от того, насколько качественно это будет сделано, зависит не только эффективность работы финансового блока, но и рыночный успех всей компании.
Обязательства компании — важнейшая вещь, влияющая на все аспекты её деятельности: продажи, закупки, инвестиционный процесс. Компаний без обязательств не бывает, при этом степень долговой нагрузки может отличаться на порядки. Зачастую эта нагрузка настолько велика, что грамотное управление ею является залогом существования бизнеса. Поэтому финансовый директор должен быть в курсе данного вопроса с первых же дней своей работы в новой компании.
К обязательствам компании относятся:
Обязательства являются достаточно опасной вещью в том смысле, что их неправильное обслуживание может привезти к целому спектру негативных последствий, вплоть до банкротства компании. Например:
Поэтому финансовый директор должен чётко знать, какие обязательства и перед кем имеет компания, и каким образом эти обязательства планируется исполнять. Это следует делать по следующему алгоритму.
В первую очередь необходимо разобраться в банковских кредитах, так как банки являются профильными контрагентами ФД, и кроме него разбираться с ними некому. Отношения с поставщиками курирует служба снабжения, отношения с покупателями — служба продаж, и т.д., а вот банки — это епархия финансовой службы. Необходимо поднять все имеющиеся договора с банками, внимательнейшим образом изучить их и составить платежный календарь обслуживания кредитов, как в части процентов, так и в части погашения тела кредита. По данным управленческого учёта движения денежных средств необходимо поднять историю получения и обслуживания действующих кредитов и сравнить её с данными, прописанными в кредитных договорах и дополнительных соглашениях к ним. Корректное обслуживание кредитов критически важно для компаний с большим кредитным портфелем, так как банки очень пристально следят за тем, как заемщики исполняют свои обязательства, и имеют массу рычагов воздействия на нерадивых клиентов.
Во вторую очередь следует разобраться с прочими финансовыми обязательствами: лизингом, факторингом, частными займами и т.п. Обычно данная категория кредиторов обладает меньшей властью над компанией, чем банки, тем не менее чёткое исполнение обязательств перед ними гарантирует конструктивное общение в будущем и меньше головной боли для финансового директора.
В третью очередь следует разобраться с кредиторской задолженностью поставщиков. Для этого необходимо плотно пообщаться с директором по закупкам, выяснить, кто является ключевыми поставщиками компании, на каких условиях производится работа с ними, насколько строго они следят за оплатой своих счетов и т.д. Очень важно прочувствовать степень лояльности всех основных поставщиков: некоторые из них закрывают глаза на просрочки в несколько месяцев, а некоторые начинают обрывать телефон уже на следующий день после истечения крайнего срока несостоявшейся оплаты. Соответственно, с последними лучше не шутить и оплачивать их счета вовремя, причём при нехватке финансовых ресурсов многие делают это за счёт первых (увы, но такова суровая правда жизни).
В четвёртую очередь необходимо разобраться с покупателями: изучить условия договоров с ними, выявить крупнейших покупателей, разобраться в схемах расчётов. В этом ФД может сильно помочь директор по продажам.
В пятую очередь необходимо изучить порядок расчётов с персоналом. Данный вопрос отнесён на пятое место не потому, что персонал для ФД менее важен, чем банки или поставщики с покупателями, а потому, что платежи сотрудникам осуществляются в ритмичном режиме, два раза в месяц, в фиксированные даты и практически одинаковыми суммами (колебаниями сумм выплат в зависимости от объёма начисленных премий и бонусов в данном контексте можно пока пренебречь), поэтому этот вопрос самый простой и понятный для ФД. Вместе с тем, стоит отметить, что персонал, как правило, очень болезненно реагирует на задержки зарплаты, поэтому лучше всего их полностью исключить из бизнес-практики компании, а кассовые разрывы регулировать каким-либо другим способом.
Last Updated on Понедельник, 16 февраля 2015 22:21
Hits: 3685
После изучения состояния дел в управленческом учёте и отчётности в компании следует сделать первый шаг к непосредственному управлению финансами и взять под контроль все денежные потоки.
Управление денежными потоками — важнейшая функция финансового директора, и именно её следует брать под контроль в первую очередь. Это необходимо для качественного погружения во все остальные финансовые процессы — бюджетирование, управление финансированием и кредитованием, финансовый контроллинг и т.д. Без контроля за денежными потоками финансовый директор практически лишён каких-либо действенных инструментов управления финансами, и, по сути, финансовым руководителем не является.
Под контролем за денежными потоками подразумеваются две вещи:
Понятно, что на начальном этапе работы в компании очень сложно сразу начать принимать грамотные решения относительно распределения финансовых ресурсов — у ФД пока слишком мало информации для этого. Поэтому правильный алгоритм погружения в данный процесс я бы описал так:
На начальном этапе работы ФД необходимо, чтобы он просто знал о том, какие платежи производятся и зачем. Постепенно у ФД сформируется чёткое понимание экономики и финансов компании, и тогда он сможет принимать собственные решения о том, куда и в какую очередь направлять денежные средства, особенно в условиях их дефицита. И с этого момента ФД сможет разворачивать все контуры финансового менеджмента, о которых мы поговорим в следующий раз.
Last Updated on Суббота, 20 декабря 2014 18:35
Hits: 1758
После знакомства со всеми людьми, с которыми вам предстоит взаимодействовать на новом месте работы — топ-менеджментом, руководителями смежных подразделений и сотрудниками финансовой службы — необходимо сделать следующий шаг и постараться разобраться с тем, как в компании осуществляется учётный процесс, какие формы отчётности доступны и какую информацию из них можно почерпнуть.
Управленческий учёт и отчётность — ключевой функционал финансового директора, и именно с погружения в эти вопросы я рекомендую начинать деятельность в новой компании. В отсутствие нормального учёта все действия как финансового директора, так и других руководителей, будут неэффективны в силу того, так как будут осуществляться фактически вслепую, без понимания того, как они повлияют на финансовые результаты деятельности компании. Поэтому уже с самых первых шагов на новом месте финансовому директору следует опираться на данные управленческого учёта и отчётности и начинать планомерно работать над тем, чтобы эти данные были максимально достоверны и в полной мере использовались при принятии управленческих решений.
В подавляющем большинстве компаний в качестве учётной системы используется 1С: Предприятие. При этом, как правило, используются три конфигурации 1С:
1С: Бухгалтерия и 1С: ЗУП применяются практически везде. В качестве системы управленческого учёта продукты 1С применяются реже, вместо них некоторые компании используют западные ERP-системы (например, MBS Axapta), а некоторые ограничиваются простенькими таблицами в старом-добром Excel.
Изучение учётных данных удобнее всего начинать с бухгалтерской системы. Несмотря на то, что далеко не во всех компаниях бухучёт отражает реальную картину (из-за чего управленческий учёт и является таким значимым элементом системы финансового менеджмента), из бухгалтерских данных можно извлечь довольно много интересной информации о деятельности компании, такой как:
Спецификой бухгалтерских данных является то, что они ведутся в разрезе юридических лиц. Это позволяет понять, какие юрлица группы какую функцию выполняют, как взаимодействуют между собой, на каких юрлицах и каким образом формируется налоговая база по основным налогам (НДС, налог на прибыль и т.д.).
После изучения бухгалтерских обороток очень полезно посмотреть квартальные и годовые бухгалтерские отчёты — баланс и отчёт о прибылях и убытках. Поскольку сейчас компании не сдают квартальную бухгалтерскую отчётность, вместо неё можно посмотреть квартальные декларации по налогам, и на их основе сделать определённые выводы, например, об убытках (по данным налогового учёта) в том или ином квартале (что является весьма неблагоприятным фактором, когда компания привлекает финансирование через банковские кредиты, лизинг и т.п.).
После изучения бухгалтерских отчётов, следует обратиться к имеющимся на текущий момент в компании управленческим отчётам. В идеале, каждая компания должна иметь следующие актуальные отчёты:
Данные отчёты должны включать полный объём информации о деятельности компании, включая все расчётные счета (которые, может быть, даже не относятся формально к компании, например, счета аффилированных офшоров), все аффилированные компании и т.д.
Если таких отчётов нет (а суровая реальность такова, что вероятность этого близка к 100%), необходимо сразу понять:
То есть алгоритм работы CFO в части управленческого учёта можно кратко описать так:
Last Updated on Суббота, 20 декабря 2014 18:35
Hits: 1948
Знакомство с сотрудниками финансового блока — решающий этап начального периода работы в новой компании. Вам предстоит познакомиться с вашей новой командой. Именно руками этих людей вы будете реализовывать своё видение системы управления финансами в вашей новой компании, и от того, заладится ли между вами конструктивное общение или нет, во многом зависит ваш будущий результат.
Финансовому директору обычно подчиняются подразделения компании, которые можно объединить в два блока:
Кроме того, в некоторых компаниях финансовому директору подчиняются подразделения, напрямую не относящиеся к финансово-экономической тематике, например, юридический отдел, ИТ-отдел, АХО и др.
Самая первая встреча среди сотрудников финансового блока должна состояться с главным бухгалтером. Это связано с тем, что главбух — ключевая позиция в любой компании, это человек, который подчиняется генеральному директору и несёт персональную ответственность за представляемые данные в налоговую инспекцию, внебюджетные фонды, органы статистики. Каждый главбух чётко осознаёт степень своей ответственности. Поэтому налаживание конструктивного общения с главным бухгалтером является важнейшей задачей.
При общении с главным бухгалтером необходимо следовать следующим простым правилам:
После главбуха следует познакомиться с руководителями других подразделений, входящих в финансовую службу. С ними общаться будет значительно проще, так как они, как правило, теснее взаимодействуют с остальными службами компании, лучше понимают общие цели и задачи и с удовольствием расскажут вам о специфике своей работы и проблемах, которые возникают в её процессе.
Для каждого подразделения финансового блока на данном этапе вам необходимо:
Если численность финансовой службы не превышает десяти человек, полезно познакомиться персонально с каждым сотрудником. Если же людей значительно больше, тогда на данном этапе достаточно общения с руководителями отделов, но обязательно необходимо собрать всех сотрудников вместе и провести небольшую самопрезентацию.
Таким образом, на стадии знакомства с сотрудниками, финансовый директор должен достичь трёх целей:
Last Updated on Суббота, 20 декабря 2014 18:36
Hits: 2004
После общения с собственниками и топ-менеджментом компании, на котором вам озвучат ваши первостепенные задачи, границы зоны ответственности и порядок взаимодействия, необходимо спуститься на одну ступеньку вниз в корпоративной иерархии и познакомиться с руководителями функциональных подразделений.
К таковым я отношу:
Общение с этими руководителями важно финансовому директору по нескольким причинам.
Во-первых, специфика финансов как предметной области и финансового директора как руководителя состоит в том, что финансы не существуют сами по себе, в отрыве от закупок, продаж, производства. Любые ваши значимые задачи, кроме, может быть, внутренней организации финансовой службы и распределения работы между исполнителями, вам придётся решать в тесном контакте с другими руководителями. А для этого необходимо договориться с ними о текущей повестке дня и алгоритме взаимодействия.
Очевидно, что политику ценообразования и кредитную политику финансовый директор должен разрабатывать совместно с коммерческим директором, систему мотивации персонала — совместно с HR-директором, автоматизировать учётные процессы — с IT-директором и т.д.
Во-вторых, руководители функциональных подразделений, в отличие от топ-менеджмента, каждый день занимаются решением насущных практических задач. Поэтому только они могут вам рассказать о реальных проблемах компании с продажами, взысканием дебиторской задолженности, неликвидными товарными остатками и т.д. Только в общении с ними вы сможете понять реальную проблематику, которая стоит перед вами на текущий момент, и определить приоритеты отдельных задач.
Проще говоря, общение с функциональными руководителями после общения с топ-менеджментом сродни возвращению с небес на землю. Если топы мыслят стратегическими категориями и редко глубоко вникают в детали производственного процесса, в широком его смысле, то функциональные руководители — это те люди, которые расскажут вам, что и как на самом деле происходит в компании.
Общение с функциональными руководителями нужно построить так: попросите их рассказать о том,
Главная цель общения — получить информацию о реальном положении дел, выявить основные проблемные зоны, и, что, пожалуй, наиболее важно — заинтересовать каждого руководителя в будущем взаимодействии. Люди должны увидеть в вашем лице человека, который готов вместе с ними вникать в специфику операционных бизнес-процессов, предпринимать усилия по их улучшению и устранять проблемные зоны в работе. Если вам удастся завоевать их доверие на данном этапе — вы создадите мощные предпосылки для вашей эффективной работы в будущем, так как значительная часть вашей работы будет осуществляться во взаимодействии с функциональными руководителями.
Last Updated on Суббота, 20 декабря 2014 18:36
Hits: 1830
Итак, наступил ваш первый рабочий день на новом месте. Вы тщательно к нему подготовились: досконально изучили сайт компании-работодателя, перечитали все последние номера журнала «Финансовый директор», чтобы освежить в памяти все самые современные методики управления финансами, забрали из химчистки ваш лучший костюм, и теперь готовы блеснуть интеллектом перед своими новыми руководителями, коллегами и показать им, что такое действительно классный финансовый менеджмент и как выглядит идеальный финансовый директор.
Вынужден вас разочаровать, скорее всего, такой возможности в ближайшее время у вас не представится.
Подавляющему большинству работодателей абсолютно безразличен идеальный финансовый менеджмент. И на работу они вас взяли, скорее всего, не для того, чтобы его получить. Как это ни удивительно, но собственников и топ-менеджмент обычно не особо беспокоит отсутствие нормального управленческого учета и бюджетирования, cвязанных со стратегическими целями компании систем мотивации персонала, или эффективно структурированных кредитов в портфеле. Они, конечно, не отказались бы всё это иметь, но финансового директора всё-таки обычно берут для решения конкретных проблем компании, возникших не вчера и, зачастую, весьма специфических.
В моей практике был случай, когда мне сделала job offer одна известная питерская строительная компания. В порядке предварительной подготовки я составил краткий перечень мероприятий, которые мне, на мой взгляд, необходимо было осуществить в течение первого полугодия. Однако, на первой же встрече с генеральным директором мои предложения внимательно выслушали, но порекомендовали отложить все мои инициативы на потом, а на текущем этапе заняться более насущной задачей выбивания долгов клиентов. Кстати, сразу после той встречи я передумал переходить в ту компанию.
Поэтому на первой встрече необходимо меньше говорить и больше слушать. Видение вашей работы руководством важно по той простой причине, что именно с точки зрения соответствия вашей работы их ожиданиям будут оценивать вашу эффективность, как минимум, на первом этапе.
Уже на самой первой встрече необходимо получить три результата. Во-первых, надо понять видение вашей работы руководством, ваших первостепенных задач и общего видения места и роли финансового менеджмента в корпоративной системе управления. Также полезно будет понять, что в принципе по мнению руководства входит в вашу сферу ответственности. Очень часто функционал финансового директора руководством компании трактуется слишком широко, либо, что бывает реже, слишком узко.
Во-вторых, договориться о плане работ на первое время, как минимум — на период испытательного срока, или хотя бы о сроках и порядке его формирования.
В-третьих, договориться о порядке координации и взаимодействия, а также об обратной связи.
Эталонным, на мой взгляд, был процесс моей адаптации в группе компаний «Интернест». Испытательный срок там составлял для меня шесть месяцев, и мы на первой встрече договорились о такой его организации:
Таким образом, ни в коем случае не стоит пренебрегать установочной беседой с руководством компании. Грамотная расстановка акцентов и содержательное общение позволят вам более качественно включиться в работу в новой для вас компании и повысить удовлетворённость от работы всеми участниками процесса.
Last Updated on Суббота, 20 декабря 2014 18:36
Hits: 1257
Работа в новой компании для любого финансового директора — всегда вызов. Необходимо быстро вникнуть во все существенные аспекты деятельности, взять под контроль ключевые процессы и с первого дня нести полную ответственность за всё, что происходит в компании в части финансов. Задача эта весьма сложна и нетривиальна. Именно описанию того, как сделать этот процесс более качественным и эффективным, и будет посвящен этот цикл записей в моём блоге на fd.ru.
Я бы выделил следующие основные шаги, которые должен предпринять финансовый директор в течение первых нескольких месяцев на новом месте:
Итак, начнём с первого шага. На самом деле, информацию о компании надо начинать собирать еще до того, как компания сделала вам предложение о трудоустройстве. Очень большая доля компаний настолько безобразно управляется, что даже на интересные с финансовой точки зрения предложения надо смотреть очень осторожно. Неадекватное руководство, бардак в бизнес-процессах, бешеная текучка и повышенное внимание правоохранительных органов — вот лишь несколько моментов, которые могут сильно испортить вам настроение в первые же дни после выхода на работу. Поэтому очень полезно в порядке заочного ознакомления с компанией посетить сайты с отзывами бывших и нынешних сотрудников, например весьма репрезентативный сайт "О работе" (по крайней мере, отзывы о известных мне компаниях оказались там весьма соответствующими действительности). Зачастую желание переходить в компанию начисто пропадает после простого ввода её названия в поисковую строку Яндекса или Гугла и внимательного изучения результатов поисковой выдачи. Но, конечно же, эту проверку надо производить ещё до принятия решения о трудоустройстве.
Допустим, с рыночными позициями и качеством менеджмента в компании всё в порядке, и вы приняли предложение. Теперь вам предстоит понять, на каком рынке действует компания, какие товары продаёт и услуги оказывает, какова специфика этого рынка и т.д.
Очень полезно внимательно изучить сайт компании, а также сайты её основных конкурентов, поставщиков и покупателей. Это даст понимание того, как функционирует компания, причём "извне", а не "изнутри" — такой возможности посмотреть на компанию глазами стороннего наблюдателя у вас потом уже не будет. Очень полезно почитать материалы о рынке, на котором действует компания, чтобы понять, какие проблемы есть у его игроков, как они взаимодействуют между собой. Хороший финансовый директор — это не просто казначей или начальник главбуха, это бизнес-стратег, который управляет компанией, имея чёткое понимание того, в какую сторону надо развиваться и какими инструментами пользоваться при решении текущих и стратегических задач.
Если у вас есть знакомые, которые работали или работают в подобных компаниях, очень полезно поговорить с ними на тему того, как происходит производственный процесс: как выстраиваются взаимоотношения с поставщиками и покупателями, есть ли сезонные колебания, высока ли конкуренция на рынке, каковы основные риски и т.д.
Собрав предварительную информацию, вы, с одной стороны, сможете составить предварительное представление о своих задачах на новом месте работы, а, с другой, накопите большое количество вопросов к собственникам и руководству компании, о первом общении с которыми мы поговорим в следующий раз.
Last Updated on Суббота, 20 декабря 2014 18:36
Hits: 5686
Отныне у меня два блога: первый, личный, на findirector.com (который вы в данный момент читаете), и второй, официальный, на сайте журнала "Финансовый директор" fd.ru (я анонсировал его появление в своём твиттере еще в ноябре прошлого года). Вчера в блоге на fd.ru появился первый материал: Важные дела начала года, которые требуют от финдиректора особого внимания. Как невооружённым глазом видно из этого текста, к официальному блогу достаточно основательно руку прикладывает онлайн-редакция "Финансового директора", и материал подаётся в их стандартной суховатой стилистике. Впрочем, может быть это и неплохо, тем более что в личном блоге я могу развлекаться, как моей душе угодно.
Материалы официального блога я буду дублировать в личном (с пометкой "блог на fd.ru"), так что весь авторский контент вы сможете отслеживать в одном месте. Итак, читаем и наслаждаемся.
Январь — особенный месяц для финансового директора. И без того насыщенный график уплотняется в разы. Поэтому очень важно правильно спланировать работу и заранее определить, какие дела надо завершить в январе, а что можно отложить на февраль. Как составлен календарь важных дел на начало года в нашей компании — рассказано ниже, хотя, конечно, у каждого финдиректора он свой.
Налоговая отчетность. Длинные январские праздники, из-за которых реальная работа начинается лишь к концу первой декады месяца, приводит к тому, что формирование налоговой отчётности, в первую очередь — по НДС за IV квартал предыдущего года, проходит в спешке и суматохе. Поэтому во многих компаниях сотрудники финансового блока часть работы выполняют еще на каникулах. Это позволяет подготовить отчетность, перепроверить ее и сдать с первого раза.
Совещания по итогам года. В январе мы проводим годовые организационные совещания, на которых подводим итоги прошедшего года и ставим задачи на год грядущий. Стоит ли говорить, что для финансового директора это двойной стресс. Необходимо максимально быстро сформировать финансовый отчёт за предыдущий год, результаты которого реально подвести не ранее середины января, после получения информации о последних декабрьских транзакциях. Требуется окончательно утвердить бюджет на предстоящий год, а также учесть и скоординировать планы развития всех смежных подразделений, которые в 99% случаев влияют на доходы и расходы компании, и обязательно должны быть учтены в бюджете.
Инвентаризация. Именно в январе мы проводим инвентаризацию под годовой отчет, чтобы сверить фактические остатки с учетными. Чтобы в процессе инвентаризации действительно выявить разницу учетных и фактических данных и возместить потери, важно учесть все, даже самые незначительные вещи.
Внедрение нового. Это месяц внедрения новых технологий управления, автоматизированных учетных систем, методик бюджетирования и т.д. Также в январе мы обычно начинаем промышленную эксплуатацию АСУ, открываем годовые бюджеты.
Контрагенты. В первые рабочие дни января эффективность работы сотрудников финансовой службы, смежных подразделений, а также внешних контрагентов, невысока. Более того, иногда руководители продлевают себе за счёт отпуска январские праздники на полторы-две недели, что существенно усложняет решение многих вопросов, например, тормозит процесс согласования и подписания договоров. Поэтому те вопросы, которые требуют участия руководства компании контрагента, можно смело отложить на февраль.
Управленческая отчетность. Большинство компаний именно в феврале завершают формирование управленческих годовых отчетов, подводят итоги инвентаризации. Финансовый директор в феврале должен еще раз взглянуть на сложившуюся ситуацию в компании, пересмотреть оценки, которые легли в основу бюджета текущего года с учетом итоговых цифр за прошлый год. Ведь реальность может отличаться от видения, которое было в октябре, когда только начинали делать бюджет.
Работа с аудиторами и банками. В феврале начинается работа с аудиторами для подготовки аудиторского заключения по годовой отчетности. Стартует работа с банками по формированию или оптимизации кредитного портфеля. Принимаются решения о плановых показателях на очередной год, к примеру, планируются трансфертные цены, допустимые процентные ставки по займам.
Last Updated on Суббота, 20 декабря 2014 18:37
Hits: 1819