Базовые методы модуля «ОбщегоНазначения», необходимые новичку
Мы успешно разобрались с тем, как система оживает при старте и настраивает свои внутренние параметры. Теперь пора переходить к инструментам, которые мы будем использовать каждый день. В мире 1С 2026 года профессиональная разработка немыслима без использования API (Application Programming Interface — программный интерфейс).
В БСП роль такого интерфейса выполняет модуль ОбщегоНазначения. Это своего рода «швейцарский нож» или пульт управления, который позволяет выполнять сложные действия одной короткой командой. Вместо того чтобы каждый раз изобретать велосипед, мы вызываем готовые методы, которые уже оптимизированы экспертами 1С.
Что такое API и программный интерфейс БСП
Когда мы говорим о программном интерфейсе, мы имеем в виду набор правил и функций, через которые одна часть программы общается с другой. Модуль ОбщегоНазначения — это главная точка входа в этот интерфейс.
Использование стандартных методов вместо написания собственного кода дает нам три преимущества:
- Надежность: код БСП протестирован на тысячах систем.
- Скорость: многие методы используют кэширование (память системы), о котором мы упоминали в теме об инициализации параметров сеанса.
- Стандарт: ваш код станет понятен любому другому разработчику.
Чтение данных: быстро и безопасно
Самая частая задача — получить значение какого-то поля из базы (например, ИНН контрагента или артикул товара).
Как делать не стоит (прямое обращение):
// Это вызывает лишнюю нагрузку, так как система тянет в память весь объект
ClientINN = DocumentObject.Counterparty.INN;
Такой подход плох тем, что платформа считывает из базы данных абсолютно все реквизиты контрагента, даже если нам нужен только один. К тому же, если ссылка окажется пустой, программа может выдать ошибку.
Как работаем мы (через БСП):
// Используем метод API для точечного чтения
ClientINN = Common.ObjectAttributeValue(CounterpartyRef, "INN");
Метод ObjectAttributeValue (в русской версии ЗначениеРеквизитаОбъекта) выполняет легкий и быстрый запрос к базе, забирая только то, что мы попросили.
Клиент-серверное взаимодействие
В современной архитектуре 1С очень важно понимать, где выполняется код. Серверный вызов — это «дорогая» операция, когда клиентское приложение (ваш компьютер) обращается к серверу (мощному компьютеру в дата-центре).
Важное правило: Чем меньше данных мы гоняем между клиентом и сервером, тем быстрее работает интерфейс.
Модуль ОбщегоНазначения помогает нам минимизировать эти пересылки. Например, если нам нужно проверить сразу несколько свойств объекта, мы можем получить их одним пакетом в виде структуры:
// Получаем сразу несколько полей за один раз
DataStructure = Common.ObjectAttributesValues(CounterpartyRef, "INN, KPP, FullName");
// Теперь данные у нас под рукой без повторных обращений к серверу
If DataStructure.INN = "" Then
// Какая-то логика
EndIf;
Универсальные методы для работы с типами
Часто нам нужно понять, что за данные перед нами, или преобразовать их. В БСП есть методы, которые делают это изящнее стандартных функций платформы.
| Задача | Метод БСП | Почему это удобно |
|---|---|---|
| Проверить на пустое значение | Common.ValueIsFilled() | Работает корректно с любыми типами данных |
| Превратить строку в массив | Common.StringToArray() | Сама разбивает текст по разделителям (запятым, пробелам) |
| Проверить тип объекта | Common.IsReference() | Позволяет быстро узнать, является ли значение ссылкой на базу |
Практический совет по использованию
Чтобы эффективно использовать ОбщегоНазначения, не нужно заучивать все функции наизусть. Достаточно помнить логику: «Если мне нужно сделать что-то стандартное — скорее всего, в этом модуле уже есть готовый метод».
Используйте контекстную подсказку: начните писать ОбщегоНазначения. и нажмите Ctrl + Space. Система сама предложит вам список доступных «заклинаний».
Обратите внимание: в БСП существует разделение на модули
ОбщегоНазначения(серверный),ОбщегоНазначенияКлиент(только для интерфейса) иОбщегоНазначенияПовтИсп(для данных, которые редко меняются).
Мы научились вызывать базовые методы, но что делать, если данных в базе много, а стандартных функций не хватает? Чтобы не писать громоздкие запросы вручную, в БСП есть еще более продвинутые механизмы.
В следующей теме мы разберем, как получать данные через программный интерфейс так, чтобы ваш код выглядел профессионально, а база данных работала на максимальной скорости.