Имя: Пароль:
1C
Админ
ВыбранаПоДт и ВыбранаПоКт = 1 одновременно
0 Old_Chroft
 
01.07.13
12:08
Есть самописный документ (поступление товаров/услуг), вот обработка проведения:

Процедура ОбработкаПроведения()

   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       Операция.НоваяПроводка();
       Операция.Дебет.Счет = СчетДт;
       Если СчетДт.ПринадлежитГруппе(СчетПоКоду("10")) = 1 Тогда
           Операция.Дебет.Материалы     = ТоварУслуга;
           Операция.Дебет.МестаХранения = СубконтоДт;
           Операция.Количество          = Количество;
           Операция.СодержаниеПроводки  = "Покупка материалов";            
       КонецЕсли;
       Если СчетДт = СчетПоКоду("20") Тогда
           Операция.Дебет.ВидыНоменклатуры = ТоварУслуга;
           Операция.Дебет.Подразделения    = СубконтоДт;
           Операция.СодержаниеПроводки     = "Услуги сторонних организаций";
       КонецЕсли;        
       Операция.Кредит.Счет = СчетКт;
       Операция.Кредит.Контрагенты = Контрагент;
       Операция.Кредит.Договоры    = Договоры;
       Операция.Сумма              = СуммаБезНДС;
       
       // проведение НДС
       Операция.НоваяПроводка();
       Операция.Дебет.Счет = СчетНДС;
       Операция.Дебет.Контрагенты            = Контрагент;
       Операция.Дебет.СчетаФактурыПолученные = ТекущийДокумент();
       Операция.Кредит.Счет = СчетКт;
       Операция.Кредит.Контрагенты = Контрагент;
       Операция.Кредит.Договоры    = Договоры;
       Операция.Сумма              = СуммаНДС;
       Операция.СодержаниеПроводки = "НДС";
       
   КонецЦикла;

   Операция.Записать();

КонецПроцедуры

Вроде все нормально, но в отчетах при формировании

   Дт = Ит.ВыбранаПоДт();
   Кт = Ит.ВыбранаПоКт();

И Дт, и Кт у второй проводки (НДС) возвращает 1 одновременно. Соответственно, сумма НДС попадает и в дебетовую, и в кредитовую колонки отчета. В чем может быть дело?
1 zak555
 
01.07.13
12:09
запрос покажи
2 Old_Chroft
 
01.07.13
12:23
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
// ВыбВидСубконто1 = Справочник.Контрагенты
// Субк1 = элемент справочника
// ОтборСубк1 = флажок на форме отчета
Ит.ИспользоватьСубконто(ВыбВидСубконто1, Субк1, ОтборСубк1);
Ит.ВыполнитьЗапрос(Дата1, Дата2,,,,, "Проводка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
   // тут много всего, в делу не относящегося
   Дт = Ит.ВыбранаПоДт(); // возвращает 1
   Кт = Ит.ВыбранаПоКт(); // возвращает 1
КонецЦикла;
3 zak555
 
01.07.13
12:38
что за счета слева, справа и какая у них аналитика ?
4 Zypse
 
01.07.13
12:38
В запросе не указан счет. А по отношению ко всем счетам проводка естественно выбрана как по дебету, так и по кредиту.
5 zak555
 
01.07.13
12:40
(4) возможно по дебету/кредиту одинаковая аналитика
6 Old_Chroft
 
01.07.13
13:17
Дт: 19.2 НДС по приобретенным НМА (субконто: Контрагент, счета-фактуры)
Кт: 76.5 Расчеты с дебиторами и кредиторами(субконто: контрагент, договора)
В общем, это НДС по полученным счетам-фактурам.
Наверное именно из-за того, что субконто общее и получается косяк?
7 zak555
 
01.07.13
13:21
(6) и слева и справа есть аналитика контрагенты, удовлетворяющая условию

Ит.ИспользоватьСубконто(ВыбВидСубконто1, Субк1, ОтборСубк1);
8 zak555
 
01.07.13
13:21
это не косяк
9 Old_Chroft
 
01.07.13
13:25
Ну да, я не так выразился :)
Спасибо.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.