8. Механизмы интеграции и обмена данными
#50

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

Как в 1С:Предприятии редактируется внедрённый OLE-объект (например, лист Excel или документ Word), вставленный в табличный документ/форму?

Через встроенный в платформу редактор OLE-объектов
Неправильно: Платформа 1С выступает контейнером для OLE, но не содержит универсального «своего» редактора содержимого Word/Excel-объектов. Изменение данных внутри OLE выполняется средствами приложения, которое этот объект поддерживает (OLE-сервер).
В связанном приложении (программе-источнике OLE-объекта: Excel, Word и т. п.)
Правильно: OLE-объект хранит информацию о приложении, которое умеет его редактировать, поэтому при активации (например, двойным щелчком) запускается/активируется соответствующая программа. Изменения вносятся в этом приложении и затем возвращаются в контейнер 1С.
С помощью встроенного редактора табличного документа 1С
Неправильно: Редактор табличного документа предназначен для редактирования структуры и содержимого табличного документа 1С (ячейки, оформление, области), а не «внутренностей» внедрённого OLE. Внутреннее содержимое OLE (например, формулы и листы Excel) редактируется не в 1С, а в приложении Excel/Word.

Пояснение

OLE (Object Linking and Embedding) - это технология Windows, при которой один документ может содержать «встроенный объект» другого приложения. В 1С OLE-объект можно вставить, например, в табличный документ (как «Объект» типа Microsoft Excel/Word) или хранить в реквизите/поле, предназначенном для подобных данных. Ключевой признак OLE: редактирование выполняется приложением-сервером OLE (тем, которое знает формат объекта). Поэтому при двойном щелчке по внедрённому объекту 1С не «рисует» собственный редактор, а инициирует активацию объекта: Excel откроет лист для правок, Word - документ, и т. д. После завершения редактирования (обычно достаточно щёлкнуть вне объекта или закрыть окно приложения) изменения сохраняются обратно в контейнер, то есть в документ/форму 1С. Практический пример: вы вставили в печатную форму табличного документа OLE-объект «Лист Microsoft Excel». Пользователь открывает форму и дважды щёлкает по объекту - запускается Excel (или активируется встроенное редактирование, если поддерживается), пользователь меняет таблицу, затем закрывает/завершает редактирование - обновлённый объект остаётся в 1С. Важно учитывать окружение: OLE-редактирование требует рабочей среды клиента и установленного приложения (Excel/Word) на компьютере, где выполняется редактирование. При подключении к другой базе через Automation Client/Server вы фактически работаете в режиме толстого/тонкого клиента на стороне вызывающего компьютера, поэтому логика «редактируем в связанном приложении» сохраняется: редактирование происходит там, где есть GUI и установлен OLE-сервер. В браузерных сценариях (веб-клиент) такие возможности обычно ограничены политиками безопасности и отсутствием прямой OLE-интеграции с локальными приложениями.