Имя: Пароль:
1C
1С v8
КД 2 и Функции
,
0 birk
 
15.02.12
17:37
Можно ли использовать функции внутри обработчиках?
1 rs_trade
 
15.02.12
17:41
(0) они для этого и существуют
2 fisher
 
15.02.12
17:41
Да. Кури закладку "Алгоритмы/запросы"
3 БалбесВ1с
 
15.02.12
17:41
Наложение условий для правил объектов

На применение того или иного правила объекта можно, при желании, наложить условие. Под условием понимается либо формализованный путем использования построителя условий набор ограничений, либо выполнение описанной пользователем функции. В том случае, если результатом проверки условия будет "ИСТИНА", то правило выполнится, в противном случае правило будет проигнорировано. Если условие описано пользователем при помощи функции, то она должна возвращать единицу в случае необходимости обработки по правилу.
4 birk
 
15.02.12
17:43
(2) Алгоритмы смотрел, но как туда передать параметр и возвратить значение?
5 fisher
 
15.02.12
17:45
(4) Обычно делается служебный параметр КД для этого.
Например "ПараметрыАлгоритмов" типа какой-нить коллекции через которую уже все что хочешь делаешь.
6 acsent
 
15.02.12
17:46
а = "";
ь = "";
Выполнить(Алгоритмы.Плплрло);

Сообщить(а)
7 fisher
 
15.02.12
17:49
(6) В 8-ке и так можно. А из 7.7 они выгружаются как реальные функции. Нужно выгружать модуль, зато и вернуть значение функций по-человечески можно :)
8 birk
 
15.02.12
17:51
(7)Не думал что так тупо :)
Спс
9 fisher
 
15.02.12
17:54
При конвертации из 7.7 обращение к функции через алгоритмы примерно так выглядит:

Параметры.ПараметрыАлгоритмов.Установить("Субконто", АналитикаДт1);
ИмяПКО = ПолучитьПравилоСубконто();
10 birk
 
16.02.12
13:43
Создать обработку.
Накидать в модуль экспортные функции.
Добавить обработку в Подключаемые обработки.
Вызывать из обработчиков:
ДопОбработки.<ИмяОбработки>.<ИмяЭкспортируемойПроцедурыИлиФункции()>
11 Defender aka LINN
 
16.02.12
13:51
(9) А что, ИмяПКО = ПолучитьПравилоСубконто(АналитикаДт1); - не по фен-шую?
12 fisher
 
16.02.12
14:22
(11) По фен-шую. Жаль не работает.
13 birk
 
16.02.12
15:56
Подключаемые обработки работают на клиенте.
На сервере через регл задания - нет.
Не использовать подключаемые обработки?
14 birk
 
17.02.12
09:57
Для работы на сервере:

В процедуре ЗагрузитьОбработку обработки УниверсальныйОбменДаннымиXML
закомментировать:

#Если Клиент Тогда
#КонецЕсли
15 SoftIce
 
03.03.12
15:11
Закомментировал.

загрузил 3 обработки. Одна из них Заполнение_серий. Установил отметку "Используется при загрузке". Вызываю как: ДопОбработки.Заполнение_серий.Инициализировать();

При загрузке выдает ошибку

Ошибка в обработчике события ПослеЗагрузкиОбъекта
   ИмяПКО                 =  ОтчетОРозничныхПродажах
   ТипОбъекта             =  Документ ссылка: Отчет о розничных продажах
   Объект                 =  Отчет о розничных продажах РТ000000007 от 08.02.2012 13:19:49
   Обработчик             =  ПослеЗагрузкиОбъекта
   ОписаниеОшибки         =  Поле объекта не обнаружено (Заполнение_серий)
16 SoftIce
 
03.03.12
15:21
В УниверсальныйОбменДаннымиXML используется свойство ГлобальногоКонтекста ВнешниеОбработки (ВнешниеОбработки.Создать()), которое, судя по хелпу, не доступно на сервере.
Получается ДопОбработки использовать через регламентные задания не возможно?
17 Агент Инфостарта
 
03.03.12
16:13
Получается невозможно, тема уже перетёрта до дыр.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший