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