|
При проведении документа удаляет записи в регистре накопления | ☑ | ||
---|---|---|---|---|
0
ze-dev
18.12.20
✎
21:23
|
Господа специалисты, добрый вечер!
Подскажите, пожалуйста, такая ситуация: Есть документ "ЭтотСамыйДокумент", который ИЗНАЧАЛЬНО (по задумке нас, разработчиков) не проводит и не проводил напрямую от СЕБЯ НИКАКИЕ движения в регистр накопления "НаименованиеМоегоРегистра". Этот регистр накопления прописан в этом ЭтомСамомДокументе, как регистр его движения. Реальные же движения в этом регистре делаются обработкой конфигурации "НеИмеетЗначения" с регистратором "ЭтотСамыйДокумент.Ссылка". Поэтому в функции "ОбработкаПроведения" "ЭтогоСамогоДокумента" прописан такой код: 1) ДвижениеВремени = Движения.НаименованиеМоегоРегистра; 2) ДвижениеВремени.Отбор.Регистратор.Установить(ТекущегоДокументаСсылка); // это ссылка "ЭтотСамыйДокумент.Ссылка", там в коде просто ЭтотОбъект.Ссылка (или просто Ссылка ставил, это одно и то же) 3) ДвижениеВремени.Прочитать(); 4) ДвижениеВремени.Записать(Истина); Теперь далее: ∟ строчка 3: 3) ДвижениеВремени.Прочитать(); ∟ читает и собирает все движения по этому регистратору "ЭтотСамыйДокумент.Ссылка" из регистра накопления "НаименованиеМоегоРегистра" Отладчиком смотрел - были записи из регистра (их может быть больше одной, и по 4 есть, это в порядке вещей) ∟ строчка 4: 4) ДвижениеВремени.Записать(Истина); [Истина - запись с замещением] ∟ стирает эти записи в регистре (по этому регистратору "ТекущегоДокументаСсылка" их больше нет. ) Парни, как так?! (Сегодня около 16-30 по МСК у нас было обновление платформы. А вдруг это ..? Да не, бред какой-то ..) |
|||
1
ze-dev
18.12.20
✎
21:28
|
Хочу добавить сразу (пропустил изначально этот момент):
∟ Конфигурация самопереписанная, снятая с поддержки нами уже полдюжины лет ). ∟ Обычные формы, 8.3. ∟ Платформа обновилась 18.12.20 примерно в 16-30 по МСК. ∟ ну и началось.. |
|||
2
vde69
18.12.20
✎
22:14
|
у меня вообще нет модуля проведения ни в одном документе. Все идет через подписки "при записи", так как по некоторым регистрам нужно движение не проведенных документов
|
|||
3
vde69
18.12.20
✎
22:17
|
вообще как вариант - был не установлен режим совместимости и после обновления платформы поменялось что-то...
Вы хоть перед сменой платформы тестируете хоть чего? |
|||
4
ze-dev
18.12.20
✎
22:39
|
(3) Конечно этот механизм тестировался и работал с июля 19г.
Где, у чего, и для чего не был установлен механизм совместимости? Чего с чем? |
|||
5
Ненавижу 1С
гуру
18.12.20
✎
22:46
|
Это обновление платформы. Поменялось поведение
|
|||
6
Cyberhawk
18.12.20
✎
22:46
|
Покажи свойства документа в метаданных
|
|||
7
Ненавижу 1С
гуру
18.12.20
✎
22:48
|
Какая платформа стояла? Какая стала?
Меняли в конфигурации режим совместимости? |
|||
8
ze-dev
18.12.20
✎
22:49
|
Там было безусловное выполнение этого кода с июля 19г.
Возможно предположить, что он не работал. Но - я тогда проверял - все записи регистра (по этому док-ту) оставались после проведения док-та. (Еще раз - там безусловное перезапись, т.е. не было никаких Если перед кодом) Т.Е. в этом регистре могли быть записи по этому регистратору "Этот.Док.Ссылка", а могли и не быть вовсе. Я сам тестировал на док-ах, по которым были движения. Все работало. До сегодняшнего вечера. Чтобы кто-то из коллег случайно удалил кусок кода - так последнее изменение док-та в начале декабря. |
|||
9
Ненавижу 1С
гуру
18.12.20
✎
22:49
|
ДвижениеВремени = Движения.НаименованиеМоегоРегистра;
ДвижениеВремени.Отбор.Регистратор.Установить(ТекущегоДокументаСсылка); Так делать полный бред |
|||
10
Ненавижу 1С
гуру
18.12.20
✎
22:50
|
(8) хватит истерить и начинай отвечать на вопросы
|
|||
11
ze-dev
18.12.20
✎
22:51
|
(7) Еще не знаю, какая стояла, и какая стала.
Про режим совместимости тоже еще не в курсе. Смогу выяснить наверно только утром в сб., 19.12 |
|||
12
Ненавижу 1С
гуру
18.12.20
✎
22:52
|
(11) вы так всегда обновляете? Не зная что на что?
|
|||
13
ze-dev
18.12.20
✎
22:53
|
(9) Почему? Что не так? Только пж без эмоций, я сам взведен сегодня.
Что можно исправить ? |
|||
14
Ненавижу 1С
гуру
18.12.20
✎
22:54
|
(13) потому что это и так набор записей с этим отбором
|
|||
15
ze-dev
18.12.20
✎
22:58
|
(12) Не могу точно сказать, как именно обновляем, это не я ). (считается, что мой уровень еще недостаточен, чтобы я в этом мог участвовать)
Обычно мне говорят рук-ль отдела и др. товарищи, что , вот пришло обновление платформы, и стало. Кстати , с обновлением приехала нединамика в картинках, и всех пользователей пришлось завершить. |
|||
16
Ненавижу 1С
гуру
18.12.20
✎
23:00
|
Уберите вообще обработку проведения. Или закомментируйте ее
Поставьте у документа в свойствах удаление движений - не удалять автоматически |
|||
17
ze-dev
18.12.20
✎
23:01
|
(14) Ну правльно же:
∟ мы отобрали с регистратором, и они есть в ДвижениеВремени.Прочитать(); (говорю ж , отладчиком прошел) ∟ теперь записываем обратно ДвижениеВремени.Записать(ИСТИНА) - ВСё! нет их больше в регистре. Ну как так |
|||
18
Ненавижу 1С
гуру
18.12.20
✎
23:03
|
Или даже: Удалять автоматически при отмене проведения
|
|||
19
ze-dev
18.12.20
✎
23:06
|
(16) [удаление движений - не удалять автоматически]: Нельзя - в нем с десяток движений в другие регистры, которые делаются непосредственно именно этим док-том, и их механизм прописан вручную, он нестандартен. В отмене проведения - также все прописано вручную.[Поставьте у документа в свойствах удаление движений - не удалять автоматически] - этого точно нельзя сделать
|
|||
20
Ненавижу 1С
гуру
18.12.20
✎
23:06
|
Какой режим сейчас стоит?
|
|||
21
ze-dev
18.12.20
✎
23:08
|
(20) Не знаю честно. Где посмотреть?
|
|||
22
Ненавижу 1С
гуру
18.12.20
✎
23:12
|
||||
23
ze-dev
18.12.20
✎
23:15
|
(16) Единственно близко подходящим я вижу пока только это: [Поставьте у документа в свойствах удаление движений - не удалять автоматически]. Это из наиболее очевидного. Но тестить буду уже завтра. Спасибо за участие! Заходи завтра )).
|
|||
24
ze-dev
18.12.20
✎
23:21
|
(22) Да, этот режим удаления движений и стоит (Не удалять автоматически)
Я имел в виду [Меняли в конфигурации режим совметсимотми?] - это же должно быть что-то другое ? |
|||
25
Ненавижу 1С
гуру
18.12.20
✎
23:36
|
Вариант убрать прямой метод:
Набор.записать(истина); Поставить косвенно: Набор.записывать=истина; |
|||
26
RomanYS
18.12.20
✎
23:38
|
(0) посмотри значение ДвижениеВремени.Записывать
после выполнения четвертой строки. |
|||
27
ze-dev
20.12.20
✎
13:17
|
Парни, спасибо за участие!
Прошел отладчиком пошагово всю процедуру ОбработкаПроведения() и нашел проблему: позже была введена функция дкОбработкаПроведения(), которая очищала вообще все движения документа, а уже после нее документ снова их делал. Это работает для тех регистров, которые двигает непосредственно сам документ. Движения же моего регистра двигаются внешней обработкой с Регистратором "ЭтотСамыйДокумент.Ссылка". Поэтому он благополучно их очищал, но не восстанавливал. Решил следующим образом: Создал 2 блока кода: 1й - бэкап записей регистра, 2й - просто переливаю бэкап в ДвижениеВремени уже после очищения движений регистров. Все корректно работает. // Должен идити ДО дкОбработкаПроведения() - там ВСЕ Движения очищаются, если Не ЭтоНовый() ДвижениеВремени_BACKUP = РегистрыНакопления.НаименованиеМоегоРегистра.СоздатьНаборЗаписей(); ДвижениеВремени_BACKUP.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка); ДвижениеВремени_BACKUP.Прочитать(); // ГОРИЗОНТ СОБЫТИЙ для Движения - в Не ЭтоНовый() очищаются безусловно (в т.ч. мой регистр) Если НЕ дкОбработкаПроведения(ЭтотОбъект, Отказ, Режим) Тогда Возврат; КонецЕсли; // Должен идти ПОСЛЕ дкОбработкаПроведения() ДвижениеВремени = Движения.НаименованиеМоегоРегистра; ДвижениеВремени = ДвижениеВремени_BACKUP; ДвижениеВремени.Записывать = Истина; ДвижениеВремени.Записать(Истина); Может быть, кому-нибудь еще пригодится решение из данной ситуации. Всем добра! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |