0
Amig0_0
10.02.20
✎
21:31
|
Добрый вечер товарищи программисты!)
Бухгалтер попросил сделать отчет о доходах в бухе 2.5. По документам РасходнаяНакладная.
Себестоимость решил рассчитать как в подборе партий. Она там считается так:
БИ.СКД("С")/БИ.СКД("К")
// ПРИМЕР
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура,ВладелецПартии,2);
БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Склад,2);
БИ.ИспользоватьСубконто(ВидыСубконто.Партии,,1);
БИ.ВыполнитьЗапрос(,Форма.Параметр.Получить("Док"),"21,41.1,41.2,41.3,41.4,43",,,1,,"СК");
БИ.ВыбратьСубконто(3);
Пока БИ.ПолучитьСубконто(3) = 1 Цикл
Если БИ.СКД("К")>0 Тогда
Таблица.НоваяСтрока();
Таблица.Себестоимость = БИ.СКД("С")/БИ.СКД("К");
****
Сделал так.
Выбрав товары по документам у меня на рукав все три субконто: Товар, Склад, Партия. Я хочу взять СКД() суммы/количества по конкретной партии, но выбрать не получается.
С компонентой БУ практически не работал. Не понимаю что сделал не так.
ТЗ.ВыбратьСтроки(); // Расчет Себестоимости
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Себестоимость = 0;
Себестоимость1 = 0;
Док = ТЗ.Док;
докПартии = ТЗ.Партия.Накладная;
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Номенклатура ,ТЗ.Товар ,2);
БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения ,ТЗ.Склад ,2);
БИ.ИспользоватьСубконто(ВидыСубконто.Партии ,ТЗ.Партия ,1);
БИ.ВыполнитьЗапрос(докПартии.ДатаДок-1,Док-1,"41.1",,,1,,"СК");
БИ.ВыбратьСубконто(3);
Если БИ.ПолучитьСубконто(3,,ТЗ.Партия) = 1 Тогда
Если БИ.СКД("К") <> 0 Тогда
Себестоимость = Окр(БИ.СКД("С")/БИ.СКД("К"),2,1);
Иначе
Себестоимость = 0;
КонецЕсли;
Иначе
//Сообщить(" док: " + СокрЛП(Док) + " тов: " + СокрЛП(ТЗ.Товар));
Себестоимость = 0;
КонецЕсли;
****
БИ.СКД("К") то Ноль, но отрицательное. Там по ходу путаница с перепроведением расходных накладных.
Я подумал что в таком случае будет целесообразно брать не СКД(), а Дебетовй оборот по всем трем судконто по сумме/количеству за весь период. В таком случае результат будет правильным.
И в большинстве случаев это отрабатывает правильно, но в некоторых суммы не правильны...
Сложно даже объяснить, пишу что бы мысли упорядочить, мало ли, кто-то сталкивался с подобными задачами и может дать дельный совет!
Заранее спасибо!
|
|