Advertisement
mamatovia

Untitled

Aug 22nd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.25 KB | None | 0 0
  1. Процедура СформироватьДвиженияСчетФактурыНаАванс(Источник, Отказ)
  2. //ск: Маматов И. 15.07.2019 (286735
  3. СчетаФактурыНаАванс = Перечисления.ВидСчетаФактурыПолученного.СчетаФактурыНаАванс();
  4. ЭтоСчетФактураНаАванс = СчетаФактурыНаАванс.Найти(Источник.ВидСчетаФактуры) <> Неопределено;
  5. Если Отказ или не Источник.Исправление или не ЭтоСчетФактураНаАванс Тогда
  6. Возврат;
  7. КонецЕсли;
  8.  
  9. Если не НужноФормироватьДвиженияПоСчетФактуреНаАванс(Источник) Тогда
  10. Возврат;
  11. КонецЕсли;
  12.  
  13. СторнироватьНДСПродажиСчетФактурыНаАванс(Источник);
  14. СформироватьОбратныеПроводкиСчетФактурыНаАванс(Источник);
  15.  
  16. //ск: Маматов И. 15.07.2019 )
  17. КонецПроцедуры
  18.  
  19. Функция НужноФормироватьДвиженияПоСчетФактуреНаАванс(Источник)
  20.  
  21. //ск: Маматов И. 15.07.2019 (286735
  22.  
  23. Запрос = Новый Запрос("ВЫБРАТЬ
  24. | ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
  25. | ХозрасчетныйОбороты.Счет КАК Счет,
  26. | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК СуммаОборотДт
  27. |ИЗ
  28. | РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, Счет = &СчетАвансов, &ВидСубконто2, Субконто1 = &СчетФактураПолученный, , ) КАК ХозрасчетныйОбороты
  29. |ГДЕ
  30. | ХозрасчетныйОбороты.Регистратор <> &Регистратор
  31. |
  32. |СГРУППИРОВАТЬ ПО
  33. | ХозрасчетныйОбороты.Субконто1,
  34. | ХозрасчетныйОбороты.Счет
  35. |
  36. |ИМЕЮЩИЕ
  37. | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) > &СуммаИсправления");
  38. Запрос.УстановитьПараметр("СчетАвансов", ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным);
  39. Запрос.УстановитьПараметр("ВидСубконто2", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СФПолученные);
  40. Запрос.УстановитьПараметр("СчетФактураПолученный", Источник.ДокументОснование);
  41. Запрос.УстановитьПараметр("СуммаИсправления", Источник.СуммаНДСДокумента);
  42. Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
  43.  
  44. НужноФормироватьДвижения = Ложь;
  45.  
  46. РезультатЗапроса = Запрос.Выполнить();
  47. Если не РезультатЗапроса.Пустой() Тогда
  48. НужноФормироватьДвижения = Истина;
  49. КонецЕсли;
  50.  
  51. Возврат НужноФормироватьДвижения;
  52. //ск: Маматов И. 15.07.2019 )
  53.  
  54. КонецФункции
  55.  
  56. Процедура СформироватьОбратныеПроводкиСчетФактурыНаАванс(Источник)
  57.  
  58. //ск: Маматов И. 15.07.2019 (286735
  59. ДвиженияХозрасчетный = Источник.Движения.Хозрасчетный;
  60. Если ДвиженияХозрасчетный.Количество() = 0 Тогда
  61. Возврат;
  62. КонецЕсли;
  63.  
  64. Сторно = ДвиженияХозрасчетный.Добавить();
  65. Сторно.СчетДт = ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным;
  66.  
  67. Для каждого ВидСубконто из Сторно.СчетДт.ВидыСубконто цикл
  68. Сторно.СубконтоДт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоКт[ВидСубконто.ВидСубконто];
  69. КонецЦикла;
  70.  
  71. Сторно.СчетКт = ПланыСчетов.Хозрасчетный.НДС;
  72.  
  73. Для каждого ВидСубконто из Сторно.СчетКт.ВидыСубконто цикл
  74. Сторно.СубконтоКт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоДт[ВидСубконто.ВидСубконто];
  75. КонецЦикла;
  76.  
  77. Сторно.Организация = ДвиженияХозрасчетный[0].Организация;
  78. Сторно.Период = ДвиженияХозрасчетный[0].Период;
  79.  
  80. Запрос = Новый Запрос("ВЫБРАТЬ
  81. | СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот
  82. |ИЗ
  83. | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(, , Регистратор, СчетФактура = &СчетФактура) КАК НДСЗаписиКнигиПродажОбороты
  84. |ГДЕ
  85. | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор");
  86. Запрос.УстановитьПараметр("СчетФактура", Источник.ДокументОснование);
  87. Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
  88.  
  89. СторноНДС = 0;
  90. РезультатЗапроса = Запрос.Выполнить();
  91. Если не РезультатЗапроса.Пустой() Тогда
  92. Выборка = РезультатЗапроса.Выбрать();
  93. Выборка.Следующий();
  94. СторноНДС = -Выборка.НДСОборот;
  95. КонецЕсли;
  96.  
  97. Сторно.Сумма = СторноНДС;
  98. Сторно.Содержание = "Сторно восстановленного НДС с выданного аванса";
  99.  
  100. ВосстановлениеНДС = ДвиженияХозрасчетный.Добавить();
  101. ВосстановлениеНДС.СчетДт = ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным;
  102.  
  103. Для каждого ВидСубконто из ВосстановлениеНДС.СчетДт.ВидыСубконто цикл
  104. ВосстановлениеНДС.СубконтоДт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоКт[ВидСубконто.ВидСубконто];
  105. КонецЦикла;
  106.  
  107. ВосстановлениеНДС.СчетКт = ПланыСчетов.Хозрасчетный.НДС;
  108.  
  109. Для каждого ВидСубконто из ВосстановлениеНДС.СчетКт.ВидыСубконто цикл
  110. ВосстановлениеНДС.СубконтоКт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоДт[ВидСубконто.ВидСубконто];
  111. КонецЦикла;
  112.  
  113. ВосстановлениеНДС.Организация = ДвиженияХозрасчетный[0].Организация;
  114. ВосстановлениеНДС.Период = ДвиженияХозрасчетный[0].Период;
  115.  
  116. ВосстановлениеНДС.Сумма = Источник.СуммаНДСДокумента;
  117. ВосстановлениеНДС.Содержание = "Восстановление НДС с выданного аванса";
  118.  
  119. //ск: Маматов И. 15.07.2019 )
  120.  
  121. КонецПроцедуры
  122.  
  123. Процедура СторнироватьНДСПродажиСчетФактурыНаАванс(Источник)
  124.  
  125. //ск: Маматов И. 15.07.2019 (286735
  126. Источник.Движения.НДСЗаписиКнигиПродаж.Очистить();
  127.  
  128. ВидыЦенности = Новый Массив();
  129. ВидыЦенности.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
  130. ВидыЦенности.Добавить(Перечисления.ВидыЦенностей.Возврат);
  131.  
  132. Запрос = Новый Запрос("ВЫБРАТЬ
  133. | НДСЗаписиКнигиПродажОбороты.Организация КАК Организация,
  134. | НДСЗаписиКнигиПродажОбороты.Покупатель КАК Покупатель,
  135. | НДСЗаписиКнигиПродажОбороты.СчетФактура КАК СчетФактура,
  136. | НДСЗаписиКнигиПродажОбороты.ВидЦенности КАК ВидЦенности,
  137. | НДСЗаписиКнигиПродажОбороты.СтавкаНДС КАК СтавкаНДС,
  138. | НДСЗаписиКнигиПродажОбороты.ДатаОплаты КАК ДатаОплаты,
  139. | НДСЗаписиКнигиПродажОбороты.ДокументОплаты КАК ДокументОплаты,
  140. | НДСЗаписиКнигиПродажОбороты.Событие КАК Событие,
  141. | НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытия,
  142. | НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
  143. | НДСЗаписиКнигиПродажОбороты.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
  144. | НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
  145. | НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
  146. | НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
  147. | НДСЗаписиКнигиПродажОбороты.НДСОборот КАК НДСОборот,
  148. | КОНЕЦПЕРИОДА(НДСЗаписиКнигиПродажОбороты.Период, КВАРТАЛ) КАК КорректируемыйПериод
  149. |ПОМЕСТИТЬ ВТНДСПродажи
  150. |ИЗ
  151. | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
  152. | ,
  153. | ,
  154. | Запись,
  155. | СчетФактура = &СчетФактура
  156. | И ВидЦенности В (&ВидыЦенности)) КАК НДСЗаписиКнигиПродажОбороты
  157. |ГДЕ
  158. | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор
  159. |
  160. |ОБЪЕДИНИТЬ ВСЕ
  161. |
  162. |ВЫБРАТЬ
  163. | НДСЗаписиКнигиПродажОбороты.Организация,
  164. | НДСЗаписиКнигиПродажОбороты.Покупатель,
  165. | НДСЗаписиКнигиПродажОбороты.СчетФактура,
  166. | НДСЗаписиКнигиПродажОбороты.ВидЦенности,
  167. | НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
  168. | НДСЗаписиКнигиПродажОбороты.ДатаОплаты,
  169. | НДСЗаписиКнигиПродажОбороты.ДокументОплаты,
  170. | НДСЗаписиКнигиПродажОбороты.Событие,
  171. | НДСЗаписиКнигиПродажОбороты.ДатаСобытия,
  172. | НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста,
  173. | НДСЗаписиКнигиПродажОбороты.СторнирующаяЗаписьДопЛиста,
  174. | НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента,
  175. | НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура,
  176. | НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот,
  177. | НДСЗаписиКнигиПродажОбороты.НДСОборот,
  178. | КОНЕЦПЕРИОДА(НДСЗаписиКнигиПродажОбороты.Период, КВАРТАЛ)
  179. |ИЗ
  180. | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
  181. | ,
  182. | ,
  183. | Запись,
  184. | ИсправленныйСчетФактура = &СчетФактура
  185. | И ВидЦенности В (&ВидыЦенности)) КАК НДСЗаписиКнигиПродажОбороты
  186. |ГДЕ
  187. | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор
  188. |;
  189. |
  190. |////////////////////////////////////////////////////////////////////////////////
  191. |ВЫБРАТЬ
  192. | ВТНДСПродажи.Организация КАК Организация,
  193. | ВТНДСПродажи.Покупатель КАК Покупатель,
  194. | ВТНДСПродажи.СчетФактура КАК СчетФактура,
  195. | ВТНДСПродажи.ВидЦенности КАК ВидЦенности,
  196. | ВТНДСПродажи.СтавкаНДС КАК СтавкаНДС,
  197. | ВТНДСПродажи.ДатаОплаты КАК ДатаОплаты,
  198. | ВТНДСПродажи.ДокументОплаты КАК ДокументОплаты,
  199. | ВТНДСПродажи.Событие КАК Событие,
  200. | ВТНДСПродажи.ДатаСобытия КАК ДатаСобытия,
  201. | ВТНДСПродажи.ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
  202. | ВТНДСПродажи.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
  203. | ВТНДСПродажи.ДоговорКонтрагента КАК ДоговорКонтрагента,
  204. | ВТНДСПродажи.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
  205. | СУММА(-ВТНДСПродажи.СуммаБезНДСОборот) КАК СуммаБезНДС,
  206. | СУММА(-ВТНДСПродажи.НДСОборот) КАК НДС,
  207. | ВТНДСПродажи.КорректируемыйПериод КАК КорректируемыйПериод
  208. |ИЗ
  209. | ВТНДСПродажи КАК ВТНДСПродажи
  210. |
  211. |СГРУППИРОВАТЬ ПО
  212. | ВТНДСПродажи.СторнирующаяЗаписьДопЛиста,
  213. | ВТНДСПродажи.ЗаписьДополнительногоЛиста,
  214. | ВТНДСПродажи.ИсправленныйСчетФактура,
  215. | ВТНДСПродажи.ДоговорКонтрагента,
  216. | ВТНДСПродажи.Событие,
  217. | ВТНДСПродажи.ДатаСобытия,
  218. | ВТНДСПродажи.ДатаОплаты,
  219. | ВТНДСПродажи.ДокументОплаты,
  220. | ВТНДСПродажи.ВидЦенности,
  221. | ВТНДСПродажи.Покупатель,
  222. | ВТНДСПродажи.Организация,
  223. | ВТНДСПродажи.СчетФактура,
  224. | ВТНДСПродажи.СтавкаНДС,
  225. | ВТНДСПродажи.КорректируемыйПериод");
  226. Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
  227. Запрос.УстановитьПараметр("СчетФактура", Источник.ДокументОснование);
  228. Запрос.УстановитьПараметр("ВидыЦенности", ВидыЦенности);
  229.  
  230. РезультатЗапроса = Запрос.Выполнить();
  231. Если РезультатЗапроса.Пустой() Тогда
  232. Возврат;
  233. КонецЕсли;
  234.  
  235. СуммаНДСДокумента = Источник.СуммаНДСДокумента;
  236. СуммаДокумента = Источник.СуммаДокумента - СуммаНДСДокумента;
  237.  
  238. СторнируемыеЗаписи = РезультатЗапроса.Выгрузить();
  239. Для каждого СторнируемаяЗапись из СторнируемыеЗаписи цикл
  240. Сторно = Источник.Движения.НДСЗаписиКнигиПродаж.Добавить();
  241. ЗаполнитьЗначенияСвойств(Сторно, СторнируемаяЗапись);
  242.  
  243. ЭтоЗаписьДопЛиста = Истина;
  244. Если НачалоКвартала(Источник.Дата) = НачалоКвартала(СторнируемаяЗапись.КорректируемыйПериод)
  245. И не СторнируемаяЗапись.ЗаписьДополнительногоЛиста Тогда
  246.  
  247. ЭтоЗаписьДопЛиста = Ложь;
  248. Сторно.КорректируемыйПериод = Дата(1, 1, 1);
  249.  
  250. КонецЕсли;
  251.  
  252. Сторно.ЗаписьДополнительногоЛиста = ЭтоЗаписьДопЛиста;
  253. Сторно.СторнирующаяЗаписьДопЛиста = ЭтоЗаписьДопЛиста;
  254. Сторно.Период = Источник.Дата;
  255.  
  256. Если СуммаНДСДокумента > 0
  257. И СуммаДокумента > 0 Тогда
  258.  
  259. ЗаписьДопЛиста = Источник.Движения.НДСЗаписиКнигиПродаж.Добавить();
  260. ЗаполнитьЗначенияСвойств(ЗаписьДопЛиста, Сторно);
  261. ЗаписьДопЛиста.СторнирующаяЗаписьДопЛиста = Ложь;
  262. ЗаписьДопЛиста.ИсправленныйСчетФактура = Источник.Ссылка;
  263. ЗаписьДопЛиста.СуммаБезНДС = СуммаДокумента;
  264. ЗаписьДопЛиста.НДС = СуммаНДСДокумента;
  265.  
  266. СуммаДокумента = СуммаДокумента - ?(Сторно.СуммаБезНДС < 0, -Сторно.СуммаБезНДС, Сторно.СуммаБезНДС);;
  267. СуммаНДСДокумента = СуммаНДСДокумента - ?(Сторно.НДС < 0, -Сторно.НДС, Сторно.НДС);
  268.  
  269. КонецЕсли;
  270.  
  271. КонецЦикла;
  272.  
  273. Источник.Движения.НДСЗаписиКнигиПродаж.Записывать = Истина;
  274.  
  275. //ск: Маматов И. 15.07.2019 )
  276.  
  277. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement