|
количество фактических параметров фонового задания не совпадает | ☑ | ||
---|---|---|---|---|
0
memb3r
04.03.14
✎
10:58
|
Имеем:
Платформа 1С:Предприятие 8.1 (8.1.15.14) Конфигурация Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.04) Выполняется Регламентное задание(самописное). Вываливается с ошибкой: количество фактических параметров фонового задания не совпадает с количеством параметров метода фонового задания Вываливается, когда выполняется по расписанию. Вручную если запустить - всё прекрасно работает. Код общего модуля: Процедура СозданиеДокументаОтменыРезерва(Знач СтруктураПараметров) Экспорт Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | СкладАвтомобилейОстатки.Заказ |ИЗ | РегистрНакопления.СкладАвтомобилей.Остатки КАК СкладАвтомобилейОстатки |ГДЕ | СкладАвтомобилейОстатки.Заказ ССЫЛКА Документ.РезервНаАвтомобиль | И СкладАвтомобилейОстатки.Заказ.ДатаОкончанияРезерва <= КОНЕЦПЕРИОДА(&ТекДата, ДЕНЬ)"; Запрос.УстановитьПараметр("ТекДата",Дата(ТекущаяДата())); Запрос=Запрос.Выполнить().Выбрать(); Пока Запрос.Следующий() Цикл НовыйДокумент = Документы.асОтменаРезерваНаАвтомобиль.СоздатьДокумент(); НовыйДокумент.Дата = Дата(ТекущаяДата()); НовыйДокумент.Автор=Справочники.Пользователи.НайтиПоНаименованию("Робот"); НовыйДокумент.Организация=Справочники.Организации.НайтиПоКоду("00001"); НовыйДокумент.ПодразделениеКомпании = Справочники.ПодразделенияКомпании.НайтиПоКоду("ЦБ000001"); НовыйДокумент.ХозОперация = Справочники.ХозОперации.НайтиПоКоду("000001"); НовыйДокумент.ДокументОснование = Запрос.Заказ; НовыйДокумент.Заказчик = Запрос.Заказ.Заказчик; НовыйДокумент.Автомобиль = Запрос.Заказ.Автомобиль; НовыйДокумент.Модель = Запрос.Заказ.Модель; НовыйДокумент.ВариантКомплектации = Запрос.Заказ.ВариантКомплектации ; НовыйДокумент.Цвет = Запрос.Заказ.Цвет; НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение); КонецЦикла; КонецПроцедуры Кто что скажет? |
|||
1
Ненавижу 1С
гуру
04.03.14
✎
11:00
|
скажу, что у этого метода не может быть параметров, хотя бы потому, что фоновому заданию просто неоткуда их получить
|
|||
2
ДенисЧ
04.03.14
✎
11:02
|
(1) А вот 1с с тобой не согласна....
МенеджерФоновыхЗаданий (BackgroundJobsManager) Выполнить (Execute) Синтаксис: Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>) |
|||
3
memb3r
04.03.14
✎
11:03
|
Забыл сказать, что используется Клиент-Серверный вариант 1С. И МенеджерФоновых Заданий не используется.
|
|||
4
memb3r
04.03.14
✎
11:04
|
Ненавижу 1С, без параметров Процедуры такая же ошибка, плюс такая ошибка при запуске вручную.
|
|||
5
Ненавижу 1С
гуру
04.03.14
✎
11:04
|
(2) я про фоновые, стартуемые как предопределенные регламентные
|
|||
6
Defender aka LINN
04.03.14
✎
11:06
|
(5) Учи матчасть.
(0) Обычно так и бывает, когда параметры не заданы. |
|||
7
memb3r
04.03.14
✎
11:06
|
Ненавижу 1С, не понял тебя. Оно у меня забито как предопределенное. Что попробовать сделать?
|
|||
8
memb3r
04.03.14
✎
11:10
|
Defender aka LINN, тогда почему вручную запускается, а по расписанию нет?
|
|||
9
Ненавижу 1С
гуру
04.03.14
✎
11:20
|
(6) ну и как там передаются параметры?
честно полез посмотреть, ни разу просто не приходилось делать задания с параметрами |
|||
10
memb3r
04.03.14
✎
11:23
|
Там параметры передаются через Массив.
Параметры = Новый Массив; Параметры.Добавить(ИсточникНаСервер); Параметры.Добавить(Событие); ... ФоновыеЗадания.Выполнить(Событие(Тут_изменил_т.к._копирайт), Параметры,, "ЗначимоеСобытие"); И должно проходить всё идеально, но ... |
|||
11
Ненавижу 1С
гуру
04.03.14
✎
11:26
|
(10) так все таки программно, а не по расписанию
|
|||
12
memb3r
04.03.14
✎
11:27
|
По расписанию, расписание задается из 1С Предприятие ...
Вот ещё, если через кнопку: Процедура КоманднаяПанельРегламентныеЗаданияВыполнить(Кнопка) ТекРегламентноеЗадание = ЭлементыФормы.СписокРегламентныхЗаданий.ТекущиеДанные; РегламентноеЗадание = РегламентныеЗаданияСоответствие.Получить(ТекРегламентноеЗадание.Идентификатор); Параметры = РегламентноеЗадание.Параметры; Если Параметры.Количество()=0 Тогда Если РегламентноеЗадание.Предопределенное Тогда СтруктураПараметров = Новый Структура; Параметры.Добавить(СтруктураПараметров); КонецЕсли; КонецЕсли; Попытка ФоновоеЗадание = ФоновыеЗадания.Выполнить(РегламентноеЗадание.Метаданные.ИмяМетода, Параметры, ТекРегламентноеЗадание.Ключ, ТекРегламентноеЗадание.Наименование); Модифицированность = Ложь; Исключение КонецПопытки; КонецПроцедуры |
|||
13
Ненавижу 1С
гуру
04.03.14
✎
11:31
|
и в (0) параметр все равно не используется
|
|||
14
memb3r
04.03.14
✎
11:33
|
Ненавижу 1С, да, он не используется, но без него даже вручную не запускается. Разница между ручным запуском и по расписанию не вижу ... мб кто подскажет? параметры передаются массивом одинаково. только при ручном всё гладко, а по расписанию ошибка ...
|
|||
15
Ненавижу 1С
гуру
04.03.14
✎
11:37
|
если параметр не нужен, то может стоит его убрать, а в фоновом не передавать параметров?
как сделано в консоли заданий |
|||
16
memb3r
04.03.14
✎
11:43
|
Ненавижу 1С, попробую сделать проверку по наименованию, и от этого уже отталкиваться передавать параметры или нет. Т.к. это только в моем регламентном задании параметры не нужны. Но есть другие предопределенные регламентные задания(стандартные), которые м.б. будут использоваться когда-нибудь ... попробую и о результате отпишусь ...
|
|||
17
memb3r
04.03.14
✎
12:29
|
В общем ошибка в типовой Конфигурации. Запускается одно фоновое задание, которое уже в свою очередь выполняет другие(как я понял). Исправил правкой параметров.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |