Имя: Пароль:
1C
1С v8
Ошибка: Попытка вставки неуникального значения в уникальный индекс
,
0 wms
 
29.08.16
11:35
УПП 1.3Платформа 1С:Предприятие 8.3 (8.3.6.2449).
В регистре бухгалтерии есть записи с удаленным регистратором.
При удалении выдает ошибку:
{Форма.Форма.Форма(48)}: Ошибка при вызове метода контекста (Записать)
    НаборЗаписей.Записать();  
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft OLE DB Provider for SQL Server: Cannot insert duplicate key row in object 'dbo._AccRgAT31329' with unique index '_AccRg31329_ByPeriod_TRRRRRRN'. The duplicate key value is (Dec  1 4014 12:00AM, 0xa25af40ed3a15b76458310d45ac671b1, 0x846c2c768a52126b11e473c83c47a59e, 0x08, 0x0000007d, 0x85bd2c768a52126b11e2a1afd2cf0954, 0x08, 0x000000ae, 0x8b0b2c768a52126b11e49ca4d4321747, <NULL>, <NULL>, <NULL>, <NULL>, 0).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1
1 wms
 
29.08.16
11:36
//регистратор удален =<Объект не найден> (447:af4bac162d788cd811e665fc918e31d3)
    //1.записи перебирает и сообщает:
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(докРег);
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
        //    Запись.регистратор=ДругойДок; //-на другой регистратор не получается записать
        Сообщить("Регистратор="+Запись.Регистратор+"  Сумма="+Строка(Запись.сумма));
    КонецЦикла;
    //НаборЗаписей.Записать(); //-Изменить и записать не дает, вылетает с ошибкой
    
    //2.Удалить все записи с отбором по данному регистратору не дает, вылетает с ошибкой:
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(докРег);
    НаборЗаписей.Записать();
2 wms
 
29.08.16
11:36
Как удалить?
3 Злопчинский
 
29.08.16
11:37
срочно бросай бокс!
4 ale-sarin
 
29.08.16
11:37
создать регистратор с этим УИДом. Удалить типовым инструментом.
5 wms
 
29.08.16
11:47
(4) была такая мысль. так еще не делал. Как? щас буду рыть
6 wms
 
29.08.16
12:05
гуид исправил, но менять уже как бы нормальный док не дает- таже ошибка Попытка вставки неуникального значения в уникальный индекс
7 yukon
 
29.08.16
14:21
(1)
1. Установить монопольный режим
2. Выключить текущие итоги и итоги
3. Заменить/удалить/добавить нужное
4. Включить итоги и текущие итоги
5. Снять монопольный режим
8 Defender aka LINN
 
29.08.16
14:35
(4) А почему просто не удалить этот набор записей?
9 vtolga
 
29.08.16
14:54
(7) +100
10 wms
 
29.08.16
15:20
(8) не дает удалить ни документ операцию ни записи с отбором по регистратору:
  НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(докРег);
    НаборЗаписей.Записать();
11 wms
 
29.08.16
15:22
(7)попробую на копии. но вряд ли поможет.там суть чтобы как то во всех в т.ч. виртуальных регистрах произошел пересчет и удалились индексы.
а так удалить может и даст, а в виртуальных таблицах итоги останутся.
Я запросы делал в одних таблицах пусто, а в других есть остатки.Итоги пересчитывать?, но база огромная
12 wms
 
30.08.16
09:39
(7) на копии запустил этот код. уже минут 20 висит:

    УстановитьМонопольныйРежим(истина);
    РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(ложь);
    Попытка
        НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(док1);
        НаборЗаписей.Записать();  
    Исключение
            Сообщить("ошибка:"+ОписаниеОшибки());
    КонецПопытки;     
    РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(истина);
13 wms
 
30.08.16
09:42
вау, чудо отработало и проводки удалились. щас буду второй док делать.
Все правильно сделал? Итоги там не полетят? буду щас проверять.Спасибо
14 wms
 
30.08.16
09:44
вот это долго отрабатывает:
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(истина);
15 yukon
 
30.08.16
10:10
(14) Это нормально.

"При установке признака использования итогов производится пересчет только тех итогов, которые зависят от движений, сделанных в момент, когда итоги были выключены."
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс