Cuando entró en vigencia la próxima edición de la Ley Federal número 54 "Sobre el uso de cajas registradoras", la mayoría de la población la conoció negativamente.
Algo como esto (18+, contiene lenguaje obsceno)
Fui uno de los pocos que saltó, aplaudió y, en general, se regocijó como un niño.
Para la contabilidad de un trabajo doméstico separado se ha convertido en un negocio elemental.
Por qué
No habrá respuesta a la pregunta "¿por qué necesito la contabilidad del hogar?" Si no sabe la respuesta, entonces no la necesita.
También olvídate de los ahorros basados en el análisis de la contabilidad. El ejemplo clásico de "verá que una taza de café por 130 rublos cada día al final consume 4000 por mes" está divorciado de la realidad. Si una persona no es idiota, verá esto sin la tediosa contabilidad.
Base
Comencemos con uno simple. Software para contabilidad.
Hay mil millones de programas de contabilidad hogareña.
Me familiaricé superficialmente con las tendencias generales y rechacé el software especializado.
Alto umbral de entrada, soporte limitado, falta de capacidad para expandirse, por un lado, y funcionalidad redundante, por otro, perspectivas dudosas y vida útil del software ...
Como resultado, mi esposa y yo nos decidimos por Google Docs. Hemos estado llevando a cabo la contabilidad desde 2014 y durante este tiempo no se rompieron (aunque el nacimiento de un niño se convirtió en una tentación seria) y no se arrepintieron de haber elegido una herramienta.
Todo se ve muy simple:
Tres hojas principales:
Categorías: lista de categorías para la validación de entrada
Mes actual: no perderse
Año actual: descarte el mes actual aquí
Se ve así (creo que todo está claro en la captura de pantalla):

Las categorías se sustituyen automáticamente de la hoja correspondiente. Si ingresa algo que no está en la lista, el validador lo jurará.
Quería hacer etiquetas, pero al final rechacé esta idea: objetivamente, etiquetar no es más fácil, y no era necesario. Un propósito aproximado de la categoría es suficiente.
Así es como se ve mi lista de categorías (no es ideal, algunas de las categorías se duplican entre sí, algunas son subcategorías de otras, pero esta es la lista que se ha formado durante 4 años y cubre las necesidades de nuestra familia para el análisis de costos):
Hoja: CategoríasSitio
Fruta
Verduras
Especias
Gasolina
Descanso cultural
Postre
Productos
Higiene
Salud
Belleza
Auto
Trabajo
Carne
Dormitorio
La cocina
Técnica
Regalos
Pasillo
Ropa_Zapatos
Los juegos
Comunal
Pasatiempos
Suave
Gato
Pescado
Taxi
Trabajo
Número de teléfono
Técnica
Utensilios de cocina
Productos químicos domésticos
Deporte
Oficina
Impuestos
Moto
El jardin
El interior
Seguridad
Cafe
Mantenimiento y reparacion de casas
Muebles
Sexo
Viajes
Comprar una propiedad
Deriva
Dibujo
Escultura
Entrenamiento
Comida lista
Casa inteligente
Velo
Niños
Practica
En teoría, la contabilidad parece muy simple.
Bueno, ¿cuánto nos cuesta volver a casa después de una compra e ingresar rápidamente la lista de productos comprados en un documento? Un par de paquetes de leche, una barra de pan, galletas ...
La teoría no hace viajes a los supermercados cuando se compran un montón de productos de inmediato ...
Y aquí está ella, "un puñado de uñas":

Una especie de tela para pies desmotiva enormemente. Y entrar combinando y contando puntos por categoría lleva mucho tiempo. Mi esposa y yo nos sentábamos por las tardes y manejábamos todos los cheques acumulados durante la semana.
De vez en cuando había un deseo de hacer el reconocimiento del texto del cheque, para simplificar la entrada.
Pero las cosas no fueron más allá de los pensamientos.
La razón es simple, como 5 centavos: escribir software lleva tiempo. Y en ese momento era obvio que el tiempo dedicado a escribir software capaz de reconocer más o menos cualitativamente todos los cheques y formar al menos algunos datos útiles sobre ellos: 10 años bloqueará la conducción manual de los cheques.
Eso fue hasta el 1 de julio de 2017. Ese día, entró en vigencia la "misma" edición de 54 leyes federales.
“¡Aquí está!”, Pensé, “Puedes tomar datos de un cheque sin conducirlo manualmente” ... Y luego continuamos manejando los cheques con nuestras manos. Porque la inercia, la pereza y el conservadurismo.
En febrero de 2018, nació mi hijo ... Esto cambió en gran medida las prioridades en los negocios.
Como resultado, no encontramos el tiempo para la contabilidad.
Se ha acumulado una gran cantidad de cheques.
Y aquí llegué a comprender que estaba haciendo la automatización o que todos los controles tenían que ser desechados, porque simplemente no había fuerza para conducirlos con mis manos.
Automatización
Es hora de hablar sobre 54 leyes federales y lo que nos da.
Esta ley requiere que los vendedores verifiquen a través del OFD (Operador de datos fiscales). Si no tiene palabras inteligentes, todas las cajas registradoras combinan cheques en Internet.
Y se puede acceder a ellos.
No sé cómo ahora, pero cuando lo descubrí, no pude encontrar información sobre el protocolo en Internet.
Afortunadamente, el Servicio de Impuestos Federales ha lanzado su aplicación de teléfono móvil, que puede descargar cheques.
La cosa es pequeña: tomamos un sniffer, lo ponemos en el teléfono y vemos qué envía la aplicación para descargar datos allí.
Y envía estoOBTENER solicitud en:
proverkacheka.nalog.ru : 9999 / v1 / inns / * / kkts / * / fss / {FN} / tickets / {FD}? fiscalSign = {FPD} & sendToEmail = no
El encabezado contiene los siguientes campos obligatorios:
"Autorización": "Básico {BASE64 (teléfono: contraseña)}"
Id. De dispositivo ":" {Cualquier basura} "
"Device-OS": "Android 5.1": lo más probable es que también pueda enviar basura, no lo comprobé.
"Versión": "2"
"ClientVersion": "1.4.4.1"
La respuesta es en forma de json, no veo el punto de citar la estructura, es simple y, en la práctica, será fácil de entender para quien sea relevante.
Enlace SnifferNo habrá enlaces al sniffer. Tomé el primer reproductor de Google Play. Todo funcionó bien, pero no puedo recomendarlo. Vale la pena recordar que para interceptar el tráfico https, la aplicación instala sus certificados y generalmente aloja bastante activamente en el teléfono. No tengo confianza en que la aplicación no contenga código malicioso. Por lo tanto, si es necesario, busque en Google y úselo bajo su propio riesgo y riesgo.
Como puede ver, el protocolo requiere un teléfono y una contraseña para descargar el cheque.
No hice el registro, ya que puedes registrarte fácilmente a través de la aplicación oficial y luego usar el teléfono y la contraseña para recibir cheques.
Como dije anteriormente, el software de automatización de escritura solo tiene sentido si los costos de escritura se compensan con la ganancia de la automatización.
Por lo tanto, me da un
poco de vergüenza el código de la aplicación.
Por otro lado, la aplicación está escrita en unas pocas horas y funciona muy bien.
Usando QZXing y una cámara web, escaneamos el código QR, obtenemos el FP, PD, FPD y solicitamos el contenido del cheque.
Por cierto, una cámara web costosa funcionó muy mal como escáner de código QR.
Incluso estaba un poco molesto y ya quería declarar la aplicación inutilizable, porque Le tomó varios minutos escanear un código, lo cual es completamente inaceptable.
Sin embargo, en aras de la experimentación, decidí intentar usar una cámara web china barata como escáner ... Y, he aquí, ¡escanea códigos QR de cheques sin problemas! No esperaba tal cosa ... Creo que el hecho es que la cámara web china tiene una luz de fondo que es inútil en el uso normal, pero funciona bien cuando se ven los recibos de cerca.
App
Si de repente lees aquí, probablemente estés interesado en probar el software para leer cheques tú mismo.
Las categorías se almacenan en categories.txt

Ingrese el teléfono y la contraseña que recibió durante el registro en la aplicación oficial.
Lo ingresamos una vez, luego se guarda localmente en la configuración de la aplicación.
Haga clic en Solicitar factura, seleccione la fuente de la transmisión de video para escanear el cheque y escanee el cheque, o ingrese los datos manualmente y haga clic en Manual para usar los datos ingresados.
Si el flujo de datos se puede reconocer en el flujo de video, la ventana se cerrará automáticamente y se enviará una solicitud de verificación.
Lo que ya ingresamos se sustituye automáticamente:

Rellene los campos: todo, excepto la garantía, es obligatorio.

Luego presionamos Generar resultado y obtenemos los datos en un formato de texto adecuado para pegar en el editor de tablas, este texto también se coloca en el portapapeles.

La automatización requiere minimizar la entrada de datos. Por lo tanto, todo lo que ya hemos ingresado se guarda.
Compre algo por segunda vez: todos los campos del producto ya estarán completos.
Todo lo ingresado se guarda en el archivo items.csv.
Las fuentes de aplicación cuelgan en GitHubAllí, en la sección de lanzamientos, puede elegir la compilación para Linux y Windows. Debajo de la amapola también va sin problemas, pero esto no es para mí.
UPD:
Los autores de la API han cambiado ligeramente su comportamiento.
1) Ahora primero debe preguntarle a la API si hay un cheque válido disponible, y solo luego solicitarlo. De lo contrario, obtenga un uso de API público no válido
2) Se introdujo un límite en el número de solicitudes gratuitas de un usuario por día. No lo verifiqué específicamente, pero se sintió como una restricción en el área de 20 cheques. En general, la restricción no afecta la contabilidad del hogar, por lo que puede que no se note.