VeryBeginning

From 1cpp
Revision as of 13:40, 11 October 2007 by FedorEzeev (talk | contribs) (→‎Качаем)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Качаем

Идем в раздел "Загрузить", качаем бинарники самой последней версии. На данный момент это "рекомендованный стабильный релиз с раздельной загрузкой 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