Механизм Automation реализует обращение к 1C:Предприятию 8.0 из внешних приложений, написанных на других языках, и обратный механизм, т.е. обращение к внешним приложениям из 1С:Предприятия 8.0.
Например, ниже показан фрагмент на языке Visual Basic, осуществляющий запуск клиентской сессии 1С:Предприятия 8.0 через Automation:
Dim v8 As Object
Set v8 = CreateObject("V8.Application")
v8.Connect("File=" "c:\InfoBases\Trade" ";Usr=" "Director" ";")
v8.Visible = True
Таким же образом один экземпляр 1C: Предприятия 8.0 может обращаться к другому через механизм Automation. Это позволяет организовать обмен данными между информационными базами и реализовать другие решения:
Процедура Загрузить()
V8 = Новый СОМОбъект("V8.Application");
Попытка
Открыта = V8.Connect("File=" " " + Путь + " " ";
Usr=" " " + Пользователь + " " "; ");
Исключение
Предупреждение ("Ошибка открытия информационной базы");
Возврат;
КонецПопытки;
Импорт = V8.NewObject("Справочник.Контрагенты");
Импорт.Выбрать();
Пока Импорт.Следующий() Цикл
Если Не Импорт.ЭтоГруппа Тогда
Сообщить(Импорт.Наименование);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Технология внешних компонент
Технология внешних компонент позволяет расширять функциональность платформы 1С:Предприятия 8.0 за счет DLL-библиотек, написанных на других языках специально для 1С:Предприятия. С помощью этой технологии можно реализовать, например, работу с торговым оборудованием (кассовым аппаратом, штрих-сканером и т.д.).
Замечание. Внешние компоненты для версии 8.0 почти полностью совместимы с внешними компонентами для версии 7.7, поэтому никаких изменений в них делать не нужно, кроме компонент, открывающих окна внутри главного окна 1С:Предприятия - такая возможность теперь не поддерживается.
Приведенный ниже пример подключает внешнюю компоненту Math.dll, содержащую различные математические функции, и использует из нее генератор псевдослучайных чисел:
ЗагрузитьВнешнююКомпоненту("Math.dll");
МФ = Новый("AddIn.Math");
//Для инициализации датчика случайных чисел используется процедура
МФ.SRAND(1000); //параметр может быть от 0 до 32767
Для н = 1 По 10 Цикл
Сообщить(МФ.RAND());
//случайное число в промежутке от 0 до 32767
КонецЦикла;