Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

1C 8.3.10. Не записывает регистр сведений в фоне

1C 8.3.10. Не записывает регистр сведений в фоне
Я
   holls
 
30.03.18 - 11:01
Доброго дня. Регламентной задание обращается в привилегированной модуль, где запись в регистр сведений. Почему-то при выполнении в фоне запись не происходит. Если эту же процедуру запустить в режиме предприятия, то все отрабатывает нормально. В фоне задание в эту процедуру попадает, отрабатывает норм (проверено в отладчике), но по итогу запись в РС не меняется. Кто-то сталкивался может с такой темой?
Процедура оч простая:
Процедура ЗаписатьРС(СтруктураДанных)  экспорт

    НаборЗаписей = РегистрыСведений.ДокументыКОтправке.СоздатьНаборЗаписей();
    
    НаборЗаписей.Отбор.Документ.Установить(СтруктураДанных.Документ);
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
        
    НаборЗаписей.Добавить();
        
    НаборЗаписей[0].Документ = СтруктураДанных.Документ;
    НаборЗаписей[0].Статус = СтруктураДанных.Статус;
        
    НаборЗаписей.Записывать=Истина;
    НаборЗаписей.Записать();
            
    
КонецПроцедуры
 
 
   Cyberhawk
 
1 - 30.03.18 - 11:03
Записывай в порпытке, в исключении запись в ЖР
   Cyberhawk
 
2 - 30.03.18 - 11:04
(если отладить фоновое тямы не хватает)
   holls
 
3 - 30.03.18 - 11:05
Пробовала в ЖР записывать. В попытке/исключение поставила запись и там, и там. Запись в ЖР показывает, что в исключение не попадает: отрабатывается норм.
   holls
 
4 - 30.03.18 - 11:10
(1). Было как-то так:
Процедура ЗаписатьРС(СтруктураДанных)  экспорт

попытка

    НаборЗаписей = РегистрыСведений.ДокументыКОтправке.СоздатьНаборЗаписей();
    
    НаборЗаписей.Отбор.Документ.Установить(СтруктураДанных.Документ);
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
        
    НаборЗаписей.Добавить();
        
    НаборЗаписей[0].Документ = СтруктураДанных.Документ;
    НаборЗаписей[0].Статус = СтруктураДанных.Статус;
        
    НаборЗаписей.Записывать=Истина;
    НаборЗаписей.Записать();
         
    ЗаписьЖурналаРегистрации("Запись в РС",         УровеньЖурналаРегистрации.Информация,,, "ОК");
           
  Исключение
    ЗаписьЖурналаРегистрации("Запись в РС",         УровеньЖурналаРегистрации.Ошибка,,, "Ошбибка " + ОписаниеОшибки());

КонецПопытки;
  
КонецПроцедуры

В ЖР было "ОК"
   Cyberhawk
 
5 - 30.03.18 - 11:35
"НаборЗаписей.Записывать=Истина" явно лишнее. Это свойство анализируется и применяется только при записи движений из коллекции движений документа, а у тебя набор записей "независимый" (не в составе коллекции двидений, а созданный явно)
   Cyberhawk
 
6 - 30.03.18 - 11:36
Ну раз в ЖР было ОК, то все записывается. Отладчик в помощь. Может код в модуле набора записей отрабатывает и бороду прописывает.
   holls
 
7 - 30.03.18 - 11:38
(5) это было дописано уже потом - до кучи, на всяк случай.
   holls
 
8 - 30.03.18 - 11:39
(6) В отладчике все проходит без проблем. Причем сейчас точки останова стоят везде, где есть записи в этот регистр. Все отрабатывается норм. Значения ресурсов те, какие ожидаются. Но по факту набор записей не изменяется. И вообще раньше все это работало до вчерашнего дня без проблем.
   Cyberhawk
 
9 - 30.03.18 - 11:41
"по факту набор записей не изменяется" // Как проверяешь?
   holls
 
10 - 30.03.18 - 11:45
(9) в режиме предприятия после фонового задания РС без изменений. Так как сейчас точки останова стоят во всех местах кода, где есть запись в этот РС, и останова нет, то по идее набор должен быть измененным после фонового задания. Но нет.
 
 Рекламное место пустует
   Cyberhawk
 
11 - 30.03.18 - 11:48
Подписки / модуль НЗ
   Cyberhawk
 
12 - 30.03.18 - 11:49
Проверять нужно не "после фонового задания", а в другом клиентском сеансе после того, как строка выполнения кода в отладчике прошла строчку в записью НЗ (и выполнения остановлено на следующей строке)
   holls
 
13 - 30.03.18 - 11:57
(12) стою в отладчике - набор записи изменился. В другом клиентском сеансе нет
   Cyberhawk
 
14 - 30.03.18 - 12:07
Значит транзакция?
   Cyberhawk
 
15 - 30.03.18 - 12:08
Измениться-то должен не НЗ, а запись в РС
   holls
 
16 - 30.03.18 - 12:10
(14) точно! вся обработка в одной транзакции происходит. Сейчас уберу, посмотрю.
   Cyberhawk
 
17 - 30.03.18 - 12:20
Зачем убирать транзакцию? Если она откатывается, то наверное так и надо. А если внутри нее идет перезатирание одной и той же записи РС, то ее убирание не поможет.
   holls
 
18 - 30.03.18 - 12:25
(14) нет. погодите. начатьтранзакцию - это в другом месте. тут процедура очень простая: прочитать данные и изменить РС. Добавила после записи код, чтобы перечитать записи:
        МенеджерЗаписи=РегистрыСведений.ДокументыКОтправке.СоздатьМенеджерЗаписи();        МенеджерЗаписи.Документ=СтруктураДанных.Документ;
МенеджерЗаписи.Статус=СтруктураДанных.Статус;
МенеджерЗаписи.Прочитать();

отладчик показывает статус = "отправлен". В клиентском сеансе одновременно статус по этим измерениям пустой
не понимаю...
   holls
 
19 - 30.03.18 - 12:26
(18) опечатка: строка "МенеджерЗаписи.Статус=СтруктураДанных.Статус" лишняя
   Cyberhawk
 
20 - 30.03.18 - 12:26
"отладчик показывает статус = "отправлен"" // Так надо смотреть не на статус, а на непустой НЗ
   holls
 
21 - 30.03.18 - 12:34
(20) извини, не понимаю, что значит "непустой" НЗ.

скрин отладчика: https://www.dropbox.com/s/ufkp3ycdpzhgq0g/Отладчик.png?dl=0
скрин клиентского сеанса на точке останова тут: https://www.dropbox.com/s/cp0c5j1u35hak0p/Клиент.png?dl=0
   holls
 
22 - 30.03.18 - 12:36
(21) измерения немного другие в теме указала - для упрощения, чтобы много не писать. В скринах исходный код.
   Cyberhawk
 
23 - 30.03.18 - 12:42
С такими скринами Я пас
   holls
 
24 - 30.03.18 - 12:42
(23) в смысле? что не так?
   holls
 
25 - 30.03.18 - 12:50
(23) просто показала, что в отладчике набор записи (три измерения) соответствует просмотрю на клиенте. что отладчик показывает одно значение ресурса, а на клиенте иное.
   holls
 
26 - 30.03.18 - 14:22
Проблема с правами была: добавила запись РС для базовых прав и все заработало. Фоновое задание вызывается без пользователя. Все перестало работать после ввода пользователей, у которых нет прав на запись РС.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует