Чего не хватает в 1С 7.7 для современной разработки и как расширить возможности платформы

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Несмотря на то, что платформа 1С 7.7 официально считается устаревшей, она продолжает активно использоваться во множестве организаций благодаря своей легкости и высокой скорости работы интерфейса. Однако современный мир диктует новые условия: интеграция с государственными информационными системами (ГИС), работа через веб-сервисы и использование сложных форматов обмена данными. В этой статье мы подробно проанализируем основные потребности разработчиков и разберем способы наделения библиотек для 7.7 необходимым функционалом.

1. Работа с современными веб-сервисами: HTTP, SOAP и JSON

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

  1. Объекты HTTP-соединения: Нам нужны аналоги объектов из 8.3 — HTTPСоединение, HTTPЗапрос и HTTPОтвет. Это позволит отойти от использования громоздкого WinHTTP.WinHTTPRequest.5.1 через СоздатьОбъект("OLE.MSXML2.ServerXMLHTTP").
  2. Поддержка TLS 1.2 и 1.3: Системные библиотеки старых Windows не поддерживают современные протоколы шифрования. Библиотека должна инкапсулировать работу с актуальными версиями OpenSSL или libcurl.
  3. Работа с JSON: В 1С 7.7 нет встроенного парсера JSON. Программистам приходится либо использовать регулярные выражения, либо подключать скриптовые движки. Разберем пример реализации, который был бы идеален для ВК:
    
    // Пример желаемого синтаксиса через внешнюю библиотеку
    Библиотека = СоздатьОбъект("AddIn.AlexScript");
    ДанныеJSON = Библиотека.РаспарситьJSON(ТекстОтвета);
    Сообщить(ДанныеJSON.Получить("status"));
    
  4. Автоматизация SOAP: Крайне востребована функция чтения WSDL и XSD файлов. В идеале библиотека должна автоматически генерировать структуру запроса на основе формального описания сервиса, как это реализовано в 8.3 через WSСсылки.

2. Интеграция с ГИС: ЕГАИС, Меркурий, Честный Знак

Работа с государственными порталами требует не только обмена данными, но и криптографической подписи (ЭЦП). Рассмотрим основные сложности, которые необходимо решить:

Для работы с Маркировкой («Честный знак») требуется формирование подписи в формате CAdES-BES. В штатной «семерке» это часто реализуется через вызовы CAPICOM, который официально не поддерживается Microsoft уже много лет. Проанализируем, какие методы должна иметь современная библиотека:

3. Архитектурные улучшения: множественные табличные части

Ограничение 1С 7.7 — одна табличная часть на документ или справочник. Выясним причину, почему это так мешает: современные бизнес-процессы (например, в ERP-системах) требуют разделения данных (товары, услуги, возвратная тара, налоги) по разным вкладкам. Проанализируем способы обхода этого ограничения:

Рассмотрим вариант реализации через внешнюю библиотеку и SQLite. Мы можем использовать библиотеку для создания «виртуальных» табличных частей, данные которых хранятся во внешнем локальном файле БД и связываются с объектом 1С по его ID. Разберем логику:


// При записи документа в 1С вызываем метод библиотеки
Процедура ПриЗаписи()
    Библа.СохранитьДопТабличнуюЧасть(ТекущийДокумент(), ТЗ_Услуги);
КонецПроцедуры

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

4. Событийная модель и перехват методов

Программистам 7.7 не хватает подписок на события. Рассмотрим возможность реализации глобального перехватчика событий Записать(), Удалить() или Новый(). Выясним, как это реализовать:

Библиотека может использовать механизмы инъекции кода или работы с объектами через 1С++. Это позволит выполнять код «менеджера объекта» автоматически, не прописывая вызовы функций в каждом модуле формы. Например, при программном создании справочника из внешней обработки, мы могли бы автоматически запускать проверку заполнения реквизитов.

5. Расширение встроенного языка (Syntax Extensions)

Многие разработчики мечтают о синтаксисе 8-й версии в 7.7. Рассмотрим концепцию использования «препроцессора» или внешнего интерпретатора. Проанализируем ситуацию: автор темы предлагает использовать свой скриптовый движок. Это дает ряд преимуществ:

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

6. Улучшение интерфейса и форм

Рассмотрим возможности библиотеки по управлению формами. Выясним, чего именно не хватает:

7. Итоги и рекомендации по разработке библиотеки

Подводя итог нашему анализу, можно сказать, что идеальная библиотека для 1С 7.7 — это мощный COM-сервер, который берет на себя всю «грязную» работу с сетью, шифрованием и сложными структурами данных, возвращая в 1С простые типы (строки, числа) или объекты типа ТаблицаЗначений.

Основные советы для реализации:

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

← На главную