Исправление субконто с типом значения NULL + Лечение "Попытка вставки неуникального значения в уникальный индекс: Microsoft SQL Server"

11.04.24

Задачи пользователя - Корректировка данных

Исправляем 2 проблемы: 1) Проводки с типом субконто NULL, возникающие при добавлении нового субконто. 2) Ошибку: "Попытка вставки неуникального значения в уникальный индекс: Microsoft SQL Server"

Хочу поделиться решением 2х проблем, которые иногда возникают при добавлении нового субконто в случае наличия движений по этому счету.

Возникающие проблемы:

1) В оборотно-сальдовой ведомости с группировками по субконто по счету строки не сворачиваются.

2) При изменении документа выводит ошибку "Попытка вставки неуникального значения в уникальный индекс ..."

Я столкнулся одновременно и с той и с другой проблемой.

Причины:

Изначально, у счета был 1 субконто. Были введены по нему остатки. Позже добавляют 2-е субконто и создают последующие документы уже с 2-мя субконто. Возникает ситуация, когда у 1-го документа ввода остатков у субконто2 тип = NULL, а у всех последующих документов тип уже определен. 

 


 

В моём случае это было сделано обработкой переноса данных (это делал не я) и получилось так, что в документе было 2 записи, 1-я запись с типом субконто2 = NULL, а 2-я запись с типом субконто2 = "Основное средство".

Из за этого, помимо того, что в оборотно-сальдовой ведомости строки не сворачиваются по субконто, так еще при попытке изменить первоначальный "косячный" документ выводится ошибка:

Ошибка при вызове метода контекста (Записать)
по причине:
Нарушено условие уникальности данных.

Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._AccRgAT2625" с уникальным индексом "_AccRgAT2625_1". Повторяющееся значение ключа: (0, 0xa25af40ed3a15b76458310d45ac671b1, 4014-12-01 00:00:00, 0xb56400148535cac211dcb37a96865fd8, 0x08, 0x00000036, 0xb0341f53c68854524eac29f387baa355, <NULL>, <NULL>, <NULL>, <NULL>, 0x00000000000000000000000000000000, 0).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1

 


 

Для решения проблемы с неуникальным индексом многие предлагают исправлять это в таблицах на SQL сервере, выгружать / загружать в файловую и выполнять различные тестирования и исправления.

Я нашел, на мой взгяд более логичное и простое решение:

Добавляю субконто3, обновляю базу, удаляю субконто3, обновляю базу и вуаля, ошибка исчезает.

Дело в том, что индексы таблиц в базе данных создаются неявным образом при создании объектов конфигурации, а мы добавлением субконто3 как раз пересоздали индексы.

Что касается исправления проводок с типом субконто NULL:

Изначально вам нужно выполнить запрос в консоли наподобие:

ВЫБРАТЬ  
    ХозрасчетныйОборотыДтКт.Период КАК Период,
    ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
    ХозрасчетныйОборотыДтКт.СчетДт КАК СчетДт,
    ХозрасчетныйОборотыДтКт.СчетКт КАК СчетКт,
    ТИПЗНАЧЕНИЯ(ХозрасчетныйОборотыДтКт.СубконтоДт1) КАК Тип_СубконтоДт1,
    ТИПЗНАЧЕНИЯ(ХозрасчетныйОборотыДтКт.СубконтоДт2) КАК Тип_СубконтоДт2,    
    ТИПЗНАЧЕНИЯ(ХозрасчетныйОборотыДтКт.СубконтоДт3) КАК Тип_СубконтоДт3,
    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК СубконтоДт1,        
    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК СубконтоДт2,
    ХозрасчетныйОборотыДтКт.СубконтоДт3.Код КАК СубконтоДт3,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(, , Регистратор, , , , , ) КАК ХозрасчетныйОборотыДтКт
ГДЕ 
    ХозрасчетныйОборотыДтКт.Организация = &Организация
    И ХозрасчетныйОборотыДтКт.СчетДт = &СчетДт
    // И ХозрасчетныйОборотыДтКт.Регистратор = &Регистратор
    // И ХозрасчетныйОборотыДтКт.СубконтоДт1 = &Контрагент
    // И ХозрасчетныйОборотыДтКт.СубконтоДт2 = &ОС

Это был запрос по Дт (у меня были проблемы с Дт), если нужно Кт, тогда аналогичный запрос нужно выполнить по Кт (поменять с Дт на Кт в тексте запроса).

В результате вы сразу увидите, по какому типу субконто у вас "расходятся" аналитики.
Их то и нужно будет править, открыв период редактирования и написав примерно такую обработку:
 

    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(СсылкаНаОперацию);
    Набор.Прочитать();
    Для Каждого Запись Из Набор Цикл
        БухгалтерскийУчет.УстановитьСубконто(Запись.СчетДт, Запись.СубконтоДт, "ОсновныеСредства", Справочники.ОсновныеСредства.ПустаяСсылка());
    КонецЦикла;
    Набор.Записать();

Где СсылкаНаОперацию - это реквизит на форме (ссылка на "косячный" документ, который мы исправляем).

Причем, в случае программного изменения операции, так называемая "граница последовательности" не слетит, и все закрытия месяцев останутся выполненными, если будете редактировать документ вручную - слетит.


Конфигурация: Бухгалтерия предприятия 3.0 (релиз: 3.0.147.30)

Платформа: 1С:Предприятие 8.3 (8.3.23.1865) 

Попытка вставки неуникального значения в уникальный индекс Microsoft SQL Server NULL субконто субконто1 субконто2 субконто3 обработка исправления бухгалтерия предприятия

См. также

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

Корректировка данных Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    2758    30    15    

36

Тестирование и исправление ключей аналитики ERP, УТ11, КА

Корректировка данных Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    107611    637    173    

680

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    28328    83    146    

61

Исправление ошибки закрытия месяца "Обнаружены ненулевые остатки по суммам при нулевом остатке по количеству в регистре себестоимости по организации". УТ 11.4,УТ 11.5, КА 2.4,КА 2.5, ERP 2.4, ERP 2.5, КА 2 Казахстан, Управление торговлей 3 для Казахстана

Закрытие периода Корректировка данных Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

2400 руб.

27.10.2021    22669    303    35    

75

Исправление ошибок по НДФЛ и взаиморасчетам с сотрудниками в 1С:Бухгалтерия 3.0

Корректировка данных Зарплата Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.

3600 руб.

09.02.2024    808    4    4    

7

Заполнение документа "Корректировка регистров" произвольными данными

Закрытие периода Корректировка данных Платформа 1С v8.3 Система компоновки данных 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    50437    171    29    

122
Оставьте свое сообщение