Экономим время на ввод операций в 1С: Деньги

Обработки - Обработка документов

Рабочее решение автоматического создания операций в 1С: Деньги. Основано на анализе СМС.

Задача: Сократить время на ввод операций в 1С Деньги и начать жить.
Проблема: Объем моих операций порядка 150 в месяц. На то, чтобы занести их в базу, необходимо собирать все чеки и практически ежедневно разносить их по статьям.
Решение: В нашем мире, когда космические корабли бороздят большинство операций производятся через банковские карты, а к каждой карте можно подключить СМС оповещение, все операции можно получить из этих СМС. Вопрос только как эти СМС разобрать, решение которого представлено ниже.
Исходные данные: Android (пользователи iPhone - ну уж извините), клиент-серверная установка 1С, сервер Linux (так уж получилось, но это не важно, под виндой так же работает), банковские карты (несколько банков), вклады, наличные (все в двойном размере мои и жены).

Получилось много букв, но надеюсь те, кто пользуются 1С Деньги, могут сэкономить много времени в будущем.

Возможности

  1. Автоматическая загрузка сообщений в базу (только от указанных отправителей - например 900 от Сбербанка).
  2. Настраиваемые правила загрузки сообщений, в том числе шаблоны заполнения операций.
  3. Возможность разбирать сообщения банковских карт разных банков.
  4. Не затрагивает типовую конфигурацию (только снятие с поддержки).
    Хотел выполнить в виде расширения, но пока уровень поддержки типовой конфигурации не позволяет это сделать.

Этап 1. Получение СМС

Т.к. СМС у нас получаются на наших телефонах, то нужно как-то получить их к себе на компьютер и желательно в каком-нибудь удобочитаемом структурированном виде. Вспомнил о существовании программы SMS Backup & Restore. И т.к. она позволяет экспортировать СМС в XML, да ещё и выгружать все это на Google Disk, то не мудрствуя лукаво воспользовался этой программой.

В итоге порядок действий такой:

  • Ежедневно по расписанию программа SMS Backup & Restore экспортирует XML файл и выгружает его на Google Disk.
  • На компьютере так же установлен Google Disk и он оперативно синхронизирует загруженные на него данные.
  • Отлично, теперь файл XML на компьютере. 1С по расписанию (чуть позже пункта 1 выше) загружает полученный файл и формирует на каждое СМС документ Сообщение.
  • Затем (пока вручную) документы Сообщение по настроенным правилам преобразуются в документы Операция (см. Этап 2 ниже).

SMS Backup & Restore настроен на телефонах моем и жены. Каждый телефон синхронизируется на мой один Google Disk, но в разные папки.

Этап 2. Разбор СМС

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

  • Вид операции (доход, расход, перемещение).
  • Нужно ил вообще создавать операцию (реклама, подтверждение кода СМС, отказ операции, сервисные сообщения и прочий мусор).
  • Номер карты
  • Дату операции
  • Сумму операции
  • Валюту операции
  • Баланс на конец
  • Магазин  или вид расхода

Отлично, регулярные выражения нам помогли СМС разбить на осмысленные части. Теперь надо полученную информацию преобразовать в документ Операция.
Для Всего этого был создан справочник "Правила загрузки". Оно задает:

  • Регулярное выражение для проверки СМС
  • Действует для конкретного отправителя (например 900 для Сбербанка)
  • Шаблон для создания документа Операция, в случае, если СМС соответствует регулярному выражению

Порядок действий по разбору документов Сообщение следующий:

  1. Для каждого сообщения перебираются все правила загрузки.
  2. Первое подходящее правило используем для разбора СМС и создания документа Операция (если не мусорное).
  3. Сообщение считаем обработанным.

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

  • Для правила можно установить период действия - если дата СМС вышла за этот период правило не рассматривается.
  • Правило действует только для конкретного отправителя (соответствует обычно какому-то банку, например 900 - Сбербанк, что-то часто я 900 упоминаю).
  • Проверка СМС может осуществляться по регулярному выражению, по подстроке, по началу строки. Последние 2 используются в основном для быстрого определения мусорных сообщений.
  • Собственно регулярное выражение (или подстрока) и правее на картинке контрольный пример СМС для проверки.
  • Если установлена галочка "Создавать документ", то можно выбрать какой документ 1С Деньги необходимо создать (Доход, Расход, Перемещение и прочие) и заполнить его реквизиты и табличные части (возможно у табличных частей заполнять несколько строк).
  • При заполнении реквизитов можно выбрать либо конкретное значение для заполнения, либо написать шаблон выполняемого кода на языке 1С. Шаблонами я пользуюсь в основном для определения Кошелька, Статьи расходов, Статьи доходов, Суммы и Аналитики операции.
    Оказалось, что шаблоны выполняемого кода в различных правилах одинаковые, поэтому оформил их в отдельный справочник.
  • Для многих операций расхода (например "покупка") правило загрузки одно. И если дату и сумму можно успешно получить, то каждому "магазину" нужно поставить в соответствие некоторую статью из справочника 1С. Для соответствия строк справочникам 1С создал регистр сведений "Аналитика загрузки". Он очень прост: Ключ, Значение, но при этом удобен для заполнения.

    При разборе СМС, если встречается неизвестная строка, то она помещается в регистр сведений (поле Ключ), а создаваемая операция скорее всего не проведется. В этом случае необходимо поставить в соответствие ключу нужное значение (справочник статей, кошельки, аналитика операции) и заново разобрать необработанное сообщение.

Ограничения

Все ограничения связаны с тем, что СМС не содержит полной информации о фактической операции. Приведу то, что встретилось у меня:

  • Есть операции, в которых написано просто "Оплата", например все операции через Сбербанк Онлайн. В этом случае я ставлю статью "Прочие расходы" и разбираю её позднее отдельно.
  • Есть операции, которые проходят в USD, при этом сумма указана в у.е., а рублевой суммы нет. Например оплата картой на AliExpress. Не достаточно информации для заполнения документа "Операция". Здесь есть решение: рублевой суммы нет, но есть баланс на конец. Можно брать эту сумму и сравнивать с балансом на начало операции. В случае корректных остатков разница - это и будет сумма в рублях. Т.к. у меня таких операций мало, я это не использую.
  • Особенность, вытекающая из предыдущего пункта: Сбербанк практикует доллары сегодня списать по текущему курсу, а через пару дней скорректировать его по курсу реальной операции. При этом никакой СМС не приходит и обнаружить это можно только отслеживая остатки.
  • Иногда приходится давать в долг и получать долги по карте. Эти операции тоже проходят как просто Оплата или Поступление. В итоге не использую документы Долг. =((
  • Не контролируется наличка.

Итоги

Я около 3 лет вел 1С Деньги ежедневно собирая и забивая чеки в программу. Потом мне это надоело и я остановился.
Позже, где-то через год я написал это решение и т.к. я не стирал своих СМС, то смог восстановить большую часть всех моих операций.
Сейчас я захожу в 1С Деньги раз в неделю, чтобы разобрать накопившиеся сообщения, которые в большинстве своем разбираются автоматически и не требуют вмешательства. Появляются иногда 2..3 новых магазина. В общем на все про все не более 5 минут. Результат достигнут!

Немного статистики:

  • Около 1100 сообщений (5 месяцев)
  • Около 50 правил загрузки
  • Около 150 "магазинов"
  • Всего 6 шаблонов выполняемого кода

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

 
 Установка

 

Скачать файлы

Наименование Файл Версия Размер
1С Деньги. Экономим время на ввод операций:
.cf 87,98Kb
13.05.18
7
.cf 87,98Kb 7 Скачать

См. также

Комментарии
1. Александр Хомяк (logarifm) 1016 14.05.18 15:09 Сейчас в теме
особенно круто, когда пошол на рынок. Оплатил стоянку. Голый НАЛ!!!
6. Владимир Бронников (vsbronnikov) 54 14.05.18 16:39 Сейчас в теме
(1) Нал действительно к сожалению не отследить. Даже государство это сделать не может.
2. TIM TIM (khabibullin.tu) 70 14.05.18 15:21 Сейчас в теме
Автор, вы копаете не в ту сторону, сейчас почти на всех чеках есть QR-код, сканируешь приложением ФНС чек и используя спец. обработку грузишь чек в программу (вариантов обработок в сети уйма)
yuran2000; bserge88; rpgshnik; +3 Ответить
4. Владимир Бронников (vsbronnikov) 54 14.05.18 16:36 Сейчас в теме
(2) Я знаю, что есть ФНС и можно отсканировать все чеки. Но во первых нужно собирать все чеки и сканировать их. Во вторых не на все операции есть чеки, например когда оплату производишь через онлайн-банки. А СМС-ки приходят автоматически и разбираются автоматически, причем все, кроме наличных.
Я рассматриваю на данный момент ФНС, как способ уточнения содержимого операции по статьям, если мне не будет хватать такой разбивки. На данный момент в большинстве случаев 1 чек - это одна статья.
7. TIM TIM (khabibullin.tu) 70 14.05.18 16:41 Сейчас в теме
(4) Пользуюсь загрузкой из ФНС уже полгода, купил, чек отсканил на телефон и сразу в мусорку. Операций 5-10 в месяц руками забиваю (то, что в инете оплачиваешь - зачастую тоже уже имеет чек, например МТС кидает электронные чеки), оч. удобно все
11. Дмитрий Котов (rpgshnik) 573 15.05.18 04:50 Сейчас в теме
(7)
Пользуюсь загрузкой из ФНС уже полгода, купил, чек отсканил на телефон и сразу в мусорку. Операций 5-10 в месяц руками забиваю (то, что в инете оплачиваешь - зачастую тоже уже имеет чек, например МТС кидает электронные чеки), оч. удобно все

А какой именно можете поделиться?
3. Yackov . (Yackov) 96 14.05.18 16:26 Сейчас в теме
Ну если есть банк.карта должна быть и выгрузка платежей в 1с из личного кабинета. Видимо не у всех)
5. Владимир Бронников (vsbronnikov) 54 14.05.18 16:38 Сейчас в теме
Задача была избавиться от ручного труда, связанного с загрузкой информации в 1С. Любые загрузки/выгрузки из банк-клиентов - это вероятнее всего зайти, сформировать, отправить на почту. Во многих случаях это "не плоский" Excel или PDF. Сложно для разбора - не структурировано.
Плюс у каждого банка свой формат выгрузки.
И действительно выгрузки могут быть не у всех.
8. nicolas eliseev (nicxxx) 168 14.05.18 17:05 Сейчас в теме
"около 3 лет" - слабак :) я 7 лет уже веду.
Вопрос по теме - некоторые банки шлют push-уведомления. Их реально обработать?
systemevil; rpgshnik; +2 Ответить
9. Владимир Бронников (vsbronnikov) 54 14.05.18 17:12 Сейчас в теме
(8) У меня был продвинутый режим: я каждую строку чека разбирал. =))
Про push-уведомления не ставил себе задачу.
Если поискать такую возможность, то изменится Этап 1: получение сообщения.
А Этап 2 при этом останется тем же: разобрать текстовую строку.
systemevil; +1 Ответить
10. nicolas eliseev (nicxxx) 168 14.05.18 18:38 Сейчас в теме
(9) у меня тоже есть такой режим. раз в год завожу чек из ашана, чтобы посмотреть реальную инфляцию.
Как мне кажется, для получения Push-сообщения нужно прикинуться оригинальным получателем. Я в мобильной разработке полный ноль, не знаю насколько это реально. Да и в целом просто из любопытства спросил.
13. Денис Чумак (dchumak) 36 15.05.18 05:53 Сейчас в теме
Посмотрел, мне кажется это слишком трудоемко и не нужно особо...
Учитываю свой опыт ведения домашней бухгалтерии (с 1 января 2011 года).
1. Занести чеки по статьям затрат - достаточно просто, это все делается за 5-10 минут в день. Наличные и банк. Но, по моему мнению, не информативно. Ничего толком не видишь, видишь, что купил продукты, а какие, по сколько? Я детализирую до товарных позиций. Да, это более трудоемко, но, зато вижу данные по конкретным позициям, а не в общем. И могу действительно посчитать правильную инфляцию.
2. 1100 сообщений за 5 месяцев, итого 220 в месяц, около 7-8 в день. Смысл городить огород ради этого?
3. 150 магазинов... По контрагентам вообще вести опционально, но, для меня чисто это лишняя информация. Толку от нее ближе к нулю, зато нужно вести дополнительный справочник клиентов/контрагентов/магазинов.
systemevil; +1 Ответить
15. Владимир Бронников (vsbronnikov) 54 15.05.18 09:30 Сейчас в теме
(13) 1. Я долго заносил вручную чеки по каждой позиции, но в итоге ушел от этого. Для себя не вижу в такой детализации полезной информации. Список своих актуальных статей прикладываю в файле ниже. Я так понимаю, что Вы вносите нет только сумму каждой позиции, но и цену и количество. Именно по цене можно посчитать инфляцию.
2. Вот именно, я сделал это для уменьшения трудоемкости процесса ведения учета. Один раз настроил и раз в неделю заглядываю в программу.
3. По магазинам я и не веду учет. "Магазин" (именно в кавычках) используется для определения статьи затрат. Ограниченный список "магазинов" был на последнем скриншоте в статье.
Прикрепленные файлы:
17. Денис Чумак (dchumak) 36 15.05.18 11:13 Сейчас в теме
(15)
1. Да, цену и количество. И детализации больше. Сейчас у меня почти 800 позиций в справочнике Операций (статей расходов / доходов). И интересует меня больше детализация по номенклатурным позициям, чем общее. Например, в вашем случае, детализация чисто по продуктам мне не нужна. Мне нужно смотреть, сколько я на что потратил.
2. Это не уменьшение трудоемкости, а просто перенос с больной головы на здоровую. Кстати, а если вы в одном магазине покупаете товары с разными статьями расходов (для выходных закупок в большом гипермаркете ситуация достаточно типична), то как программа разнесет это по статьям? Например, продукты, хозяйственные товары в одном чеке.
3. Смысл раз в неделю заглядывать и сверять, если остатки денежных средств на счетах нужно видеть часто? У моей программы первоначальная цель и была - видеть актуальные остатки ДС. А отчеты по продажам и т.д. прикрутил уже потом.
18. Владимир Бронников (vsbronnikov) 54 15.05.18 11:28 Сейчас в теме
(17) 1. Я ушел от излишней детализации.
2. Это ограничение, с этим мое решение не поможет и я с этим мирюсь.
3. У меня нет цели в такой оперативности.
14. Дмитрий Мишарин (independ) 83 15.05.18 08:11 Сейчас в теме
Веду учет с 2010, на смартфоне, сначала был смарт на WM, с 2013 андроид, детализация по товарным позициям (только продукты, коммуналка, транспорт). Счета: нал, карты, депозиты, р/сч. Когда начинал, первоначально планировал вести учет на ПК, но на смартфоне удобней, т.к. он всегда под рукой, и данные можно ввести в любое время
16. Владимир Бронников (vsbronnikov) 54 15.05.18 09:32 Сейчас в теме
(14) Ставил мобильное приложение, но раз в неделю на компьютере вечерком с чашечкой чая в удобном кресле посмотреть на результат автоматического разнесения операций для меня удобнее.
19. Антон Елизаров (tonsochi) 15.05.18 17:15 Сейчас в теме
А 1С Мобильное переложение нельзя научить работать напрямую в смс?
20. Владимир Бронников (vsbronnikov) 54 15.05.18 18:03 Сейчас в теме
(19) Мобильное приложение не рассматривал. Полагаю этот вопрос только к разработчикам 1С Деньги можно направить.
21. Денис Андронов (Staky) 16.05.18 08:40 Сейчас в теме
Видел у товарища телеграм бота для такого. Серьёзное дело. Отправил мессагу по форме - ввелась операция.
Оставьте свое сообщение