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