Имя: Пароль:
1C
1С v8
Блокировка данных при проведении документа "Отчет о розничных продажах"
0 din107
 
08.05.19
10:15
ДОБРОЕ ВРЕМЯ СУТОК!

Есть база данных "1С: Бухгалтерия 3.0 КОРП" (3.0.70.41), платформа 1С:Предприятие 8.3 (8.3.13.1513) 64-бит, почти типовая (добавлено несколько реквизитов в документ "Перемещение товаров").

При проведении документов "Отчет о розничных продажах" (ни каждый раз, а произвольно, закономерность отловить не получается) выскакивает ошибка:
"Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.".

Что самое интересное, программа указывает блокировку под моим пользователем и моим сеансом.
Проверил, нигде данный документ не открыт. База серверная.

Полез в код: есть функция общего модуля УчетНДСБП.ПолучитьОстаткиПартийНДС

В ней следующее:

происходит блокировка регистра накопления НДСПоПриобретеннымЦенностям:

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

А затем выполняется запрос:

        Запрос.Текст =
        "ВЫБРАТЬ
        |    СчетаУчета.СчетУчета КАК СчетУчета,
        |    СчетаУчета.ВестиСуммовойУчетПоСкладам КАК ВестиСуммовойУчетПоСкладам
        |ПОМЕСТИТЬ СчетаУчета
        |ИЗ
        |    &СчетаУчета КАК СчетаУчета
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    СчетУчета
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ТаблицаСписанныеТоварыБух.СчетУчета КАК СчетУчета,
        |    ТаблицаСписанныеТоварыБух.Номенклатура КАК Номенклатура,
        |    ТаблицаСписанныеТоварыБух.Склад КАК Склад,
        |    ТаблицаСписанныеТоварыБух.Партия КАК Партия
        |ПОМЕСТИТЬ ТаблицаСписанныеТоварыБух
        |ИЗ
        |    &ТаблицаСписанныеТоварыБух КАК ТаблицаСписанныеТоварыБух
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    СчетУчета
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    &Организация КАК Организация,
        |    ТаблицаСписанныеТоварыБух.СчетУчета КАК СчетУчета,
        |    ТаблицаСписанныеТоварыБух.Номенклатура КАК Номенклатура,
        |    ВЫБОР
        |        КОГДА СчетаУчета.ВестиСуммовойУчетПоСкладам
        |            ТОГДА ТаблицаСписанныеТоварыБух.Склад
        |        ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
        |    КОНЕЦ КАК Склад,
        |    ТаблицаСписанныеТоварыБух.Партия КАК Партия
        |ПОМЕСТИТЬ ТаблицаСписанныхТоваров
        |ИЗ
        |    ТаблицаСписанныеТоварыБух КАК ТаблицаСписанныеТоварыБух
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный
        |        ПО ТаблицаСписанныеТоварыБух.СчетУчета = Хозрасчетный.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ СчетаУчета КАК СчетаУчета
        |        ПО ТаблицаСписанныеТоварыБух.СчетУчета = СчетаУчета.СчетУчета
        |ГДЕ
        |    НЕ ЕСТЬNULL(Хозрасчетный.Забалансовый, ИСТИНА)
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Организация,
        |    СчетУчета,
        |    Номенклатура,
        |    Склад,
        |    Партия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    НДСПоПриобретеннымЦенностямОстатки.СчетУчета КАК СчетУчета,
        |    НДСПоПриобретеннымЦенностямОстатки.Номенклатура КАК Номенклатура,
        |    НДСПоПриобретеннымЦенностямОстатки.Склад КАК Склад,
        |    НДСПоПриобретеннымЦенностямОстатки.Партия КАК Партия,
        |    НДСПоПриобретеннымЦенностямОстатки.СчетФактура КАК СчетФактура,
        |    НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
        |    НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
        |    НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
        |    НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
        |    ВЫБОР
        |        КОГДА НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток > 0
        |            ТОГДА ИСТИНА
        |        ИНАЧЕ ЛОЖЬ
        |    КОНЕЦ КАК ЕстьКоличество,
        |    НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
        |    НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
        |    НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС,
        |    ЕСТЬNULL(РеквизитыДокументаСчетФактура.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСФ,
        |    ЕСТЬNULL(РеквизитыДокументаПартии.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаПартии,
        |    ВЫБОР
        |        КОГДА ЕСТЬNULL(РеквизитыДокументаСчетФактура.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) < ДАТАВРЕМЯ(2016, 7, 1)
        |            ТОГДА ИСТИНА
        |        ИНАЧЕ ЕСТЬNULL(СвойстваНоменклатуры.СырьевойТовар, ЛОЖЬ)
        |    КОНЕЦ КАК БлокироватьДоПодтвержденияСтавки0
        |ИЗ
        |    РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(
        |            &МоментСписания,
        |            (Организация, СчетУчета, Номенклатура, Склад, Партия) В
        |                (ВЫБРАТЬ
        |                    ТаблицаСписанныхТоваров.Организация,
        |                    ТаблицаСписанныхТоваров.СчетУчета,
        |                    ТаблицаСписанныхТоваров.Номенклатура,
        |                    ТаблицаСписанныхТоваров.Склад,
        |                    ТаблицаСписанныхТоваров.Партия
        |                ИЗ
        |                    ТаблицаСписанныхТоваров)) КАК НДСПоПриобретеннымЦенностямОстатки
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК РеквизитыДокументаПартии
        |        ПО (РеквизитыДокументаПартии.Организация = &Организация)
        |            И НДСПоПриобретеннымЦенностямОстатки.Партия = РеквизитыДокументаПартии.Документ
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК РеквизитыДокументаСчетФактура
        |        ПО (РеквизитыДокументаСчетФактура.Организация = &Организация)
        |            И НДСПоПриобретеннымЦенностямОстатки.СчетФактура = РеквизитыДокументаСчетФактура.Документ
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
        |            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторТНВЭД КАК СвойстваНоменклатуры
        |            ПО СправочникНоменклатура.КодТНВЭД = СвойстваНоменклатуры.Ссылка
        |        ПО НДСПоПриобретеннымЦенностямОстатки.Номенклатура = СправочникНоменклатура.Ссылка
        |ГДЕ
        |    НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток >= 0";
    
    ТаблицаРезультат = Запрос.Выполнить().Выгрузить();

Вот при выполнении запроса и возникает вышеописанная ошибка.
Что с этим можно сделать?

КЭШ уже чистил как серверный так и локальный.
1 Timon1405
 
08.05.19
10:22
(0) ТИИ делали?
2 din107
 
08.05.19
10:24
(1) ТИИ делать в данный момент не представляется возможным, объем базы данных больше 400 Гб
3 Cyberhawk
 
08.05.19
10:24
8.3.13.1513 весьма багнутая, обнови от греха подальше, даже если дело в сабже и не в ней
4 din107
 
08.05.19
10:27
(3) Спасибо за совет, как раз в планах на этой неделе обновление на 8.3.14
5 din107
 
08.05.19
19:32
(3) Обновление платформы до релиза 8.3.13.1644 результата не дало.