:: Вопросы по 1С
Синтаксис вызова метода
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
1С 8.1

Объект конфигурации - "Регламентные задания"
В нем 2 объекта: "ОбновлениеИндекса" и "СлияниеИндексов"

Для каждого из них предлагается в ОбщиеМодули.РегламентныеПроцедуры сделать вот такие процедуры:
Процедура ОбновлениеИндекса() Экспорт
Сообщить ("Запуск регламентного задания Обновление индекса " + ТекущаяДата());
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
Если не ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ПолнотекстовыйПоиск.ОбновитьИндекс(, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура СлияниеИндексов() Экспорт
Сообщить ("Запуск регламентного задания Слияние индексов " + ТекущаяДата());
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
Если не ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ПолнотекстовыйПоиск.ОбновитьИндекс(Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

В свойствах каждого из регламентных заданий в "Имя метода" необходимо прописать соответствующую процедуру.

Однако, эти две процедуры очень похожи одна на другую, поэтому я решил объединить их, добавив параметр:
Процедура РаботаСИндексами(Обновление) Экспорт
Сообщить ("Запуск регламентного задания " +
?(Обновление, "Обновление индекса ", "Слияние индексов ") + ТекущаяДата());
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
Если не ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ПолнотекстовыйПоиск.ОбновитьИндекс(Не Обновление, Обновление);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Далее в "Имя метода" Регламентного задания "ОбновлениеИндекса" я пишу
РегламентныеПроцедуры.РаботаСИндексами(Истина)

а в "Имя метода" Регламентного задания "СлиянеИндексов" -
РегламентныеПроцедуры.РаботаСИндексами(Ложь).

Однако, запустив "Обработка" -> "Планировщик заданий" в режиме 1С:Предприятие ничего не происходит. Т.е. в процедуру РаботаСИндексами система вообще не заходит.

Может я неправильно написал вызов этой процедуры?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Синтаксис вызова метода
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Нашел в хелпе:
Цитата:
ОбъектМетаданных: РегламентноеЗадание (MetadataObject: ScheduledJob)
ИмяМетода (MethodName)
Использование:
Только чтение.
Описание:
Имя экспортируемой процедуры общего модуля, которая будет выполнена в результате запуска регламентного задания.

Т.е. с параметром оно не используется?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Синтаксис вызова метода
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Именно так. По идеологии восьмерки, в отличие от седьмой версии, вызов процедур и функций, равно как и выполнение любых других операторов встроенного языка, может осуществляться только из программных модулей. В данном случае имеет место не вызов функции, а просто объявление, что такая-то функция будет вызываться в таком-то случае. Можно посмотреть еще в сторону подписки на события, там используется аналогичный механизм.
Ratings: 0 negative/0 positive
Re: Синтаксис вызова метода
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Тогда вопрос: как можно это сделать. В фоксе, например, я бы в INIT каждого из объектов ("ОбновлениеИндекса" и "СлияниеИндексов") присвоил соответствующее значение некоей переменной, которую объявил бы ранее как глобальную, и в функции использовал бы это значение.
А здесь как?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Синтаксис вызова метода
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
Никак. Это просто имя Процедуры, как указатель на функцию в Си. Ей нельзя передавать параметр. Можно так

Процедура Ф1 Экспорт

УниверсальнаяПроцедура(Истина);
КонецПроцедуры

Прог Ф2 Экспорт

УниверсальнаяПроцедура(Ложь);
КонецПроцедуры
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика