УПП 1.3 Док: КомплектацияНоменклатуры где формируются суммы для движений по бух
Добрый день !
Помогите разобраться с документом КомплектацияНоменклатуры !
В документе ИсходнаяНоменклатура (Запчасть) разбирается на комплектующие ...
Заполнена табличная часть "Комплектующие"; Рассчитаны доли каждой комплектующей а СУММЫ - не рассчитаны ! В табличной части "Комплектующие" ДоляСтоимости заполнена, а СуммаПередачи - нет (кроме того на форме эта колонка скрыта и не используется для режима "Разборка")
Далее ... при проведении документа формируются проводки по РегистрБухгалтерии.Хозрасчетный где Стоимость (ЗапЧасти) пропорционально долям (Комплектующие.ДоляСтоимости) рассчитывается и выставляется в Сумма (проводки)
Вопрос: Где именно производится этот расчет ? То есть где именно производится это вычисление Сумма = Стоимость * Комплектующие.ДоляСтоимости
Отладчиком хожу по ОбработкеПроведения - ничего подобного не вижу !
Помогите разобраться с документом КомплектацияНоменклатуры !
В документе ИсходнаяНоменклатура (Запчасть) разбирается на комплектующие ...
Заполнена табличная часть "Комплектующие"; Рассчитаны доли каждой комплектующей а СУММЫ - не рассчитаны ! В табличной части "Комплектующие" ДоляСтоимости заполнена, а СуммаПередачи - нет (кроме того на форме эта колонка скрыта и не используется для режима "Разборка")
Далее ... при проведении документа формируются проводки по РегистрБухгалтерии.Хозрасчетный где Стоимость (ЗапЧасти) пропорционально долям (Комплектующие.ДоляСтоимости) рассчитывается и выставляется в Сумма (проводки)
Вопрос: Где именно производится этот расчет ? То есть где именно производится это вычисление Сумма = Стоимость * Комплектующие.ДоляСтоимости
Отладчиком хожу по ОбработкеПроведения - ничего подобного не вижу !
Найденные решения
Спасибо за подсказку !
УправлениеЗапасамиПартионныйУчет.СписаниеПартий() : 2977
УправлениеЗапасамиПартионныйУчет.СписаниеПартий() : 2977
Если СтрокаДереваПартий <> Неопределено Тогда
// В.Ч. ПередачаТоваров (Передача Товаров)
ЭтоДокументПередачаТоваров = Ложь;
Если ТипЗнч(СтрокаДокумента.Регистратор) = Тип("ДокументСсылка.ПередачаТоваров") Тогда
тчТовары = СтрокаДокумента.Регистратор.ПолучитьОбъект().Товары;
ЭтоДокументПередачаТоваров = Истина;
КонецЕсли;
// В.Ч. КомплектацияНоменклатуры (Комплектация Номенклатуры)
ЭтоДокументКомплектацияНоменклатуры = Ложь;
Если ТипЗнч(СтрокаДокумента.Регистратор) = Тип("ДокументСсылка.КомплектацияНоменклатуры") Тогда
тчКомплектующие = СтрокаДокумента.Регистратор.ПолучитьОбъект().Комплектующие;
ЭтоДокументКомплектацияНоменклатуры = Истина;
КонецЕсли;
Для Каждого СтрокаПартииРаспределения ИЗ СтрокаДереваПартий.Строки Цикл
// В.Ч.
вчСуммаПередачи = 0;
Если ЭтоДокументКомплектацияНоменклатуры Тогда
СтрокаТчКомплектующие = тчКомплектующие.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если СтрокаТчКомплектующие.СуммаПередачи <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
//Движение.Количество = СтрокаТчТовары.Количество;
вчСуммаПередачи = СтрокаТчКомплектующие.СуммаПередачи;
КонецЕсли;
КонецЕсли;
Если КоличествоОсталосьПогасить <= 0 Тогда
// В.Ч. Если ЭтоДокументКомплектацияНоменклатуры Тогда
Если вчСуммаПередачи = 0 Тогда
Прервать;
//Иначе
// Сообщить(СтрокаДокумента.НоменклатураНовая); // Отладка
КонецЕсли;
КонецЕсли;
СтрокаПартии = ПолучитьСтрокуОстатковПартий(СтрокаПартииРаспределения, СтруктураИзмерений, ТаблицаОстатковПартий);
//АБС ВСТАВКА 18360
// Если в партии счет учета пустой, не списывать эту партию
Если СтрокаДокумента.ОтражатьВНалоговомУчете ИЛИ СтрокаДокумента.ОтражатьВБухгалтерскомУчете Тогда
Если СокрЛП(Строка(СтрокаПартии.СчетУчета)) = "" Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
//АБС ВСТАВКА КОНЕЦ 18360
// Количество по строке больше 0
Если НЕ СтрокаПартии.Количество > 0 Тогда
// В.Ч. Если ЭтоДокументКомплектацияНоменклатуры Тогда
Если вчСуммаПередачи = 0 Тогда
Продолжить;
//Иначе
// Сообщить("Продолжить "); // Отладка
КонецЕсли;
КонецЕсли;
Если СтрокаДокумента.ОтражатьВНалоговомУчете
И СтрокаДокумента.КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.ПринятиеКУчетуОС
И СтрокаПартии.СчетУчета = ПланыСчетов.Налоговый.МатериалыВСоставеОСвНУ тогда
Продолжить;
КонецЕсли;
Если СтрокаПартии.Количество >= КоличествоОсталосьПогасить Тогда
КоэффСписания = КоличествоОсталосьПогасить/СтрокаПартии.Количество;
Иначе
КоэффСписания = 1;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.ДокументПартии) И (СтрокаПартии.ДокументОприходования = СтрокаДокумента.ДокументПартии) Тогда
КоличествоСписанноеПоДокументуПартии = КоличествоСписанноеПоДокументуПартии + Окр(СтрокаПартии.Количество * КоэффСписания,3,1);
КонецЕсли;
// Добавим новую строку
Движение = ДобавитьДвижениеВСтруктуруПараметров(ИмяРегистра, СтруктураПараметров);
// Свойства
Движение.Период = СтрокаДокумента.Период;
Движение.Регистратор = СтрокаДокумента.Регистратор;
Движение.Активность = Истина;
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
// Измерения
Движение.Номенклатура = СтрокаПартии.Номенклатура;
Движение.Организация = СтруктураПараметров.ОрганизацияУпр;
// Ресурсы
Движение.Количество = Окр(СтрокаПартии.Количество * КоэффСписания,3,1);
Движение.Стоимость = Окр(СтрокаПартии.Стоимость * КоэффСписания,2,1);
// В.Ч.
Если ЭтоДокументПередачаТоваров Тогда
СтрокаТчТовары = тчТовары.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если СтрокаТчТовары.СуммаРуб <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
Движение.Количество = СтрокаТчТовары.Количество;
Движение.Стоимость = СтрокаТчТовары.СуммаРуб;
КонецЕсли;
КонецЕсли;
// В.Ч.
Если ЭтоДокументКомплектацияНоменклатуры Тогда
// СтрокаТчКомплектующие = тчКомплектующие.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если вчСуммаПередачи <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
//Движение.Количество = СтрокаТчТовары.Количество;
Движение.Стоимость = вчСуммаПередачи; // СтрокаТчКомплектующие.СуммаПередачи;
КонецЕсли;
КонецЕсли;
// ============================================================ ========
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если РАУЗ - расчет может проводиться и в модуле регистра УчетЗатрат, так как финальная стоимость определяется только после расчета себестоимости, а движения в документе могут быть и с нулевыми суммами (в зависимости от настроек учетной политики)
Спасибо за подсказку !
УправлениеЗапасамиПартионныйУчет.СписаниеПартий() : 2977
УправлениеЗапасамиПартионныйУчет.СписаниеПартий() : 2977
Если СтрокаДереваПартий <> Неопределено Тогда
// В.Ч. ПередачаТоваров (Передача Товаров)
ЭтоДокументПередачаТоваров = Ложь;
Если ТипЗнч(СтрокаДокумента.Регистратор) = Тип("ДокументСсылка.ПередачаТоваров") Тогда
тчТовары = СтрокаДокумента.Регистратор.ПолучитьОбъект().Товары;
ЭтоДокументПередачаТоваров = Истина;
КонецЕсли;
// В.Ч. КомплектацияНоменклатуры (Комплектация Номенклатуры)
ЭтоДокументКомплектацияНоменклатуры = Ложь;
Если ТипЗнч(СтрокаДокумента.Регистратор) = Тип("ДокументСсылка.КомплектацияНоменклатуры") Тогда
тчКомплектующие = СтрокаДокумента.Регистратор.ПолучитьОбъект().Комплектующие;
ЭтоДокументКомплектацияНоменклатуры = Истина;
КонецЕсли;
Для Каждого СтрокаПартииРаспределения ИЗ СтрокаДереваПартий.Строки Цикл
// В.Ч.
вчСуммаПередачи = 0;
Если ЭтоДокументКомплектацияНоменклатуры Тогда
СтрокаТчКомплектующие = тчКомплектующие.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если СтрокаТчКомплектующие.СуммаПередачи <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
//Движение.Количество = СтрокаТчТовары.Количество;
вчСуммаПередачи = СтрокаТчКомплектующие.СуммаПередачи;
КонецЕсли;
КонецЕсли;
Если КоличествоОсталосьПогасить <= 0 Тогда
// В.Ч. Если ЭтоДокументКомплектацияНоменклатуры Тогда
Если вчСуммаПередачи = 0 Тогда
Прервать;
//Иначе
// Сообщить(СтрокаДокумента.НоменклатураНовая); // Отладка
КонецЕсли;
КонецЕсли;
СтрокаПартии = ПолучитьСтрокуОстатковПартий(СтрокаПартииРаспределения, СтруктураИзмерений, ТаблицаОстатковПартий);
//АБС ВСТАВКА 18360
// Если в партии счет учета пустой, не списывать эту партию
Если СтрокаДокумента.ОтражатьВНалоговомУчете ИЛИ СтрокаДокумента.ОтражатьВБухгалтерскомУчете Тогда
Если СокрЛП(Строка(СтрокаПартии.СчетУчета)) = "" Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
//АБС ВСТАВКА КОНЕЦ 18360
// Количество по строке больше 0
Если НЕ СтрокаПартии.Количество > 0 Тогда
// В.Ч. Если ЭтоДокументКомплектацияНоменклатуры Тогда
Если вчСуммаПередачи = 0 Тогда
Продолжить;
//Иначе
// Сообщить("Продолжить "); // Отладка
КонецЕсли;
КонецЕсли;
Если СтрокаДокумента.ОтражатьВНалоговомУчете
И СтрокаДокумента.КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.ПринятиеКУчетуОС
И СтрокаПартии.СчетУчета = ПланыСчетов.Налоговый.МатериалыВСоставеОСвНУ тогда
Продолжить;
КонецЕсли;
Если СтрокаПартии.Количество >= КоличествоОсталосьПогасить Тогда
КоэффСписания = КоличествоОсталосьПогасить/СтрокаПартии.Количество;
Иначе
КоэффСписания = 1;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.ДокументПартии) И (СтрокаПартии.ДокументОприходования = СтрокаДокумента.ДокументПартии) Тогда
КоличествоСписанноеПоДокументуПартии = КоличествоСписанноеПоДокументуПартии + Окр(СтрокаПартии.Количество * КоэффСписания,3,1);
КонецЕсли;
// Добавим новую строку
Движение = ДобавитьДвижениеВСтруктуруПараметров(ИмяРегистра, СтруктураПараметров);
// Свойства
Движение.Период = СтрокаДокумента.Период;
Движение.Регистратор = СтрокаДокумента.Регистратор;
Движение.Активность = Истина;
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
// Измерения
Движение.Номенклатура = СтрокаПартии.Номенклатура;
Движение.Организация = СтруктураПараметров.ОрганизацияУпр;
// Ресурсы
Движение.Количество = Окр(СтрокаПартии.Количество * КоэффСписания,3,1);
Движение.Стоимость = Окр(СтрокаПартии.Стоимость * КоэффСписания,2,1);
// В.Ч.
Если ЭтоДокументПередачаТоваров Тогда
СтрокаТчТовары = тчТовары.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если СтрокаТчТовары.СуммаРуб <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
Движение.Количество = СтрокаТчТовары.Количество;
Движение.Стоимость = СтрокаТчТовары.СуммаРуб;
КонецЕсли;
КонецЕсли;
// В.Ч.
Если ЭтоДокументКомплектацияНоменклатуры Тогда
// СтрокаТчКомплектующие = тчКомплектующие.Получить(СтрокаДокумента.НомерСтрокиДокумента - 1);
Если вчСуммаПередачи <> 0 Тогда
// В.Ч. - берем точные кво и Сумму прямо из документа,
// без приколов со средневзвешенным списанием !
//Движение.Количество = СтрокаТчТовары.Количество;
Движение.Стоимость = вчСуммаПередачи; // СтрокаТчКомплектующие.СуммаПередачи;
КонецЕсли;
КонецЕсли;
// ============================================================ ========
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот