VeryBeginning

From 1cpp
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Качаем

Идем в раздел "Загрузить", качаем бинарники самой последней версии. На данный момент это "рекомендованный стабильный релиз с раздельной загрузкой FormEx 2.5.0.3".

Это архив, внутри которой лежит файл 1cpp.dll. Этот файл кладем в папку BIN каталога, где у вас установлен 1С. Обычно это будет что-то вроде C:\Program Files\1cv77\BIN

Теперь, если Вы захотите использовать возможности 1С++ в какой-либо конфигурации, вам нужно в глобальном модуле, в процедуре ПриНачалеРаботыСистемы() вставить вызов
ЗагрузитьВнешнююКомпоненту("1cpp.dll");

Уже этих бесхитростных действий достаточно для того, чтобы получить определенные бонусы. Во-первых, 1С начнет быстрее работать. Ненамного, но все-таки быстрее. Пример.

Ускоряемся

Media:SpeedTest.ert

Берем пустую конфигурацию, запускаем в ней эту обработку, наслаждаемся результатами.

Естественно, это синтетический тест, который был специально написан таким образом, чтобы выставить 1С++ в самом выгодном свете.

Редактируя содержимое процедуры ДолгаяПроцедура() вы сможете самостоятельно разобраться, какие методы каких объектов ускоряются лучше, а какие хуже.

Доступ к переменным и методам контекста

Теперь, если Вы открыли некую форму, и догадались сохранить ее контекст, то у Вас есть доступ к ее переменным, процедурам и функциям. То есть, если в модуле формы приходной накладной есть метод Печать(), то код

КонтекстФормы = "";
// ВыбраннаяПриходнаяНакладная - реквизит формы
ОткрытьФорму(ВыбраннаяПриходнаяНакладная, КонтекстФормы);
КонтекстФормы.Печать();
КонтекстФормы.Форма.Закрыть();

распечатает накладную и закроет форму.

Доступ к методу НоваяСтрока() документа

К сожалению, если Вы попробуете таким образом добавить строку в форме открытого документа - скорее всего Вас постигнет разочарование.

Код: КонтекстФормы = "";
ОткрытьФорму("Документ.ПриходнаяНакладная", КонтекстФормы);
КонтекстФормы.НоваяСтрока();
откроет документ, но новой строки в нем не будет.

Однако разочарование будет недолгим, поскольку я сейчас его развею. Функционал, позволяющий выполнить продемонстрированный код в полном объеме есть в FormEx. Соответственно, для 1С++ версии 2.5 и выше загружаем FormEx отдельно, а для версии 1С++ ниже, чем 2.5 все будет работать и так, поскольку в состав этих версий включен функционал FormEx.

Благодарности

Указанные эффекты достигаются благодаря TurboBL