Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Проблемы с регламентными заданиями


Автор: AlexFIG 26.8.2009, 08:21
Здравствуйте уважаемые коллеги! 

Существует проблема с регламентными заданиями. Организован обмен между БД. Если делаю обмен вручную все идет гладко: номер принятого = номеру загруженного, т.е. базы скинули сообщения на ftp и разобрали для загрузки нужные. 

Описание проблемы с регламентными заданиями: 
Настраиваю обмен при помощи регламентных заданий: 1. Регламентное задание "Выгрузка" (В определенное время например в 21.00) 
2. Регл. задание "Загрузка" (23.30) (Разности во времени вполне хватает чтобы выгрузить файлы всем базам). 
Иногда проходит обмен хорошо. Номер отпр. = номеру принятого. А в большинстве случаев глюки. 
Например: Состояние1 БД : НО =1, НП = 1; 
После регламентного задания "Выгрузка" Состояние 2 БД: НО=25, НП =1; - Это что то я никак не могу понять. 

Настройки регламентого задания: 
Выполнять: c 1 января 2009 г. каждый  день; с 23:00:00 каждые 86400 сек., повторять после завершения через 86400 сек. 

Я решил отследить выполнение данного регламентного задания "Выгрузка", 
выставил значения, сижу жду. Действия регл. задания: 
Стартовало по расписанию, выполнилось, опять стартовало. Что за бред. Ведь оно должно было выполниться один раз. 

Помогите уважаемые коллеги решить эту проблему. За советы и ответы премного благодарен.

PS: В ручном режиме выгрузка/загрузка все Ок.

Автор: SaschaL 26.8.2009, 09:27
Платформа какая 7.7 или 8?

Автор: AlexFIG 26.8.2009, 09:48
Пардон.
1С:Предприятие 8.1 (8.1.14.72)

Автор: AkelaSQL 26.8.2009, 10:05
Цитата

Платформа какая 7.7 или 8?


Откуда в 7.7 регламентные задания?
Их там не существует в природе.

Автор: AlexFIG 26.8.2009, 14:17
Чего то все молчат... smile 

Автор: AlexFIG 27.8.2009, 08:47
Комрады, что делать ??? Настройки разные перепробовал регламентных заданий.

Автор: Zero 27.8.2009, 18:57
Цитата(AlexFIG @  27.8.2009,  08:47 Найти цитируемый пост)
Комрады, что делать ???

1. Возьми/купи книгу М.Г. Радченко "1с:Предприятие 8.1. Практическое пособие разработчика". Там на простом примере показана реализация механизма регламентных заданий. Далее проработай его и сделай аналогично у себя. В начале на интервале неск. минут с выводом простых сообщений, а как получится, прикрутишь процедуры выгрузки/загрузки.
2. Если неполучится, можешь заменить на механизм с использованием процедуры "Обработка ожидания"
3. Ещё для большей надёжности добавь использование флагов, т.е. по умолчанию какойто признак будет иметь значение ноль, а после выгрузки/загрузки данных переходит в состояние один.

Автор: AlexFIG 28.8.2009, 08:03
п.1 прошел уже давно.
Конечно можно использовать флаги и обработка ожидания, но ведь предполагается что регл. задания и без них справяться.

Автор: Zero 28.8.2009, 19:48
Цитата(AlexFIG @  28.8.2009,  08:03 Найти цитируемый пост)
п.1 прошел уже давно.

ну теперь реализуй по аналогии

Автор: Itsys 28.8.2009, 20:42
AlexFIG, Модуль задания и скрины настроек в студию....

Добавлено через 9 минут и 55 секунд
Да, кстати, вариант работы клиент-сервер/файл-сервер?

Автор: AlexFIG 31.8.2009, 10:04
Процедура регл. задания:

Процедура ВыполнитьВыгрузку() Экспорт
    
    ВыборкаУзлов = ПланыОбмена.УдаленныеОфисы.Выбрать();
    Пока ВыборкаУзлов.Следующий() Цикл
        Если ВыборкаУзлов.Ссылка <> ПланыОбмена.УдаленныеОфисы.ЭтотУзел() Тогда
            УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
            УзелОбъект.ЗаписатьСообщениеСИзменениями();
        КонецЕсли;    
    КонецЦикла;
    
КонецПроцедуры

//Процедура выгрузки плана обмена

Процедура ЗаписатьСообщениеСИзменениями() Экспорт
    
    Сообщить("-------- Выгрузка в узел " + Строка(ЭтотОбъект) + " ------------");
    
    //Каталог = ПланыОбмена.УдаленныеОфисы.ЭтотУзел().ПапкаОбмена;
    // Формируем имя временного файла
    ИмяФайла = КаталогВременныхФайлов() + ?(Прав(КаталогВременныхФайлов(), 1) = "\", "", "\") + "Message" + 
               СокрЛП(ПланыОбмена.УдаленныеОфисы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
    
    // Создаем объект записи XML
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    
    // Создаем новое сообщение
    ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
    ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
    Сообщить("    Номер сообщения: " + ЗаписьСообщения.НомерСообщения);
    
    // Получаем выборку изменённых данных
                                                       
    ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
    //Состояние("Выгрузка файла");
    
    Пока ВыборкаИзменений.Следующий() Цикл
        
        // Записываем данные в сообщение
        ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
        
    КонецЦикла;
                                                              
    // Завершаем запись сообщения
    ЗаписьСообщения.ЗакончитьЗапись();
    ЗаписьXML.Закрыть();
    
    Сообщить("Формирование файла данных закончено", СтатусСообщения.Информация);
        
    //Заархивируем наш файл обмена
    Сообщить("Архивирование файла", СтатусСообщения.Информация);
    ПутьФайлаАрхива = КаталогВременныхФайлов() + "Message" + 
               СокрЛП(ПланыОбмена.УдаленныеОфисы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".zip";
    Архив = Новый ЗаписьZipФайла(ПутьФайлаАрхива, , , МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный);
    Архив.Добавить(ИмяФайла);
    Архив.Записать();
    
    //Переместим наш файл на фтп:
    СоединениеFTP = Новый FTPСоединение(FTP, , "obmen", "0bmennik", ,);
    СоединениеFTP.Записать(ПутьФайлаАрхива, "Message" + СокрЛП(ПланыОбмена.УдаленныеОфисы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".zip");
    
    
    //Подчищаем за собой xml и архив на дисках
    УдалитьФайлы(ИмяФайла); 
    УдалитьФайлы(ПутьФайлаАрхива);
    
    Сообщить("-------- Конец выгрузки------------");
    
КонецПроцедуры // ЗаписатьСообщениеСИзменениями()

Автор: AlexFIG 31.8.2009, 10:40
Цитата

AlexFIG, Модуль задания и скрины настроек в студию....

Модули выложил, а смысл выкладывать скрины ? Пробовал по разному.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)