🎯 Lo que aprenderás en este artículo:
Por qué son necesarias las extensiones y cómo funcionan
Estructura de extensión correcta
Trabajar con módulos y suscripciones a eventos
Errores típicos de los principiantes y cómo evitarlos
Consejos prácticos para la optimización y las pruebas
Las extensiones en 1C son una herramienta poderosa que te permite modificar la configuración sin cambiar su código fuente. Si eres un desarrollador novato de 1C, comprender el enfoque correcto para crear extensiones te ahorrará meses de dolores de cabeza y modificaciones. Veamos cómo hacerlo bien.
¿Por qué necesitas extensiones?
Imagínese: está trabajando con una configuración típica de 1C, por ejemplo, "Gestión comercial". El cliente solicita añadir un nuevo campo al documento o cambiar la lógica de la operación. Anteriormente, los desarrolladores simplemente corregían la configuración básica, pero al actualizar, todos los cambios se perdían o tenían que transferirse manualmente.
Las extensiones resuelven este problema. Funcionan como un complemento de la configuración principal, sin tocar su código. ¿Has actualizado la configuración típica? La extensión sigue funcionando. ¡Perfecto!

Principios básicos para trabajar con extensiones
Primera regla: la extensión no debe romper la funcionalidad básica. Parece obvio, pero muchos desarrolladores lo olvidan. Piensa siempre que tu código funcionará sobre la lógica existente.
El segundo punto importante es que las extensiones tienen limitaciones. No puedes eliminar objetos de la configuración, solo añadir nuevos o modificar los existentes de cierta manera. Esto no es un error, es una característica: así es como la plataforma protege la integridad del sistema.
Estructura de la extensión
La extensión se crea en el configurador a través del menú "Configuración → Extensiones de configuración". Después de la creación, verá un árbol de objetos familiar, pero con una diferencia importante: aquí solo puede agregar y expandir, pero no eliminar.
La estructura típica de la extensión incluye módulos comunes para la lógica de su negocio, formularios para la interfaz y procesamiento para tareas específicas. Puede añadir nuevos directorios, documentos, registros, todo lo que necesita para resolver el problema.
Cómo añadir correctamente los datos
Supongamos que necesita añadir el campo "Número de contrato con el proveedor" al documento "Recepción de mercancías". En la extensión, encuentre este documento y agregue los detalles. Importante: pongamos nombres significativos con un prefijo que indique que pertenecen a la extensión, por ejemplo, "Adicional_NúmeroDeContratoDelProveedor".
Ejemplo de denominación de los datos:
❌ Mal: Número de contrato
✅ Bien: Número de contrato adicional del proveedor
Después de añadir los detalles, debe colocarse en el formulario. Amplía el formulario del documento, añade un nuevo elemento, vincúlalo con los detalles. La plataforma combinará automáticamente tu formulario extendido con el básico.
Trabajar con módulos
Aquí es donde comienza la magia. Puede ampliar los módulos de objetos añadiendo su propia lógica a los eventos. Un ejemplo clásico es el procesamiento del evento "AlGuardar" de un documento.
La configuración básica ya tiene un controlador para este evento. En la extensión, creas tu propio controlador y la plataforma ejecutará ambos: primero el básico y luego el tuyo. Esto le permite añadir comprobaciones, cálculos adicionales, enviar notificaciones, cualquier cosa sin tocar el código fuente.
Un punto importante: la extensión ve todo desde la configuración básica, pero la configuración básica no conoce la extensión. Por lo tanto, si necesita que el código base utilice su lógica, tendrá que utilizar los mecanismos de suscripción de eventos.
Suscripciones a eventos
Las suscripciones son una forma elegante de introducir tu lógica en el código de otra persona sin cambiarlo. Cree un controlador de suscripción para un evento, por ejemplo, «AntesDeGuardar» el documento requerido, y escriba su código allí. El sistema llamará automáticamente a su controlador en el momento adecuado.
Las suscripciones funcionan a nivel de plataforma, por lo que siempre se activan, sin importar de dónde provenga la grabación: desde un formulario, desde un procesamiento externo o a través de un servicio web. Esto garantiza que su lógica no se eluda.
Módulos comunes en las extensiones
Mueva el código reutilizable a los módulos de extensión comunes. Si necesita alguna función en varios lugares, no duplique el código, cree un módulo común con un prefijo de extensión.
Por ejemplo, cree un módulo «Доп_РаботаСДоговорами» con la función «ПолучитьДанныеДоговора()». Este módulo se puede llamar desde cualquier lugar de su extensión, y el código permanecerá limpio y mantenido.
Trabajar con formularios
La extensión de formularios es un arte sutil. Puedes añadir elementos, cambiar sus propiedades, añadir controladores de comandos. Pero recuerda: la forma de la extensión se superpone a la base, y si creas un elemento con el mismo nombre que en la base, obtendrás un conflicto.
Consejo práctico: utiliza nombres de elementos únicos y significativos. En lugar de «Botón1», llámalo «BotónAdicionalEnviarAlProveedor». Sí, es más largo, pero en seis meses te lo agradecerás.
Prueba de extensiones
Antes de la implementación, asegúrese de probar la extensión en una copia de la base de producción. Compruebe no solo la nueva funcionalidad, sino también que nada se haya roto en la base. Intente desactivar la extensión: todo debería funcionar como antes.
Preste especial atención al rendimiento. Las extensiones se ejecutan después del código base, y si has añadido consultas pesadas al controlador de registro de un documento popular, los usuarios lo sentirán.
Control de versiones y documentación
Mantén un registro de los cambios de la extensión. Cuando dentro de un año se te pida que "arregles algo", te agradecerás a ti mismo por las notas sobre qué se hizo y por qué.
Comenta las soluciones no estándar directamente en el código. «Aquí se hace así, porque de lo contrario hay un conflicto con el subsistema de contabilidad», una línea como esta ahorrará horas de investigación en el futuro.

Errores típicos de los principiantes
Error n.º 1: Intento de reescribir la mitad de la configuración en la extensión. La extensión debe resolver un problema específico y no ser una configuración alternativa.
El segundo error común es ignorar las limitaciones de la plataforma. Si la extensión no permite hacer algo, entonces hay que buscar otro enfoque y no intentar engañar al sistema con muletas.
El tercer error es la falta de gestión de errores. Tu código funciona sobre el de otra persona, y si algo sale mal, debes procesarlo correctamente y no dejar caer todo el sistema.
Consejos prácticos
Utiliza prefijos para todos los objetos de extensión. Esto evitará conflictos de nombres e inmediatamente mostrará lo que se refiere a tu código.
No sobrecargues la extensión. Es mejor crear varias extensiones de destino pequeñas que una enorme «para todas las ocasiones».
Estudia las extensiones de otras personas. Si trabajas con una configuración típica, mira qué extensiones han hecho otros desarrolladores: es una caja de ahorros de experiencia y soluciones.
Productividad
Recuerde que el código de extensión se añade a la ejecución de la configuración básica. Optimice las consultas, evite ciclos innecesarios, almacene en caché los datos siempre que sea posible. Cada milisegundo cuenta, especialmente en los documentos que se realizan en masa.
Si su lógica no siempre es necesaria, agregue comprobaciones de condición al principio del controlador. ¿Por qué ejecutar un código pesado si puedes entender de inmediato que no es necesario?
Actualización de la configuración
Este es el momento de la verdad para cualquier extensión. Después de actualizar la configuración típica, comprueba que todo funciona. La configuración básica puede haber cambiado y su extensión debe adaptarse.
¡Importante! Antes de actualizar, siempre haga una copia de seguridad y pruébela en una base de datos separada. Esto es básico, pero muchos lo descuidan y luego restauran el trabajo en modo de emergencia.
Seguridad
No olvide los derechos de acceso. Si se ha añadido un nuevo informe o procesamiento, configura los roles correctamente. No otorgue a todos derechos sobre todo: esto no solo es inseguro, sino que también crea caos en las interfaces de usuario.
Trabajar con extensiones 1C es una habilidad que viene con la práctica. Comience con tareas simples, complíquelas gradualmente, estudie la documentación de la plataforma. Lo principal es entender la filosofía de las extensiones: complementar, no romper.
Puedes explorar las extensiones de 1C y mucho más en Codice — nuestra plataforma educativa para desarrolladores. Ofrecemos cursos estructurados, tareas prácticas y apoyo en cada etapa de la formación.
Y también tenemos un genial canal de Telegram con una comunidad amistosa donde desarrolladores experimentados comparten su experiencia y ayudan a los principiantes a comprender problemas complejos.
