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


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



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

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

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