0
St17
23.12.14
✎
11:30
|
Добрый день.
1с 8.2 Ут Измененная.
Модуль Объекта - Обработка проведения. Документ возврат товара поставщику.
Переделывал на днях один из алгоритмов распределения затрат.
Алгоритм был основан на получении стоимости по запросу.
Причина переделки заключалась в расхождении получения себестоимости стандартным алгоритмом и самописным.
Решил взять данные из уже записанных данных в движения.
По прошествии некоторого времени вижу сбой. Отсутствуют движения по партиям и соответственно затрат а все остальные имеются.
Провел небольшой анализ. Данная ошибка возникает редко, под разными пользователями. Пере проведя документ все становится на свои места.
Подозреваю что ошибка в написанном мною коде, но понять не могу где, помогите разобраться.
Кусок кода из модуля.
ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок);
Движения.Записать();
Движения.ПартииТоваровНаСкладах.Прочитать();
ТЗПартии=Движения.ПартииТоваровНаСкладах.Выгрузить();
Движения.Затраты.Записывать = Истина;
Движения.Затраты.Очистить();
Для Каждого Стр Из Товары Цикл
Стоимость=0;
СтрокаНайденая=ТЗПартии.Найти(Стр.Номенклатура,"Номенклатура");
Если СтрокаНайденая=Неопределено Тогда
Стоимость=0;
Иначе
Стоимость=СтрокаНайденая.Стоимость;
КонецЕсли;
Если УчитыватьНДС Тогда
Разн=Стр.Сумма-Стоимость-Стр.СуммаНДС;
Иначе
Разн=Стр.Сумма-Стоимость;
КонецЕсли;
Если Разн<>0 Тогда
Движение = Движения.Затраты.Добавить();
Движение.Активность=Истина;
Движение.Период = Дата;
Движение.Подразделение = Подразделение;
....
Движение.Сумма = -Разн;
КонецЕсли;
КонецЦикла;
Спасибо за внимание!
|
|