Добрый день. Есть две внешние обработки, выполняются по расписанию. Периодически они перестают выполняться (состояние Неопределено, Дата окончания Неопределено в обработке регламентные и фоновые задания). В журнале регистрации никаких ошибок нет (записей о начале выполнения так же нет, сейчас запустил принудительно - не запустились), до этого подобная проблема решалась перезапуском 1с предприятие, сейчас вообще ни в какую не выполняются, даже принудительно (других активных заданий в обработке нет, ни фоновых, ни регламентных). В коде ошибок нет, если перенести его во внешнюю обработку и выполнить - все отрабатывает. Пробовал запускать на других версиях платформы, чистил кэш, так и не работают. Подскажите, пожалуйста, что еще можно попробовать? 1С:Предприятие 8.5 (8.5.1.189) Управление нашей фирмой, редакция 3.0 (3.0.9.191)
По теме из базы знаний
- Ускорение в 100 раз. Решаем проблему блокировок
- Атака сервера кнопконажималкой
- Как построить микросервисную инфраструктуру
- "Обновление через копию" - как это использовать?
- Взаимодействие с сотрудниками и клиентами из одного окна конфигурации 1С (Телеграм, ВКонтакте, Facebook, Discord). Преимущества, технические особенности, подводные камни
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) в коде процедур присутствуют записи сообщений в жр. Запустил из дополнительных отчетов и обработок - оттуда все выполнилось. Проблема появилась еще на платформе 8.3.24.1758, в октябре прошлого года, до этого все нормально работало около года. Никаких правок в обработки не вносилось, настройки тоже не менял. Конфа типовая. Разворачивал базу как файловую на локальный комп - так же, какое-то время работает, все ок, а потом регламентом винды сообщение приходит, что запись на текущую дату не создана.
В том что выполняется обработка в ручном режиме и не выполняется она же как регламентное ничего сверх естественного. Вручную вы выполняете под собой , а регламентное выполняется под пользователем под которым служба 1С запущена, может у него нет прав, доступа и т.д. Вручную вы запускаете на своем компьютере, регламентное на сервере 1С. Может на вашем компе установлены нужные программы, а на сервере нет. Не зная что делает ваша обработка можно долго гадать.
(10)
Не зная что делает ваша обработка можно долго гадать.
наподобие этого, некие данные в регистр сведений пишутся. Вариант с правами не рассматривал, если бы не хватало прав то они вообще не работали б. А тут они просто через какое то время перестают работать Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Версия = "1.0.0";
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Загрузка курсов валют'");
НоваяКоманда.Идентификатор = "ЗагрузкаКурсовРегламент";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения) Экспорт
Если ИмяКоманды = "ЗагрузкаКурсовРегламент" Тогда
ОбновитьКурсыВалют(ПараметрыВыполнения);
КонецЕсли;
КонецПроцедуры
Процедура ОбновитьКурсыВалют(ПараметрыВыполнения)
Курс = 0;
ИмяФайла = "Curses.txt";
Текст = Новый ТекстовыйДокумент();
СерверИсточник = "cbrates.rbc.ru";
Адрес = "tsv/cb/";
ТМП = "";
ВремКаталог = КаталогВременныхФайлов() + "tempKurs";
СоздатьКаталог(ВремКаталог);
УдалитьФайлы(ВремКаталог,"*.*");
Стр = "";
ИмяВходящегоФайла = "" + ВремКаталог + "\" + ИмяФайла;
Выборка = Справочники.Валюты.Выбрать();
Пока Выборка.Следующий() Цикл
ТекВалюта = Выборка;
СтрокаПараметраПолучения = Адрес + Прав(ТекВалюта.Код,3) + ТМП + ".tsv";
Если Не ЗапроситьФайлыССервера(СерверИсточник, СтрокаПараметраПолучения, ИмяВходящегоФайла) Тогда
Сообщить("Возникла ошибка при получении курса валюты.");
Возврат;
КонецЕсли;
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
Если НЕ ВходящийФайл.Существует() Тогда
Сообщить("Не удалось получить ресурс для валюты " + СокрЛП(ТекВалюта.Наименование) + " (код " + ТекВалюта.Код + "). Курс для валюты не загружен.");
КонецЕсли;
Текст.Прочитать(ИмяВходящегоФайла,КодировкаТекста.ANSI);
КолСтрок = Текст.КоличествоСтрок();
Для Инд = 1 По КолСтрок Цикл
Стр = Текст.ПолучитьСтроку(Инд);
Если (Стр = "") ИЛИ (Найти(Стр,Символы.Таб) = 0) Тогда
Продолжить;
КонецЕсли;
ДатаКурсаСтр = ВыделитьПодСтроку(Стр);
ДатаКурса = Дата(Лев(ДатаКурсаСтр,4),Сред(ДатаКурсаСтр,5,2),Сред(ДатаКурсаСтр,7,2));
Если Не ДатаКурса = НачалоДня(ТекущаяДатаСеанса()) Тогда
Продолжить;
КонецЕсли;
Кратность = Число(ВыделитьПодСтроку(Стр));
Курс = Число(ВыделитьПодСтроку(Стр));
МенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Валюта = ТекВалюта.Ссылка;
МенеджерЗаписи.Кратность = Кратность;
МенеджерЗаписи.Курс = Курс;
МенеджерЗаписи.Период = ТекущаяДатаСеанса();
МенеджерЗаписи.Записать(Истина);
КонецЦикла;
КонецЦикла;
УдалитьФайлы(ВремКаталог,"*.*");
КонецПроцедуры
Функция ЗапроситьФайлыССервера(СерверИсточник, СтрокаПараметраПолучения, ИмяВходящегоФайла)
HTTP = Новый HTTPСоединение(СерверИсточник);
Пока Истина Цикл
Попытка
HTTP.Получить(СтрокаПараметраПолучения, ИмяВходящегоФайла);
Результат = Истина;
Прервать;
Исключение
Результат = Ложь;
Прервать;
КонецПопытки;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ВыделитьПодСтроку(ИсходнаяСтрока)
Перем ПодСтрока;
Поз = Найти(ИсходнаяСтрока,Символы.Таб);
Если Поз > 0 Тогда
ПодСтрока = Лев(ИсходнаяСтрока,Поз-1);
ИсходнаяСтрока = Сред(ИсходнаяСтрока,Поз+1);
Иначе
ПодСтрока = ИсходнаяСтрока;
ИсходнаяСтрока = "";
КонецЕсли;
Возврат ПодСтрока;
КонецФункции
Показать
(18) Операционка на сервере на поддерживает какой-нибудь протокол, там не установлен какой-нибудь сертификат, к каталогу где создаете файл у службы 1С нет доступа, на сервере кончается место на диске, антивирус блокирует все. Мало ли причин может быть, включайте отладку, гадать можно до бесконечности.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот