|
Фоновое задание | ☑ | ||
|---|---|---|---|---|
|
0
Sasha_H
28.05.08
✎
09:37
|
В при начале работы системы сделал:
ИнтервалДляОпроса = Константы.ИнтервалОпросаОбработчикаXML.Получить(); Если ИнтервалДляОпроса = Неопределено ИЛИ ИнтервалДляОпроса = 0 Тогда ИнтервалДляОпроса = 60; КонецЕсли; #Если Клиент Тогда ПодключитьОбработчикОжидания("ЗапускРегламентногоЗаданияЭкспортЧетырех", ИнтервалДляОпроса); #КонецЕсли Далее исполняется процдура. Все хорошо только в то в ремя когда работает ПодключитьОбработчикОжидания, я использовал только ее сдесь, то пользователь в то время должен ждать. Можно как-то в фоне чтобы работало? |
|||
|
1
Sasha_H
28.05.08
✎
11:05
|
Ребят помогите как сделать фоновое задание. Я создал регламентное задание в конфигураторе прописал расписание и прописал модуль. Запустил консоль регламентных заданий. его там нету, добавить можно смотрю, но стандартные задание уже сами как-то добавились значит они включены. Как мне это задание активировать!?
|
|||
|
2
Лефмихалыч
28.05.08
✎
11:08
|
8.0 или 8.1?
|
|||
|
3
Sasha_H
28.05.08
✎
11:08
|
8.1 извеняюсь что не указал
|
|||
|
4
Defender aka LINN
28.05.08
✎
11:12
|
(0) Дык сделай пользователя-робота, под которым и крути свои задания
|
|||
|
5
Sasha_H
28.05.08
✎
11:14
|
не... Нужно именно фоновое задание.
|
|||
|
6
Лефмихалыч
28.05.08
✎
11:14
|
файловая или клиент-сервер?
|
|||
|
7
Лефмихалыч
28.05.08
✎
11:15
|
короче, file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167798
|
|||
|
8
Sasha_H
28.05.08
✎
11:17
|
у меня клиент-сервер
|
|||
|
9
Defender aka LINN
28.05.08
✎
11:19
|
(5) Тогда тебе не 1С нужно.
|
|||
|
10
Лефмихалыч
28.05.08
✎
11:20
|
(8) При чем тут тогда ПодключитьОбработчикОжилания()? ЧИтай ссылку, которую я тебе дал, там пример есть даже создания фонового задания
|
|||
|
11
Sasha_H
28.05.08
✎
11:34
|
ПодключитьОбработчикОжидания
я делал для того чтобы попробовать вообще как работает! Теперь задача постала фоновом режиме. Примеры Создание фонового задания «Обновление индекса полнотекстового поиска»: ФоновыеЗадания.Выполнить("ОбновлениеИндексаПолнотекстовогоПоиска"); Создание регламентного задания «Восстановление последовательностей»: Расписание = Новый РасписаниеРегламентногоЗадания; Расписание.ПериодПовтораДней = 1; Расписание.ПериодПовтораВТечениеДня = 0; Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание( "ВосстановлениеПоследовательностей"); Задание.Расписание = Расписание; Задание.Записать(); |
|||
|
12
Лефмихалыч
28.05.08
✎
11:36
|
(11) и чо? не получилось? вопрос? предложение? жалоба?
|
|||
|
13
Sasha_H
28.05.08
✎
11:38
|
пока тестирую
|
|||
|
14
Sasha_H
28.05.08
✎
11:47
|
А теперь жалоба:
Создал общий модуль не глобальный ОбменДаннымиВФорматеXML "свойства" клиент, сервер Регламентное задание с ссылкой на модуль: //Процедура запускает последовательный экспорт в XML ("4 файла") // Процедура РегламентногоЗаданияЧетырех() Экспорт #Если Клиент Тогда Сообщить("Задания запущены! " + ТекущаяДата()); #КонецЕсли ОбменДаннымиЭкспортСписокКонтрагентов(); //РаботаСШинамиИДисками.ОбменДаннымиЭкспортОстатков(); //РаботаСШинамиИДисками.ОбменДаннымиЭкспортЗаказПокупателя(); //РаботаСШинамиИДисками.ОбменДаннымиЭкспортСвязиСоотношений(); КонецПроцедуры //Процедура запускает механизм экспорта Списка контрагентов // Процедура ОбменДаннымиЭкспортСписокКонтрагентов() Экспорт ВыборкаУзлов = ПланыОбмена.ОбменДаннымиЗаказами.Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл //произвести обмен данными со всеми узлами //кроме текущого (ЭтотУзел) Если ВыборкаУзлов.Ссылка <> ПланыОбмена.ОбменДаннымиЗаказами.ЭтотУзел() Тогда УзелОбъект = ВыборкаУзлов.ПолучитьОбъект(); УзелОбъект.ЗаписатьВXMLСписокКонтрагентов(); КонецЕсли; КонецЦикла; КонецПроцедуры А вот и сама процедура она в модуле плана обменов //Процедура Экспортирует список контрагентов // Процедура ЗаписатьВXMLСписокКонтрагентов() Экспорт Каталог = Константы.КаталогЭкспортаXML.Получить();//КаталогВременныхФайлов(); Если НЕ ЗначениеЗаполнено(Каталог) Тогда //ОстановкаРегламентныхЗаданий(); Возврат; КонецЕсли; //Сформировать имя временного файла //ИмяФайла = Каталог + ?(Прав(Каталог,1)="\","","\") + "ExportListClient.xml"; ИмяФайла = Каталог + ?(Прав(Каталог,1)="\","","\") + "file1.xml"; Если РаботаСШинамиИДисками.ПроверитьСуществованиеФайла(ИмяФайла) Тогда Возврат; //если файл существует нельзя его менять КонецЕсли; #Если Клиент Тогда Состояние("Обмен данными... (список контрагентов)"); #КонецЕсли //Создать объект записи XML //**** запись XML-документов // ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); ////*** инфраструктура сообщений ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML,Ссылка); СписокКонтрагентов = РаботаСШинамиИДисками.ПолучитьКатегориюРазрешитьДоступВЮниполКлиент(); Запрос = Новый Запрос("ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент, | СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки КАК ВзаиморасчетыСКонтрагентамиОстатки |ГДЕ | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент В(&СписокКонтрагентов) | |СГРУППИРОВАТЬ ПО | ВзаиморасчетыСКонтрагентамиОстатки.Контрагент"); Массив = СписокКонтрагентов.ВыгрузитьКолонку("Объект"); СписокФильтр = Новый СписокЗначений; СписокФильтр.ЗагрузитьЗначения(Массив); Запрос.УстановитьПараметр("СписокКонтрагентов",СписокФильтр); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Для Каждого КонтрагентСсылка Из СписокКонтрагентов Цикл СписокКонтактИнформации = РаботаСШинамиИДисками.ПолучитьКонтактнуюИнформациюКонтрагента(КонтрагентСсылка.Объект,Справочники.ВидыКонтактнойИнформации.АдресЭлектроннойПочтыКонтрагентаДляОбменаДокументами); ЕМайл = ""; номВхожд = 0; Для Каждого АдресаЕктроннойПочты Из СписокКонтактИнформации Цикл номВхожд = номВхожд +1; ЕМайл = ЕМайл + АдресаЕктроннойПочты.Представление+?(СписокКонтактИнформации.Количество()<> номВхожд,";","") ; КонецЦикла; Если НЕ ЗначениеЗаполнено(ЕМайл) Тогда Сообщить("У контрагента: " + КонтрагентСсылка.Объект.Код + " " + КонтрагентСсылка.Объект + " не заполнен Е-Майл, в список обмена он непопадет" ,СтатусСообщения.Важное); Продолжить; КонецЕсли; НомВхОбезСимвСобачка = Найти(ЕМайл,"@"); НомВхОбезСимвТочка = Найти(ЕМайл,"."); Если (НомВхОбезСимвСобачка = 0) ИЛИ (НомВхОбезСимвТочка = 0) Тогда Сообщить("У контрагента: " + КонтрагентСсылка.Объект.Код + " " + КонтрагентСсылка.Объект + " не коректный Е-Майл, в список обмена он непопадет" ,СтатусСообщения.Важное); Продолжить; КонецЕсли; СтрокаССальдо = РезультатЗапроса.Найти(КонтрагентСсылка.Объект,"Контрагент"); СуммаВзаиморасчетовОстаток = 0; Если НЕ СтрокаССальдо = Неопределено Тогда СуммаВзаиморасчетовОстаток = СтрокаССальдо.СуммаВзаиморасчетовОстаток; КонецЕсли; Подключен = РаботаСШинамиИДисками.ПолучитьКатегорииКонтрагентов(КонтрагентСсылка.Объект,Константы.КатегорияПодключен.Получить()).Категория; КатегорияЗаблокирован = РаботаСШинамиИДисками.ПолучитьКатегорииКонтрагентов(КонтрагентСсылка.Объект,Константы.КатегорияЗаблокирован.Получить()).Категория; КатегорияОбрезатьОстатки = РаботаСШинамиИДисками.ПолучитьКатегорииКонтрагентов(КонтрагентСсылка.Объект,Константы.КатегорияОбрезатьОстатки.Получить()).Категория; КатегорияВидетьПолныеОстатки = РаботаСШинамиИДисками.ПолучитьКатегорииКонтрагентов(КонтрагентСсылка.Объект,Константы.КатегорияВидетьПолныеОстатки.Получить()).Категория; ЗаписьXML.ЗаписатьНачалоЭлемента("SprObject.Client");//<SprObject.Контрагенты> ЗаписьXML.ЗаписатьБезОбработки("<CodeClient>" +КонтрагентСсылка.Объект.Код +"</CodeClient>" ); ЗаписьXML.ЗаписатьБезОбработки("<Client>" +КонтрагентСсылка.Объект +"</Client>" ); ЗаписьXML.ЗаписатьБезОбработки("<CodeRegistration>" +КонтрагентСсылка.Объект.КодРегистрационный +"</CodeRegistration>" ); ЗаписьXML.ЗаписатьБезОбработки("<Blocked>" +?(ЗначениеЗаполнено(КатегорияЗаблокирован),"ИСТИНА","ЛОЖЬ") +"</Blocked>" ); ЗаписьXML.ЗаписатьБезОбработки("<CutRests>" +?(ЗначениеЗаполнено(КатегорияОбрезатьОстатки),"ИСТИНА","ЛОЖЬ") +"</CutRests>" ); ЗаписьXML.ЗаписатьБезОбработки("<SeeFullRests>" +?(ЗначениеЗаполнено(КатегорияВидетьПолныеОстатки),"ИСТИНА","ЛОЖЬ") +"</SeeFullRests>" ); ЗаписьXML.ЗаписатьБезОбработки("<NumberColumnPrice>" + "" +"</NumberColumnPrice>"); ЗаписьXML.ЗаписатьБезОбработки("<Balance>" + СуммаВзаиморасчетовОстаток +"</Balance>"); ЗаписьXML.ЗаписатьБезОбработки("<EMail>" +ЕМайл+"</EMail>"); //ЗаписьXML.ЗаписатьБезОбработки("<Подключен>" +?(ЗначениеЗаполнено(Подключен),"ИСТИНА","ЛОЖЬ") +"</Подключен>"); //ЗаписьXML.ЗаписатьБезОбработки("<ТипЦен>" +КонтрагентСсылка.Объект.ОсновнойДоговорКонтрагента.ТипЦен+"</ТипЦен>"); //ЗаписьXML.ЗаписатьБезОбработки("<ПроцентСкидки>" +""+"</ПроцентСкидки>"); ЗаписьXML.ЗаписатьКонецЭлемента(); //<SprObject.Контрагенты> КонецЦикла; ЗаписьСообщения.ЗакончитьЗапись(); ЗаписьXML.Закрыть(); #Если Клиент Тогда Сообщить("------- Конец выгрузки контрагентов-------"); Сообщить("Файл экспорта тут --> " + ИмяФайла, СтатусСообщения.Информация); #КонецЕсли КонецПроцедуры Внимание валится в консоле с шибкой: {ОбщийМодуль.РаботаСШинамиИДисками(1178,100)}: Переменная не определена (глТекущийПользователь) Он заходит в Общий модуль ОбщийМодуль.РаботаСШинамиИДисками так как я его вызывал в этом месте СписокКонтрагентов = РаботаСШинамиИДисками.ПолучитьКатегориюРазрешитьДоступВЮниполКлиент(); Но эта функция запрос строит всеволиж: //Получение Категории РазрешитьДоступВЮниполКлиент //Возврат ТаблицаЗначений Функция ПолучитьКатегориюРазрешитьДоступВЮниполКлиент() Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("ВыбКатегория",Константы.РазрешитьДоступВЮниполКлиент.Получить()); Запрос.Текст = "ВЫБРАТЬ | КатегорииОбъектов.Объект |ИЗ | РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов |ГДЕ | КатегорииОбъектов.Категория = &ВыбКатегория"; РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Возврат РезультатЗапроса; КонецФункции А какого он хрена матерится на совем другую процедуру в этом модулю когда я ее нигде не вызываю!!! матерится на это место ДокументЗаказСсылка.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация"); Но это вообще совсем левая процедура, она просто лежит в этом общем модуле! |
|||
|
15
Sasha_H
28.05.08
✎
11:56
|
Ребят я понял... все начстроил. Просто тот модуль, что вызывался он был тоже Серверный а там былы Сообщить, состояни и т..д. то что серверу не допустиму, все исправил!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |