Имя: Пароль:
1C
1С v8
Ошибка при закрытии месяца в УТ 11.1.10.86
0 Поpyчик-4
 
16.03.15
11:10
Вот такая ошибка появляется при попытке закрыть месяц

{ОбщийМодуль.ПартионныйУчет.Модуль(8502)}: Ошибка при вызове метода контекста (Заблокировать)
            Движения.Очистить();
            Движения.Отбор.Регистратор.Установить(Регистратор);
            
            НачатьТранзакцию();
            Блокировка.Заблокировать();
по причине:
Неверный тип значения: РегистрНакопления.ПартииПрочихРасходов.НаборЗаписей.Регистратор

Ошибка появляется, если программа пытается установить отбор в качестве регистратора СписаниеНедостачТоваров, который отсутствует в списке регистраторов регистра ПартииПрочихРасходов.

Кто-нибудь сталкивался? Куда можно посмотреть? Уже неделю отладчик мучаю.
1 Поpyчик-4
 
16.03.15
13:05
Если распровести списания недостач, то процедура проходит без ошибок.
2 bolero
 
16.03.15
13:19
(1) в процедуру обновления, видимо, забыли вписать исправление регистра
3 Поpyчик-4
 
16.03.15
15:55
(2) ХЗ.
Если точнее, обработка вылетает с исключением здесь (модуль ПартионныйУчет)

// Этап 64: расчет приходов партий прочих расходов
Процедура РассчитатьПриходыПартийПрочихРасходов(НачалоПериода, ОкончаниеПериода)
    // ФАЗА 60: выборка данных для приходов партий прочих расходов
    ДанныеДляПартийПрочихРасходов = ДанныеДляПартийПрочихРасходов(НачалоПериода, ОкончаниеПериода);
    // ФАЗА 62: запись книги продаж
    ЗаписатьРасчетныеПартии(РегистрыНакопления.ПартииПрочихРасходов, ДанныеДляПартийПрочихРасходов, Неопределено);
    ДанныеДляПартийПрочихРасходов = Неопределено;
КонецПроцедуры

По каким-то причинам в ДанныеДляПартийПрочихРасходов попадают Списания недостач товаров
4 ssh2006
 
16.03.15
17:53
(3) перемудрили...
5 Поpyчик-4
 
17.03.15
07:44
Мы посовещались и я решил временно в процедуру ЗаписатьРасчетныеПартии() воткнуть кусок, который проверяет тип документа партии на вхождение в список регистраторов для регистра накопления.

    Счетчик = 0;
    Пока Счетчик <= РасчетныеПартии.Количество() - 1 Цикл
        РасчетнаяПартия = РасчетныеПартии[Счетчик];
        Регистратор = РасчетнаяПартия.Регистратор;
        Если НЕ Движения.Отбор.Регистратор.ТипЗначения.СодержитТип(ТипЗнч(Регистратор)) Тогда
            Индекс = РасчетныеПартии.Индекс(РасчетнаяПартия);
            РасчетныеПартии.Удалить(РасчетнаяПартия);
        Иначе
            Счетчик = Счетчик + 1;
        КонецЕсли;
    КонецЦикла;
    Регистратор = Неопределено;

Всё это лажа, как сказал знающий человек, чисто чтобы хоть что-то заработало.
6 mzelensky
 
17.03.15
08:28
подпишусь