|
поле недоступно для записи внешняя обработка | ☑ | ||
|---|---|---|---|---|
|
0
Juliaa12344
09.11.26
✎
11:37
|
Коллеги, добрый день.
Проблема во внешней обработке, поле АПХ_Открыт недоступно для записи. При выполнении из модуля объекта, по расписанию. При этом из формы, при нажатии кнопки, все работает корректно. Процедура ОбновитьСтатусНаСервере(АдресРезультата = Неопределено) Экспорт ЗаписьЖурналаРегистрации("АПХ.Статусы магазинов", УровеньЖурналаРегистрации.Информация,,,"Начало выполнения обновления статусов"); УстановитьПривилегированныйРежим(Истина); ТекущаяДата = НачалоДня(ТекущаяДатаСеанса()); Изменено = 0; Ошибок = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Ссылка КАК Ссылка, | Склады.АПХ_ДатаЗакрытияТочки КАК АПХ_ДатаЗакрытияТочки, | Склады.АПХ_ДатаОткрытияТочки КАК АПХ_ДатаОткрытияТочки, | Склады.АПХ_Открыт КАК АПХ_Открыт |ИЗ | Справочник.Склады КАК Склады"; //Запрос.УстановитьПараметр("Ссылка", Объект.Склад); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() цикл // Расчет нового значения НовыйСтатус = Истина; Если НЕ ЗначениеЗаполнено(Выборка.АПХ_ДатаОткрытияТочки) Тогда НовыйСтатус = Ложь; ИначеЕсли НачалоДня(Выборка.АПХ_ДатаОткрытияТочки) > ТекущаяДата Тогда НовыйСтатус = Ложь; ИначеЕсли ЗначениеЗаполнено(Выборка.АПХ_ДатаЗакрытияТочки) И НачалоДня(Выборка.АПХ_ДатаЗакрытияТочки) <= ТекущаяДата Тогда НовыйСтатус = Ложь; КонецЕсли; // Запись только при реальном изменении Если НовыйСтатус = Выборка.АПХ_Открыт Тогда Продолжить; КонецЕсли; Попытка НачатьТранзакцию(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Справочник.Склады"); ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); Блокировка.Заблокировать(); Склад = Выборка.Ссылка.ПолучитьОбъект(); Склад.АПХ_Открыт = НовыйСтатус; Склад.Записать(); ЗафиксироватьТранзакцию(); Изменено = Изменено + 1; Исключение ОтменитьТранзакцию(); Ошибок = Ошибок + 1; ЗаписьЖурналаРегистрации("АПХ.Статусы магазинов", УровеньЖурналаРегистрации.Ошибка, , Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЦикла; ЗаписьЖурналаРегистрации("АПХ.Статусы магазинов", УровеньЖурналаРегистрации.Информация, , , "Изменено статусов: " + Изменено + "; ошибок: " + Ошибок); ЗадержкаСекунд = 3; СтрокаЗапроса = "ping -n 1 -w "+Формат(1000 * ЗадержкаСекунд, "ЧДЦ=0; ЧГ=") + " 127.255.255.255"; WshShell = Новый COMОбъект("WScript.Shell"); WshShell.Run(СтрокаЗапроса, 0, -1); КонецПроцедуры |
|||
|
1
Волшебник
09.11.26
✎
11:54
|
оСклад = Выборка.Ссылка.ПолучитьОбъект();
оСклад.АПХ_Открыт = НовыйСтатус; оСклад.Записать(); |
|||
|
2
paramedic
09.11.26
✎
11:54
|
Права-то смотрели? У пользователя, от которого выполняется фоновое задание и заданные в вашем расширении АПХ?
|
|||
|
3
Мультук
гуру
09.11.26
✎
11:59
|
(1)
Это был жирный намёк на область видимости переменных в модуле обработки. Склад как Объект.Склад Склад как локальная переменная P.S. 1С кстати, ничего по поводу делать не собирается ? |
|||
|
4
Галахад
гуру
09.11.26
✎
12:07
|
Проверь включился ли ПР:
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) + "Привилегированный режим: " + Строка(ПривилегированныйРежим()) |
| Форум | Правила | Описание | Секции | Поиск |