• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Книга покупок

  • Автор темы mvv
  • Дата начала
M

mvv

Добрый день, форумчане.
Ответьте мне на таокй вопрос, пожалуйста:
что должно попадать в книгу покупок в полу "Оплата". Мои бухи говорят, что у них графа "Дата оплаты СФ" не заполняется и, поэтому, книгу покупок в налогой не принимают. Посмтротрел, модуль формы Документа совпадает со стандартной 1С.

Вот что у меня:

//*****************************************************************************
Функция НоваяСтрокаКнигиПокупок(ДокОпл,Док,СтрокаТабУчтенныхСумм,ДатаНомерСФ = "")

ПроводкиДокумента = СоздатьОбъект("Операция");
ПроводкиДокумента.ИспользоватьСубконто(ВидыСубконто.СчетаФактурыПолученные, Док);
Если ПроводкиДокумента.ВыбратьОперацииСПроводками(ДокОпл,ДокОпл,"ЗПК") = 1 Тогда
НоваяСтрока();
ДатаНомерСчетаФактуры = ?(ПустоеЗначение(ДатаНомерСФ) = 0, ДатаНомерСФ, Док.ДатаНомерСчетаФактуры);
СчетФактура = Док.ТекущийДокумент();
Если (СчетФактура.ДатаДок < '01.01.2006') или (Док <> ДокОпл) Тогда
Оплата = ДокОпл.ТекущийДокумент();
КонецЕсли;

Если Док.Вид()="СчетФактураПолученный" Тогда
Приход = Док.ДокументОприходования;
Иначе
Приход = Док.ТекущийДокумент();
КонецЕсли;
Контрагент = Док.Контрагент;
ТипЗаписи = Перечисление.ТипыЗаписейКнигиПокупок.НДСАвто;
Авто = 1;

СуммоваяРазница = 0;

Пока ПроводкиДокумента.ПолучитьПроводку()=1 Цикл
Если ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.20.Б") Тогда
БезНДС20 = БезНДС20 + ПроводкиДокумента.Сумма;
ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.20.Н") Тогда
НДС20 = НДС20 + ПроводкиДокумента.Сумма;
ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.10.Б") Тогда
БезНДС10 = БезНДС10 + ПроводкиДокумента.Сумма;
ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.10.Н") Тогда
НДС10 = НДС10 + ПроводкиДокумента.Сумма;
ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.0") Тогда
НДС0 = НДС0 + ПроводкиДокумента.Сумма;
ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.БН") Тогда
Освобождаемые = Освобождаемые + ПроводкиДокумента.Сумма;
КонецЕсли;
КонецЦикла;

Всего = БезНДС20 + НДС20 + БезНДС10 + НДС10 + НДС0 + Освобождаемые;

Если ((ДокОпл.Вид() = "Выписка") или (ДокОпл.Вид() = "РасходныйОрдер"))
и (ДатаДок >= '01.05.2006') и (ДокОпл.ДатаДок >= '01.05.2006') Тогда
ПроводкиДокумента = СоздатьОбъект("Операция");
ПроводкиДокумента.ИспользоватьСубконто(ВидыСубконто.СчетаФактурыПолученные, Док);
Если ПроводкиДокумента.ВыбратьОперацииСПроводками(ДокОпл,ДокОпл,"19") = 1 Тогда
Пока ПроводкиДокумента.ПолучитьПроводку()=1 Цикл
Если ПроводкиДокумента.Д*цензура*.Счет.Родитель(1) = СчетПоКоду("19") Тогда
СуммоваяРазница = СуммоваяРазница + ПроводкиДокумента.Сумма
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;

Если ((СуммоваяРазница > 0 ) и (ОтражатьПоложительныеСуммовыеРазницыВДопЛисте = Да)) или
((СуммоваяРазница < 0 ) и (ОтражатьОтрицательныеСуммовыеРазницыВДопЛисте = Да)) Тогда
ПериодСФ = КонМесяца(Док.ДатаДок);
ПериодДокОпл = КонМесяца(ДокОпл.ДатаДок);
ЗаписьДопЛиста = ?((ПериодДокОпл <> ПериодСФ) и (ДокОпл.ДатаДок>='01.05.2006'),1,0);
ДатаДопЛиста = ?(ЗаписьДопЛиста = 1,Док.ДатаДок,"");
КонецЕсли;

Если Всего = 0 Тогда
УдалитьСтроку();

Иначе
ОтразитьУчтенныеСуммы(Док,СтрокаТабУчтенныхСумм);
Возврат 1;
КонецЕсли;
КонецЕсли;

Возврат 0;

КонецФункции


покупок в полу "Оплата"
т.е. в поле "Оплата"
 
P

puh14

дата документа Выписка или расходныйордер, который кроет СЧФ. Если банк не бьют - тогда и оплаты нет.
 
M

mvv

дата документа Выписка или расходныйордер, который кроет СЧФ. Если банк не бьют - тогда и оплаты нет.

Да, но выражение

Если (СчетФактура.ДатаДок < '01.01.2006') или (Док <> ДокОпл) Тогда
Оплата = ДокОпл.ТекущийДокумент();
КонецЕсли;

говорит о другом - что оплаты показываются только у СФ до изменений в формированиях отгрузок
 
P

puh14

Так тебе нужны данные до 2006 года? Там по другому оплата считалась.Посмотри в древнем релизе до 2006 года.
а второе условие - всего-лишь проверка на ошибку, чтобы сам себя не покрыл.


оплаты показываются только у СФ до изменений в формированиях отгрузок

Ты имеешь в виду законодательные изменения, или изменения документа?
 
M

mvv

Нет, мне нужны оплаты этого года. Тогда я не пойму где написано какую оплату ставить...
 
K

kaa

посмотри в документе Формирование записей книги покупок, и Запись книги покупок - как заполняется поле документ оплаты
 
P

puh14

Когда ты формируешь документ Выписка или расходныйордер то указываешь какой документ кроешь, и дата документа Выписка или расходныйордер и является датой оплаты. Сумма берется из операций этого документа. Походу у тебя банк не били - тогда ниоткуда ты суммы с датами не вытащишь.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!