"мега код - цикл в запросе :<br>и ещё 1 снимает балы на задачах спеца<br><br><br><br><br> Док.Операция.ВыбратьПроводки();<br> Пока Док.Операция.ПолучитьПроводку()=1 Цикл<br> Если ((Док.Операция.Дебет.Счет = СчетПоКоду("60.1")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.2"))) или<br> ((Док.Операция.Дебет.Счет = СчетПоКоду("60.6")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.7"))) или<br> ((Док.Операция.Дебет.Счет = СчетПоКоду("60.11")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.22"))) или<br> ((Док.Операция.Дебет.Счет = СчетПоКоду("76.5")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.2"))) или<br> ((Док.Операция.Дебет.Счет = СчетПоКоду("76.6")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.7"))) или<br> ((Док.Операция.Дебет.Счет = СчетПоКоду("76.55")) И (Док.Операция.Кредит.Счет = СчетПоКоду("60.22"))) Тогда<br> Если Док.Операция.Дебет.Субконто(2).Выбран()=1 Тогда<br> Если Док.Операция.Дебет.Субконто(2).АвтоОбработкаНДС=0 Тогда<br> Продолжить;<br> КонецЕсли;<br> КонецЕсли;<br> //Если Док.Вид()="Взаимозачет" Тогда<br> // Если (Док.ВидКорректировки=1) или<br> // (Док.ВидКорректировки=2) Тогда<br> // Продолжить;<br> // Иначе<br> // Если Док.Операция.Дебет.Счет.КоличествоСубконто()>1 Тогда <br> // Если (Док.Операция.Дебет.Субконто(1) = Док.Операция.Кредит.Субконто(1)) и <br> // (Док.Операция.Дебет.Субконто(2) = Док.Операция.Кредит.Субконто(2)) и<br> // (Док.ИспользоватьВспомогательныйСчет=1) Тогда<br> // Продолжить;<br> // КонецЕсли;<br> // КонецЕсли;<br> // КонецЕсли;<br> //КонецЕсли;<br> БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Док.Операция.Кредит.Субконто(1),2);<br> БухИт.ИспользоватьСубконто(ВидыСубконто.СчетаФактурыПолученные,,1);<br> БухИт.ВыполнитьЗапрос(,Док.ТекущийДокумент(),"76.ВА",,,,,"С");<br> СуммаЗачета = Док.Операция.Сумма;<br> БухИТ.ВыбратьСубконто(2);<br> Пока (БухИТ.ПолучитьСубконто(2)=1)и(СуммаЗачета>0) Цикл<br> <br> СтрокаТабУчтенныхСумм = """";<br> Если БухИТ.Субконто(2).Договор <> Док.Операция.Кредит.Субконто(2) Тогда<br> Продолжить;<br> КонецЕсли;<br> Если ТабУчтенныхСумм.НайтиЗначение(БухИТ.Субконто(2),СтрокаТабУчтенныхСумм,1)=1 Тогда<br> Учтено = ТабУчтенныхСумм.ПолучитьЗначение(СтрокаТабУчтенныхСумм,2);<br> Иначе<br> Учтено = 0;<br> КонецЕсли;<br> ОстатокАвансаПоСФ = ?((БухИТ.Субконто(2).НДС20 + БухИТ.Субконто(2).НДС10) >0, Окр((БухИТ.Субконто(2).Всего*БухИт.СКК("С")/(БухИТ.Субконто(2).НДС20 + БухИТ.Субконто(2).НДС10)),2,1) - Учтено,0);<br> <br> <br> Если ОстатокАвансаПоСФ>0 Тогда<br> Если СуммаЗачета > ОстатокАвансаПоСФ Тогда<br> СуммаЗКП = ОстатокАвансаПоСФ;<br> СуммаЗачета = СуммаЗачета - ОстатокАвансаПоСФ;<br> Иначе<br> СуммаЗКП = СуммаЗачета;<br> СуммаЗачета = 0;<br> КонецЕсли;<br> <br> //Рассчитать НДС и добавить строку в документ<br> ПоСФнаАванс(Док,БухИт.Субконто(2),СуммаЗКП,СтрокаТабУчтенныхСумм);<br> <br> КонецЕсли;<br> КонецЦикла;<br> КонецЕсли;<br> КонецЦикла;"