Помогите!!! избежать увилечения вдвое кол-ва товара на складе при ПЕРЕпроведении ПрихНакл
08.12.2008
00:58
#1
"Вычисление фактического остатка товаров производиться в модуле Формы-Документ.РасхНакл ( при вводе кол-ва запрашиваемого товара) с помощью функции:
Функция ФактическийОстаток(Товар)
ФактОст=0;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВключатьСубсчета(1,1);
БИ.Использоватьсубконто(ВидыСубконто.Товары,Товар,2);
БИ.Использоватьсубконто(ВидыСубконто.Склады,Склад,2);
БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
ФактОст=БИ.СКД("К");
Возврат ФактОст;
БИ=0;
КонецФункции
Я поняла так, что БИ.СКД("К") как раз увеличивается в двое при ПЕРЕпроведении ПрихНакл:
Процедура ОбработкаПроведения()
Сч19_3=СчетПоКоду("19.3");
Сч41_1=СчетПоКоду("41.1");
Сч60_1=СчетПоКоду("60.1");
Сч68_3=СчетПоКоду("68.3");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Сумма>0 Тогда
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч41_1;
Операция.Дебет.Товары=Товар;
Операция.Дебет.Склады=Склад;
Операция.Дебет.Партии=ТекПартия;
Операция.Кредит.Счет=Сч60_1;
Операция.Кредит.Контрагенты=Контрагент;
Операция.Кредит.Партии=ТекПартия;
Операция.Количество=Количество;
Операция.Сумма=Сумма;
Операция.СодержаниеПроводки="Поступили товары";
Операция.НомерЖурнала="ТВ";
КонецЕсли;
КонецЦикла;
Сумма_НДС=Итог("СуммаНДС");
Если Сумма_НДС>0 Тогда
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч19_3;
Операция.Кредит.Счет=Сч60_1;
Операция.Кредит.Контрагенты=Контрагент;
Операция.Кредит.Партии=ТекПартия;
Операция.Сумма=Сумма_НДС;
Операция.СодержаниеПроводки="Выделен НДС по поступ. товарам";
Операция.НомерЖурнала="ТВ";
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч68_3;
Операция.Кредит.Счет=Сч19_3;
Операция.Сумма=Сумма_НДС;
Операция.СодержаниеПроводки="Зачтен НДС по поступ. товарам";
Операция.НомерЖурнала="ТВ";
КонецЕсли;
Операция.Содержание="ПоступлениеТоваров";
Операция.СуммаОперации=Итог("Всего");
Операция.Записать();
КонецПроцедуры
Не могу никак понять в чем ошибка и как ее исправить соответственно. Если кто то увидит наметанным глазом буду ОЧЕНЬ признательна!"
Функция ФактическийОстаток(Товар)
ФактОст=0;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВключатьСубсчета(1,1);
БИ.Использоватьсубконто(ВидыСубконто.Товары,Товар,2);
БИ.Использоватьсубконто(ВидыСубконто.Склады,Склад,2);
БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
ФактОст=БИ.СКД("К");
Возврат ФактОст;
БИ=0;
КонецФункции
Я поняла так, что БИ.СКД("К") как раз увеличивается в двое при ПЕРЕпроведении ПрихНакл:
Процедура ОбработкаПроведения()
Сч19_3=СчетПоКоду("19.3");
Сч41_1=СчетПоКоду("41.1");
Сч60_1=СчетПоКоду("60.1");
Сч68_3=СчетПоКоду("68.3");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Сумма>0 Тогда
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч41_1;
Операция.Дебет.Товары=Товар;
Операция.Дебет.Склады=Склад;
Операция.Дебет.Партии=ТекПартия;
Операция.Кредит.Счет=Сч60_1;
Операция.Кредит.Контрагенты=Контрагент;
Операция.Кредит.Партии=ТекПартия;
Операция.Количество=Количество;
Операция.Сумма=Сумма;
Операция.СодержаниеПроводки="Поступили товары";
Операция.НомерЖурнала="ТВ";
КонецЕсли;
КонецЦикла;
Сумма_НДС=Итог("СуммаНДС");
Если Сумма_НДС>0 Тогда
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч19_3;
Операция.Кредит.Счет=Сч60_1;
Операция.Кредит.Контрагенты=Контрагент;
Операция.Кредит.Партии=ТекПартия;
Операция.Сумма=Сумма_НДС;
Операция.СодержаниеПроводки="Выделен НДС по поступ. товарам";
Операция.НомерЖурнала="ТВ";
Операция.НоваяПроводка();
Операция.Дебет.Счет=Сч68_3;
Операция.Кредит.Счет=Сч19_3;
Операция.Сумма=Сумма_НДС;
Операция.СодержаниеПроводки="Зачтен НДС по поступ. товарам";
Операция.НомерЖурнала="ТВ";
КонецЕсли;
Операция.Содержание="ПоступлениеТоваров";
Операция.СуммаОперации=Итог("Всего");
Операция.Записать();
КонецПроцедуры
Не могу никак понять в чем ошибка и как ее исправить соответственно. Если кто то увидит наметанным глазом буду ОЧЕНЬ признательна!"
08.12.2008
08:29
#2
У Вас в приходе устанавливаются 3 субконтто, а в расходе только 2, поэтому скорее всего функция возвращает остаток, суммируя по нескольким партиям
09.12.2008
10:09
#3
"> ...
> БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
> ФактОст=БИ.СКД("К");
> Возврат ФактОст;
> БИ=0;
> КонецФункции
> Я поняла так, что БИ.СКД("К") как раз увеличивается в двое при ПЕРЕпроведении ПрихНакл:
Вот ошибка:
БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
надо так:
БИ.ВыполнитьЗапрос(,ТекущийДокумент(),СчетПоКоду("41.1"),,,,,5);
Тогда СКД не будеть задваиваться"
> БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
> ФактОст=БИ.СКД("К");
> Возврат ФактОст;
> БИ=0;
> КонецФункции
> Я поняла так, что БИ.СКД("К") как раз увеличивается в двое при ПЕРЕпроведении ПрихНакл:
Вот ошибка:
БИ.ВыполнитьЗапрос(,РабочаяДата(),СчетПоКоду("41.1"),,,,,5);
надо так:
БИ.ВыполнитьЗапрос(,ТекущийДокумент(),СчетПоКоду("41.1"),,,,,5);
Тогда СКД не будеть задваиваться"
Читают тему
(гостей: 1)