Имя: Пароль:
1C
1С v8
Нет движений товаров по партиям
,
0 St17
 
23.12.14
11:30
Добрый день.
1с 8.2 Ут Измененная.

Модуль Объекта - Обработка проведения. Документ возврат товара поставщику.

Переделывал на днях один из алгоритмов распределения затрат.
Алгоритм был основан на получении стоимости по запросу.
Причина переделки заключалась в расхождении получения себестоимости стандартным алгоритмом и самописным.

Решил взять данные из уже записанных данных в движения.

По прошествии некоторого времени вижу сбой. Отсутствуют движения по партиям и соответственно затрат а все остальные имеются.

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

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

Кусок кода из модуля.


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

Спасибо за внимание!