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

А зачем в БСП записывают версии объектов не отличающиеся от предыдущих?

А зачем в БСП записывают версии объектов не отличающиеся от предыдущих?
Я
   RomaH
 
10.07.19 - 14:06
Собственно - в чем тайна?
нажал 10 раз на записать - получил 10 версий одинаковых друг за другом
 
 
   scanduta
 
1 - 10.07.19 - 14:08
Сейчас позвоню Нуралиеву - узнаю
   Aleksey
 
2 - 10.07.19 - 14:09
Потому что 1С - ленивые жопы.
А так Долго. найти и считать старую версию, сравнить по реквизитно и принять решение...
   RomaH
 
3 - 10.07.19 - 14:14
так в чем и фишка - помню лазал в код года 4 назад - четко помню, что проверялось на совпадение и дубли не создавали
а сейчас создают, при этом проверка на дубль есть (и проходит)
просто не используется перед созданием новой записи

    Если ЗаписьОбычнойВерсии Тогда
        ИзмененаПроведенность = Ложь;
        Если СведенияОВерсииОбъекта.Свойство("ИзмененаПроведенность") Тогда
            ИзмененаПроведенность = СведенияОВерсииОбъекта.ИзмененаПроведенность;
        КонецЕсли;
        
        // Запись данных предыдущей версии.

        Если Не Объект.ЭтоНовый() И (ИзмененаПроведенность И СведенияОВерсииОбъекта.НомерВерсии > 1 Или ВерсияОтличаетсяОтРанееЗаписанной(Объект)) Тогда
            // Если версионирование включено после создания объекта, создаем предыдущую запись о версии.

            Если СведенияОВерсииОбъекта.НомерВерсии = 1 Тогда
                Если ОбъектВерсионируется(Объект.Ссылка, Ложь) Тогда
                    ПараметрыВерсии = Новый Структура;
                    ПараметрыВерсии.Вставить("НомерВерсии", 1);
                    ПараметрыВерсии.Вставить("Комментарий", НСтр("ru = 'Версия создана по уже имеющемуся объекту'"));
                    СоздатьВерсиюОбъекта(Объект.Ссылка.ПолучитьОбъект(), ПараметрыВерсии);
                    СведенияОВерсииОбъекта.НомерВерсии = 2;
                КонецЕсли;
            КонецЕсли;
            
            // Сохраняем предыдущую версию объекта.

            МенеджерЗаписи = РегистрыСведений.ВерсииОбъектов.СоздатьМенеджерЗаписи();
            МенеджерЗаписи.Объект = Объект.Ссылка;
            МенеджерЗаписи.НомерВерсии = НомерПредыдущейВерсии(Объект.Ссылка, СведенияОВерсииОбъекта.НомерВерсии);
            МенеджерЗаписи.Прочитать();
            Если МенеджерЗаписи.Выбран() И Не МенеджерЗаписи.ЕстьДанныеВерсии Тогда
                МенеджерЗаписи.ВерсияОбъекта = Новый ХранилищеЗначения(ДанныеДляХранения(Объект.Ссылка), Новый СжатиеДанных(9));
                МенеджерЗаписи.Записать();
            КонецЕсли;
        КонецЕсли;
        
        СсылкаНаОбъект = Объект.Ссылка;;
        Если СсылкаНаОбъект.Пустая() Тогда
            СсылкаНаОбъект = Объект.ПолучитьСсылкуНового();
            Если СсылкаНаОбъект.Пустая() Тогда
                СсылкаНаОбъект = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Объект.Ссылка).ПолучитьСсылку();
                Объект.УстановитьСсылкуНового(СсылкаНаОбъект);
            КонецЕсли;
        КонецЕсли;
        
        // Запись текущей версии без данных.

        МенеджерЗаписи = РегистрыСведений.ВерсииОбъектов.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Объект = СсылкаНаОбъект;
        МенеджерЗаписи.НомерВерсии = СведенияОВерсииОбъекта.НомерВерсии;



ВерсияОтличаетсяОтРанееЗаписанной

просто может тут где-то собака порылась - и лучше хранить с избытком, чем пропускать
   Cyberhawk
 
4 - 10.07.19 - 14:43
Так данные-то не пишутся
   shuhard
 
5 - 10.07.19 - 14:59
(0) кто-то обещал обратное ?
   RomaH
 
6 - 10.07.19 - 15:01
в менеджере?
   RomaH
 
7 - 10.07.19 - 15:02
(4) с чего ты решил? я не вижу проверки на идентичность и отчистки данных
записи в РС точно пишутся - и вроде как XML тоже каждый раз пишет
   Cyberhawk
 
8 - 10.07.19 - 15:06
(7) По коду видно, что не пишутся
   RomaH
 
9 - 10.07.19 - 15:07
(8)по какому? - ты БСП открыл - или то что тут выложено?

оно пишется
   Cyberhawk
 
10 - 10.07.19 - 15:10
(9) Из (3)
 
 Рекламное место пустует
   RomaH
 
11 - 10.07.19 - 15:11
(10) тебе всю процедуру показать?
   Cyberhawk
 
12 - 10.07.19 - 15:15
(11) Покажи, только на пастебин
   Smile 8D
 
13 - 10.07.19 - 15:20
Проверил в УТ 11.4.8 - создаются версии на каждой записи без изменения. Надеюсь, что в это все-таки заложили какой-то смысл, а не просто ошиблись :) например, можешь посмотреть кто и когда перезаписывал документ (без поиска в ЖР).
   Cyberhawk
 
14 - 10.07.19 - 15:22
(13) Версии создаются, но данные объекта не пишутся одинаковые один за другоим
   RomaH
 
15 - 10.07.19 - 15:33
(14) спасибо - вижу

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