Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 окт 2025, 10:24

Как при запуске работы системы запустить внешнюю обработку

Автор sali, 11 сен 2025, 08:50

0 Пользователей и 1 гость просматривают эту тему.

sali

я понимаю это не сработает в варианте , когда на сервере нет номенклатуры и он не выгрузит ни цены , ни остатки. но я взял копию боевой ЭДО , создал там тестовое оборудование загрузил номенклатуру которая была и она все равно не работает.  :ooifh:

даже не так, я попробовал программно выгрузить номенклатуру у меня тоже ничего не получилось

sali


sali

antoneus, и снова здрасти.
все таки остался вопрос, который откладывал на потом - Как отрабатывать несколько регламентов ?
сейчас выглядит так
Процедура ЭДОН_ВыполнитьОбработкуПоРегламентномуЗаданию(ВнешняяОбработка, ИдентификаторКоманды)

///Если ТипЗнч(ИдентификаторКоманды) = Тип("ПеречислениеСсылка.ЭДОН_РегламентныеЗаданиеРасширение")  Тогда

// Если ИдентификаторКоманды = Перечисления.ЭДОН_РегламентныеЗаданиеРасширение.ПолучитьЗаказыРегламентом тогда
//
// Если Метаданные.Обработки.Найти("ЭДОН_РабочееМесто") <> Неопределено Тогда
// Обработки["ЭДОН_РабочееМесто"].ПолучитьЗаказыРегламент(); 
// КонецЕсли;
//
//     КонецЕсли;   
//
//// ИначеЕсли ТипЗнч(ИдентификаторКоманды) = Тип("ПеречислениеСсылка.ЭДОН_РегламентныеЗаданиеРасширение")  Тогда
//
// Если ИдентификаторКоманды = Перечисления.ЭДОН_РегламентныеЗаданиеРасширение.ВыгрузитьЦеныНоменклатуры тогда
//
// Если Метаданные.Обработки.Найти("ЭДОН_РабочееМесто") <> Неопределено Тогда
// Обработки["ЭДОН_РабочееМесто"].ВыгрузитьЦеныНоменклатуры(); 
// КонецЕсли;
//
// КонецЕсли;   
//
// Если ИдентификаторКоманды = Перечисления.ЭДОН_РегламентныеЗаданиеРасширение.ВыгрузитьОстаткиНоменклатуры тогда
//
// Если Метаданные.Обработки.Найти("ЭДОН_РабочееМесто") <> Неопределено Тогда
// Обработки["ЭДОН_РабочееМесто"].ВыгрузитьОстаткиНоменклатуры(); 
// КонецЕсли;
//
// КонецЕсли;   
 

//Иначе

// ПродолжитьВызов(ВнешняяОбработка, ИдентификаторКоманды);

//КонецЕсли;

КонецПроцедуры 

предположить если будет работать сразу два или три регламента, как запускать?

antoneus

Не понял вопрос. Надо параллельно ПолучитьЗаказыРегламент, ВыгрузитьЦеныНоменклатуры и ВыгрузитьОстаткиНоменклатуры?

sali

antoneus, ну получается так
Снимок экрана 2025-09-23 171621.png
вот если я запущу их в почти одно время, ну на 5 секунд позже на 5 раньше какое то. то выполняться они будут по очереди или по расписанию (если оно стоит тоже одинаковое)?

antoneus


sali


sali

antoneus, ас смотрите я выключил два регламента - получить заказы (каждые 60 сек с повтором после завершения 30 сек) и выгрузить остатки номенклатуры (каждые 120 сек с повтором после завершения 30 сек)

и регламент с заказами отработал первый, но ничего не пришло. а остатки отработали корректно, при чем он сначала проходит выгрузку номенклатуры и потом уже только по имеющейся на сервере номенклатуре выгружает остатки.

почему могли не сработать заказы?

sali


sali

antoneus,
как проверить регламентное задание по гуиду при записи?
когда создаю новый регламент, проверяю есть дли такой в списке регламентных и фоновых заданиях , но проверялось это так
Задание = РегламентныеЗаданияСервер.Задание(Запись.Идентификатор);
Если Задание = Неопределено Тогда 
потом еще в регистре отбор по наименованию стоял
//Отбор_наименование = Новый Структура;
//Отбор_наименование.Вставить("Наименование", Запись.РегламентноеЗадание);
//мРегламент = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор_наименование);   
//Если мРегламент.Количество() Тогда
// Возврат мРегламент[0];   
//Иначе
// Возврат Неопределено;
//КонецЕсли;   

всегда возвращалось неопределено , т к гуид был нулевым (0000000 0 00000 0 00000)


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск