Для кого предназначена статья
Данная статья будет полезна прежде всего:
- Руководителям, Главным бухгалтерам, которые хотят быть в курсе подводных камней, не очевидным и нигде официально не высказанным.
- Программистам, которые хотят быть в курсе возможных проблем в конфигурации и ищущих пути их решения
- Специалистам бухгалтерии, которые ищут ответы на горячие вопросы по бухгалтерии, требующими решения.
Изменения в законодательстве НК РФ с января 2014 г.
В 2014 году были вступили в силу поправки в НК РФ. Если мы обратимся за справкой в Консультант Плюс, то найдем следующие ссылки: Цитата: "Новые документы для бухгалтера Выпуск 15.01.2014. С 1 января 14г при совершении операций, которые не облагаются НДС согласно ст. 149 не нужно выставлять счета-фактуры, вести журналы учета полученных и выставленных счет-фактур, книги покупок и книги продаж. Изменения внесены в п. 5 ст 168 НК РФ и п. 3 ст 169 НК РФ. Согласно ч.1 ст 6 Закона №420-ФЗ поправки вступили в силу с 1 января 2014г." Обратимся к тексту статьи 149 НК РФ, пункт 4: Цитата: "4. В случае, если налогоплательщиком осуществляются операции, подлежащие налогообложению, и операции, не подлежащие налогообложению (освобождаемые от налогообложения) в соответствии с положениями настоящей статьи, налогоплательщик обязан вести раздельный учет таких операций. (в ред. Федерального закона от 29.12.2000 N 166-ФЗ)" Наряду с этими, вступившими в силу с января 2014 г. законами, мы имеем дело с действующим законом "ПОСТАНОВЛЕНИЕ ПРАВИТЕЛЬСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ от 26 декабря 2011 г. N 1137", которое регламентирует порядок и вид оформления документов для отчетности перед налоговой службой:
- Порядок предоставления в налоговую службу документов: Счет-фактура, Корректировочный счет-фактура
- Порядок заполнения журнала учета полученных и выставленных счетов-фактур
- Форму книги покупок, книги продаж
Изменения в 1С Бухгалтерии с января 2014 г.
Фирма 1с ЧАСТИЧНО отработала описанное выше изменение в законодательстве следующим образом:
- С января 2014 г. в релизах Бухгалтерии в коде добавили алгоритм раздельного учета различных строк в документах "Корректировка Реализации" и "Корректировка Поступления"
- В случае если в одном документе есть строки "С НДС" и "Без НДС", то они отдельно отражаются в книге покупок и продаж.
- В более ранних релизах такой возможности не было, документ целиком фигурировал в книге покупок или продаж, в зависимости от настроек учета.
- Законодательное основание применения опции "Без НДС" и "С НДС" фирма 1с оставляет за предприятием. Предприятие обязано предоставить в налоговую документы, дающие право на опцию "Без НДС" по первому требованию.
К сожалению, вынужден констатировать, что не все случаи и порядки применения фирмой 1С учтены и опробованы. Таким образом:
- На некоторых предприятиях, в силу специфики деятельности и порядка применения учета, раздельный учет операций "С НДС" и "Без НДС" работает криво!
- Это выражается в следующем:
- Например, в книге продаж есть записи с суммами, но нет номеров соответствующих счет-фактур!
- Нет записей в книге продаж! Хотя все документы выставлены верно, механизм учета не отрабатывает. Люди пишут жалобы в 1С, но она не спешит исправлять свои недоработки!
Перечисленные случаи я видел собственными глазами, в программе 1С на реальном предприятии. Читал на форумах, люди пишут об аналогичных случаях. Таким образом, резюмируя все вышесказанное, можно заметить:
- Если налогоплательщик имеет все документы, описываемые в п.3 149 статьи НК РФ на освобождение от налогообложения соответствующей деятельности, или услуг, с ней связанных, он имеет право не платить налоги по данной деятельности.
- Если применяются операции, которые облагаются налогом, а также, операции, не облагаемые налогом, то налогоплательщик обязан вести раздельный учет данных операций.
- Нигде (в законах) не описан порядок раздельного учета! Есть только рекомендации, общие слова и советы от аудиторов!
- Действующий закон "ПОСТАНОВЛЕНИЕ ПРАВИТЕЛЬСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ от 26 декабря 2011 г. N 1137", регламентирует порядок предоставления документов в налоговую.
Видимо, фирма 1С поступила хитро. Разработчики 1С в курсе того, что нигде (в законах) не описан порядок раздельного учета! В 1С они произвели минимальные изменения, но работающие не во всех случаях! То есть, налогоплательщик вправе организовывать свой порядок РАЗДЕЛЬНОГО УЧЕТА операций по НДС и без НДС! Таким образом, порядок раздельного учета, предложенный фирмой 1С в новых релизах, МОЖНО ИЗМЕНИТЬ! В каждом отдельном случае в связи со спецификой Предприятия, программист может добавить свои изменения.
Советы от аудиторов. Какие действия необходимы в 1С?
Итак, что же делать со всем вышесказанным (Руководителям, Главным бухгалтерам):
- Аудиторы советуют в любом случае предоставлять весь пакет документов в налоговую, для уменьшения налоговых рисков. Имеется в виду, вписывать операции "Без НДС" в книгу продаж вместе с операциями "С НДС".
- Таким образом, аудиторы советуют не пользоваться возможностями новой редакции законов, вступившими в силу в 2014 г! Это связано с тем, что Российские законы вступают в силу на местах постепенно. В случае возникновения вопросов у налоговой, она может применить свое право получить пакет документов, подтверждающих право на освобождение от налогов. Такой запрос отнимет огромное количество времени у Предприятия.
Какие действия требуются от программистов:
- Новые релизы Бухгалтерии мы откатить назад не вправе! Множество различных изменений, бух отчетность и т.п. Поэтому, программисту придется сделать следующее:
- Берем СТАРУЮ редакцию 1с Бухгалтерия, до 2014 г.
- Берем старый механизм учета НДС, применяем на новой редакции.
Эти действия я опишу ниже в статье.
Давайте протестируем изменения алгоритмов 1С на типовой старой чистой конфигурации 1С Бухгалтерия!
Нас интересует конфигурация 1С Бухгалтерия до изменений в 2014 г. Такую конфигурацию ни где не скачать, есть только на старых дисках ИТС (диски информационного сопровождения от фирмы 1С)! Для этого мы скачиваем бесплатную учебную платформу 1С 8.2.. Учебная версия с ограничениями, не дающими применять ее в реальном Предприятии. Но нам как раз такая нужна, чтобы протестировать. Скачиваем также Учебную версию 1С 8.2 Бухгалтерия. Устанавливаем платформу, конфигурацию. Запускаем 1С. Мы получили чистую версию 1с Бухгалтерия без данных. Сразу скажу, что я использую обычный интерфейс, НЕ УПРАВЛЯЕМЫЙ. 1С 8.2 Бухгалтерия 2.0 обычные формы. На сайте информационной поддержки 1свы можете почитать инструкции для пользователей 1с Предприятие 2.0
- "Исправление покупки в текущем налоговом периоде"
- "Корректировка приобретения в сторону уменьшения в текущем налоговом периоде"
- "Корректировка приобретения в сторону увеличения в текущем налоговом периоде"
В этих статьях мы видим полную инструкцию по регистрации корректировки в книге продаж. Проверим работу типовых механизмов. Заполним данные. Для начала, нам понадобится создать Организацию.
Создаем Организацию, Учетную политику.
Переключимся на полный интерфейс. Для этого воспользуемся меню Сервис -- Переключить интерфейс -- Полный. Откроем список Организаций. Для этого воспользуемся меню Предприятие -- Организации. В Списке нажмем кнопку добавления.
Рис. 1. Создаем организацию. Заполняем все поля. В нашем учебном случае мы можем не заполнять поля, связанные с налоговой (ИНН, ОГРН и т.п.). В целях простоты мы заполним только наименование организации
Зададим параметры учетной политики для организации. Меню Предприятие -- Учетная политика -- Учетная политика организаций.
Рис. 2. Зададим общие сведения в учетной политике. Дата применения с 2012 г. Система налогообложения - Общая. Виды деятельности - Оказание услуг.
Рис. 2.1. Для организации создадим Учетную политику (Закладка НДС)
Рис. 2.2. Для организации зададим упрощеный учет себестоимости.
Рис. 2.3. Учет производственных расходов также упрощенный
Создаем документы "Поступление Товаров услуг", "Счет-фактура"
Рис. 3.1. Создадим поступление товаров услуг. Перед этим создадим Контрагента (заполняется только наименование) и договор Контрагента.
Рис. 3.2. Заполним закладку Услуги. В качестве счетов выберем существующие в плане счетов (если нет, создаем!) счета 20.01, 19.04.
Рис. 3.3. Создаем и проводим Счет-фактуру по Поступлению. Для этого в форме документа, в Подвале, нажмем кнопку "Счет-Фактура"
Создаем документ "Корректировка Поступления"
Рис. 4.1. На основании Поступления создаем Корректировку поступления. Для этого в форме документа воспользуемся меню Действия -- На основании -- Корректировка Поступления
Рис. 4.2. При создании на основании Поступления заполнены почти все колонки, Кроме "Сумма", "Сумма НДС". Зададим новые значения в данных колонках. Зададим суммы меньше, чем в первоначальном документе "Поступление Товаров, услуг".
Обращаю ваше внимание на галку "Восстановить НДС в книге продаж в форме документа "Корректировка поступления"! Эта галка обязательна, без нее может не сработать механизм регистрации документа в книге продаж! Об этом не пишут на сайте Информационной поддержки 1С, но я вам скажу и попрошу еще раз проверить!
4.3. Создаем и проводим Счет-фактуру по корректировке. Для этого в форме документа, в Подвале, нажмем кнопку "Счет-Фактура". Заполняем появившуюся форму. Указываем Вх. номер.
Рис. 5.1. Проверяем результаты проведения документа. Для этого нажимаем Красную Кнопку "Дт Кт" в верхней панели документа. Появившееся окно показывает проводки документа.
Рис. 5.2. Проверяем результаты проведения документа. Закладка "НДС Продажи" показывает движения по данному регистру.
Рис. 6.1 Изменим операцию корректировки на Исправление - изменятся проводки и регистры проведения! См. Закладки окна результатов проведения документа. Мы видим, что документ провелся по регистрам "НДСпреьявленный", "НДС Продажи".
Рис. 6.2. Изменим операцию корректировки на Исправление - изменятся проводки и регистры проведения! Смотрим результаты проведения по регистру "НДС Предьявленный"
Рис. 6.3. Изменим операцию корректировки на Исправление - изменятся проводки и регистры проведения! Смотрим результаты проведения по регистру "НДС покупки"
Строим отчет "Книга продаж" и "Книга покупок"
Сразу скажу, что я не произвел очень важный шаг, который рекомендует сделать сайт Информационной поддержки 1С. Я не создал и не проводил документ "Формирование записей книги покупок" и "Формирование записей книги продаж". В некоторых случаях эти документы не заполняются, а в некоторых заполняются. Зависит от конкретной хозяйственной ситуации. Более подробно вы сможете прочитать в статьях на сайте ИТС 1С. Ссылки я давал выше. В общем случае, отчет "Книга продаж" и "Книга покупок", формируются без созданных документов "Формирование записей книги покупок" и "Формирование записей книги продаж". Но в некоторых случаях, например - "Исправление корректировки в прошлом налоговом периоде", когда "Первоначально вычет НДС не принят" - требуется ввести документы, обозначенные выше. Как я понимаю, эти механизмы не всегда учтены корректно в алгоритмах 1С. Видимо, эти механизмы дописывались разными людьми. При изменениях в законодательстве требовалось быстро внести изменения в огромное количество алгоритмов. Поэтому фирма 1С ввела временный "костыль" в виде документов "Формирование записей книги покупок" и "Формирование записей книги продаж". Эти документы по своей сути вспомогательные. Они формируют промежуточные проводки и движения и не участвуют в хозяйственной деятельности. Кроме того, отчеты "Книга продаж" и "Книга покупок" могут работать формироваться даже без вышеобозначенных костылей! Таким образом, некоторые бухгалтера ошибочно не пользуются и не формируют эти документы в налоговом периоде. А зря! Это большая методологическая ошибка! 1С особо не акцентирует внимание на данном факте, но в отдельных случаях он является ключевым для правильного формирования Книги продаж и покупок! В учебных целях мы с вами пропустим данный этап, не будем формировать документы. Но на реальном предприятии они необходимы!
Рис. 7.1. Проверяем корректировку с Операцией 'Корр. по согласов. сторон' - появилась в книге Продаж!
Рис. 7.2. Проверяем корректировку с Операцией 'Исправление в первичных документах' - появилась в книге Покупок!
Рис. 8.1. Проверяем корректировку с операцией 'Исправление'. Смотрим результат проведения
Рис. 8.2. Проверяем корректировку с операцией 'Исправление'. В книге покупок за 2012 год корректировки нет!
Рис. 8.2. Проверяем корректировку с операцией 'Исправление'. Смотрим результат проведения
Рис. 8.3. Проверяем корректировку с операцией 'Исправление'. Смотрим результат проведения
Рис. 8.4. Проверяем корректировку с операцией 'Исправление'. В книге покупок за 2014 год корректировка появилась!
Рис. 8.4. Проверяем корректировку с операцией 'Корректировка по согласованию сторон'. Нет ни в книге продаж ни в книге покупок
Рис. 9.1. Смотрим, что думает народ по поводу непопадания Корректировок в книгу продаж в новых релизах Бухгалтерии
Таким образом мы видим прекрасно действующий механизм учета Корректировочных счетов-фактур в книге продаж. Механизм логичен, соответствует законодательству до 2014 г. Мы хотим применить его вместо существующего косякового механизма учета НДС в релизах 1С Бухгалтерия ПОСЛЕ 2014 г. Что для этого нужно?
- Программист с хорошей головой, который может прочитать данную статью и применить ее к рабочей конфигурации.
Итак, начнем!
Изменим код механизма учета НДС в 1С Бухгалтерия 2.0 для применения старого механизма учета.
Итак, мы берем существующую на предприятии базу 1С Бухгалтерия 2.0 (например релиз от 2015 г. (2.0.64.11) ) Открываем конфигуратор, в дереве конфигурации ищем документ "Корректировка поступления". Открываем модуль объекта документа. Ищем - Функция ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента). Заменяем текст функции на следующий текст:
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.63.5)
Функция ПодготовитьТаблицуКорректировочныеДвиженияНДС_релиз_2_0_63_5(СтруктураШапкиДокумента)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Период", Дата);
Запрос.УстановитьПараметр("СчетФактураДата",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
ИсправляемыйДокументПоступления.Дата, Дата));
Запрос.УстановитьПараметр("СчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления), Ссылка));
Запрос.УстановитьПараметр("ИсправленныйСчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки, Ссылка, Документы.ДокументРасчетовСКонтрагентом.ПустаяСсылка()));
Запрос.УстановитьПараметр("Курс", СтруктураШапкиДокумента.КурсДокумента);
Запрос.УстановитьПараметр("Кратность", СтруктураШапкиДокумента.КратностьДокумента);
Запрос.Текст =
"ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ЛОЖЬ КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор,
| ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) КАК СтатьяЗатрат,
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетЗатрат,
| ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК ПодразделениеЗатрат
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| И НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ИСТИНА КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК Период,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка КАК Регистратор,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.Субконто1 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто1
| КОГДА КорректировкаПоступленияУслуги.Субконто2 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто2
| КОГДА КорректировкаПоступленияУслуги.Субконто3 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто3
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
| КОНЕЦ КАК СтатьяЗатрат,
| КорректировкаПоступленияУслуги.ПодразделениеЗатрат,
| КорректировкаПоступленияУслуги.Субконто1,
| КорректировкаПоступленияУслуги.Субконто2,
| КорректировкаПоступленияУслуги.Субконто3
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ЛОЖЬ КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСПоставщиком) КАК Событие,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор,
| ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) КАК СтатьяЗатрат,
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетЗатрат,
| ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК ПодразделениеЗатрат
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| И НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ИСТИНА КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСПоставщиком) КАК Событие,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК Период,
| КорректировкаПоступленияУслуги.Ссылка.Организация КАК Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка КАК Регистратор,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.Субконто1 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто1
| КОГДА КорректировкаПоступленияУслуги.Субконто2 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто2
| КОГДА КорректировкаПоступленияУслуги.Субконто3 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто3
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
| КОНЕЦ КАК СтатьяЗатрат,
| КорректировкаПоступленияУслуги.ПодразделениеЗатрат,
| КорректировкаПоступленияУслуги.Субконто1,
| КорректировкаПоступленияУслуги.Субконто2,
| КорректировкаПоступленияУслуги.Субконто3
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0";
Результат = Запрос.ВыполнитьПакет();
ТаблицаВосстановлениеПоТоварам = Результат[0].Выгрузить();
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто1", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто2", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто3", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоУслугам = Результат[1].Выгрузить();
ТаблицаВычетПоТоварам = Результат[2].Выгрузить();
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто1", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто2", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто3", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоУслугам = Результат[3].Выгрузить();
Возврат Новый Структура("ТаблицаВосстановлениеПоТоварам, ТаблицаВосстановлениеПоУслугам, ТаблицаВычетПоТоварам, ТаблицаВычетПоУслугам",
ТаблицаВосстановлениеПоТоварам, ТаблицаВосстановлениеПоУслугам, ТаблицаВычетПоТоварам, ТаблицаВычетПоУслугам);
КонецФункции
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Функция ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Период", Дата);
Запрос.УстановитьПараметр("СчетФактураДата",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
ИсправляемыйДокументПоступления.Дата, Дата));
Запрос.УстановитьПараметр("СчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления), Ссылка));
Запрос.УстановитьПараметр("ИсправленныйСчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки, Ссылка, Документы.ДокументРасчетовСКонтрагентом.ПустаяСсылка()));
Запрос.УстановитьПараметр("Курс", СтруктураШапкиДокумента.КурсДокумента);
Запрос.УстановитьПараметр("Кратность", СтруктураШапкиДокумента.КратностьДокумента);
Запрос.Текст =
"ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ЛОЖЬ КАК ЭтоУслуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| И (НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &СчетФактура,
| &ИсправленныйСчетФактура,
| ""Восстановление НДС"",
| ИСТИНА,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС),
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма
| ИНАЧЕ 0
| КОНЕЦ,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ,
| ЛОЖЬ,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ЛОЖЬ КАК ЭтоУслуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСКВычету) КАК Событие,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| И (НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &СчетФактура,
| &ИсправленныйСчетФактура,
| ""НДС"",
| ИСТИНА,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСКВычету),
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| ЛОЖЬ,
| ДАТАВРЕМЯ(1, 1, 1),
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0";
Результат = Запрос.ВыполнитьПакет();
ТаблицаВосстановление = Результат[0].Выгрузить();
ТаблицаВычет = Результат[1].Выгрузить();
Для Каждого СтрокаТаблицы Из ТаблицаВосстановление Цикл
СтрокаТаблицы.ВидЦенности = УчетНДС.ОпределитьВидЦенности(
СтрокаТаблицы.Номенклатура, СтрокаТаблицы.СчетУчета, , , , , СтрокаТаблицы.ЭтоУслуга);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаВычет Цикл
СтрокаТаблицы.ВидЦенности = УчетНДС.ОпределитьВидЦенности(
СтрокаТаблицы.Номенклатура, СтрокаТаблицы.СчетУчета, , , , , СтрокаТаблицы.ЭтоУслуга);
КонецЦикла;
Возврат Новый Структура("ТаблицаВосстановление, ТаблицаВычет", ТаблицаВосстановление, ТаблицаВычет);
КонецФункции
В данном коде есть текст функции из релиза (2.0.63.5), который сделан недействующим (изменено имя процедуры). Добавлен текст функции из релиза (2.0.37.8) Суть - в другом тексте запроса. Что мы получили? Старый текст процедуры (до изменения) + новый текст процедуры, который уже действует. Итак, продолжим. В модуле (документа Корректировка Поступления) ищем - Процедура СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента) Заменяем текст на следующее:
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.63.5)
Процедура СформироватьКорректировочныеДвиженияНДС_релиз_2_0_63_5(СтруктураШапкиДокумента)
СтруктураТаблиц = ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычетПоТоварам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычетПоУслугам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановлениеПоУслугам, СтруктураШапкиДокумента, Истина);
ТаблицаВосстановление = СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(СтруктураТаблиц.ТаблицаВосстановлениеПоУслугам, СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам);
Если ВосстановитьНДС Тогда
ТаблицаВосстановление = ПодготовитьТаблицуВосстановленияНДССУчетомПропорции(ТаблицаВосстановление);
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, ТаблицаВосстановление);
КонецЕсли;
// Движения по регистру "НДС предъявленный" приход предъявленного НДС, списание включенного в стоимость НДС
ТаблицаВычет = СтруктураТаблиц.ТаблицаВычетПоТоварам;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(СтруктураТаблиц.ТаблицаВычетПоУслугам, СтруктураТаблиц.ТаблицаВычетПоТоварам);
СформироватьДвиженияНДСПредъявленный(ТаблицаВычет);
ТаблицаНДСВключенныйВСтоимость = ПодготовитьТаблицуНДССУчетомПропорции(ТаблицаВычет);
СформироватьДвиженияНДСПредъявленный(ТаблицаНДСВключенныйВСтоимость, Истина);
КонецПроцедуры
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Процедура СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы)
СтруктураТаблиц = ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычет, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановление, СтруктураШапкиДокумента, Истина);
Если ВосстановитьНДС Тогда
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, СтруктураТаблиц.ТаблицаВосстановление);
КонецЕсли;
Если ЕстьКосвенныеРасходы Тогда
// НДС принят к вычету в пропорции определенной согласно п.4 ст.170 НК РФ
ТаблицаВычетНДС = ПодготовитьТаблицуВычетНДССУчетомПропорции(СтруктураТаблиц.ТаблицаВычет);
Иначе
// НДС будет предъявлен к вычету по строкам на увеличение стоимости
ТаблицаВычетНДС = СтруктураТаблиц.ТаблицаВычет;
КонецЕсли;
СформироватьДвиженияНДСПредъявленный(ТаблицаВычетНДС);
КонецПроцедуры
Добавляем новую процедуру
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Функция ПроверитьНаличиеКосвенныхРасходов()
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ИсправляемыйСчетФактура", УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления, Истина));
Запрос.УстановитьПараметр("МоментДокумента", Новый Граница(МоментВремени(), ВидГраницы.Исключая));
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| НДСКосвенныеРасходыОбороты.СчетФактура
|ИЗ
| РегистрНакопления.НДСКосвенныеРасходы.Обороты(
| ,
| &МоментДокумента,
| Регистратор,
| Организация = &Организация
| И СчетФактура = &ИсправляемыйСчетФактура) КАК НДСКосвенныеРасходыОбороты";
Результат = Запрос.Выполнить();
Возврат НЕ Результат.Пустой();
КонецФункции
Вносим изменения в существующий процедуры (добавлены строки). См. текст ниже:
Процедура СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы, СтруктураТаблицСторноНДС)
ИсправляемыйДокумент = УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления);
Если ТипЗнч(ИсправляемыйДокумент) = Тип("ДокументСсылка.КорректировкаПоступления") Тогда
// Сторно движений исправляемого документа
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС.КнигаПродаж, Истина);
// Новые движения по исправленному корректировочному счету-фактуре
// Лунегов П.В. +++
// до изменений:
//СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
Иначе
ТаблицыДокумента = ПодготовитьТаблицуВычетНДСНаОснованииДокумента(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицыДокумента.ТаблицаТовары, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицыДокумента.ТаблицаУслуги, СтруктураШапкиДокумента, Истина);
ТаблицаДокумента = ТаблицыДокумента.ТаблицаТовары;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицыДокумента.ТаблицаУслуги, ТаблицаДокумента);
// Движения по регистру "НДС предъявленный" приход предъявленного НДС, списание включенного в стоимость НДС
СформироватьДвиженияНДСПредъявленный(ТаблицаДокумента);
ТаблицаНДСВключенныйВСтоимость = ПодготовитьТаблицуНДССУчетомПропорции(ТаблицаДокумента);
СформироватьДвиженияНДСПредъявленный(ТаблицаНДСВключенныйВСтоимость, Истина);
КонецЕсли;
КонецПроцедуры
Процедура ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС, ЕстьКосвенныеРасходы)
Если ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки Тогда // Исправительный счет-фактура
// Сторно движений исправляемого документа
СформироватьДвиженияЗаписьКнигиПокупок(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС.КнигаПокупок);
СформироватьДвиженияНДСПредъявленный(СтруктураТаблицСторноНДС.НДСПредъявленный, Истина);
// Лунегов П.В. +++
// до изменений:
//СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы, СтруктураТаблицСторноНДС);
// Лунегов П.В. ---
Иначе // Корректировочный счет-фактура
// Лунегов П.В. +++
// до изменений:
//СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
КонецЕсли;
ТаблицаКорректировкаНДСКосвенныхРасходов = ПодготовитьТаблицуКорректировкаНДСКосвенныхРасходов(СтруктураШапкиДокумента);
СформироватьДвиженияНДСКосвенныеРасходы(СтруктураШапкиДокумента, ТаблицаКорректировкаНДСКосвенныхРасходов);
ТаблицаКорректировкаНДСПоПартиямЗапасов = ПодготовитьТаблицуКорректировкаНДСПоПартиямЗапасов(СтруктураШапкиДокумента);
СформироватьДвиженияКорректировкаНДСПоПартиямЗапасов(ТаблицаКорректировкаНДСПоПартиямЗапасов);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Перем СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов;
УчетнаяПолитикаНеЗадана = Ложь;
мУчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(Дата, УчетнаяПолитикаНеЗадана, Организация);
БУ = ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахНТТ.ПолучитьОбъект();
мИспользоватьОборотнуюНоменклатуру = ?(БУ.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура, "ВидСубконто") = Неопределено, Ложь, Истина);
мРазделятьПоСтавкамНДС = ?(БУ.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтавкиНДС, "ВидСубконто") = Неопределено, Ложь, Истина);
мУчетВПродажныхЦенах = Ложь;
Если мУчетнаяПолитика.Количество() > 0 Тогда
Если (мУчетнаяПолитика.СпособОценкиТоваровВРознице = Перечисления.СпособыОценкиТоваровВРознице.ПоПродажнойСтоимости) Тогда
мУчетВПродажныхЦенах = Истина;
КонецЕсли;
КонецЕсли;
ВидОперацииДокументаПоступления = ?(ТипЗнч(ИсправляемыйДокументПоступления) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг"),
ИсправляемыйДокументПоступления.ВидОперации,
Неопределено);
РозницаВПродажныхЦенах = ((НЕ Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый)
И мУчетВПродажныхЦенах
И (ВидОперацииДокументаПоступления = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия)
И (НЕ ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом));
// Заголовок для сообщений об ошибках проведения.
Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
КорректируетЗакрытыйПериод = Ложь;
НастройкаПравДоступа.ПроверкаПериодаЗаписейРегистров(Движения.Хозрасчетный, КорректируетЗакрытыйПериод);
Если КорректируетЗакрытыйПериод Тогда
ТекстСообщения = "Часть движений документа относятся к периоду, закрытому от редактирования. Документ не перепроведен.";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, ,Заголовок);
Возврат
КонецЕсли;
// Проверка ручной корректировки
Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
// Проверим правильность заполнения шапки документа
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если НЕ (КорректироватьБУиНУ или КорректироватьНДС) Тогда
Возврат;
КонецЕсли;
ПодготовитьСтруктуруШапкиДокумента(Заголовок, СтруктураШапкиДокумента, Отказ);
Если КорректироватьБУиНУ Тогда
ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов);
// Проверить заполнение ТЧ
ПроверитьЗаполнениеТабличнойЧастиТовары(ТаблицаПоТоварамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиУслуги(ТаблицаПоУслугамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиАгентскиеУслуги(ТаблицаПоАгентскимУслугамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
// Движения по документу
ПартионныйУчет = УправлениеЗапасами.ВедетсяПартионныйУчет(ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(КонецМесяца(Дата), Отказ, Организация), "БУ");
мПоддержкаПБУ18 = НалоговыйУчет.ПрименениеПБУ18(Организация, Дата);
// Подготовка данных для движений по учету НДС по данным ИБ
СтруктураТаблицСторноНДС = ПодготовитьСтруктуруТаблицСторнирующихНДСЗаписей();
// Лунегов П.В. +++
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
ЕстьКосвенныеРасходы = ПроверитьНаличиеКосвенныхРасходов();
// Лунегов П.В. ---
Если НЕ Отказ Тогда
Если КорректироватьБУиНУ Тогда
// Данилина +
//ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
// ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов, Отказ, Заголовок);
УК_БухгалтерскийУчет.СформироватьПроводкиКорректировкиПоступления(Ссылка, Движения.Хозрасчетный, СтруктураШапкиДокумента, Отказ);
// Данилина -
КонецЕсли;
// Движения по учету НДС
Если НЕ СтруктураШапкиДокумента.ОрганизацияПрименяетУСН
И НЕ СтруктураШапкиДокумента.ОрганизацияПрименяетОсобыйПорядокНалогообложения
И СтруктураШапкиДокумента.УчитыватьНДС Тогда
// Лунегов П.В. +++
// до изменений:
//ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
КонецЕсли;
КонецЕсли;
Если НЕ Отказ Тогда
Движения.Записать();
УчетНДС.ПроверитьСоответствиеРеквизитовСчетаФактуры(ЭтотОбъект, "СчетФактураПолученный");
КонецЕсли;
КонецПроцедуры // ОбработкаПроведения()
Вот полный текст со всеми изменениями (Для проверки):
//////////////////////////////////////////////////////////////////////////////////////
// Модуль объекта документа КорректировкаПоступления
//////////////////////////////////////////////////////////////////////////////////////
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.63.5)
Функция ПодготовитьТаблицуКорректировочныеДвиженияНДС_релиз_2_0_63_5(СтруктураШапкиДокумента)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Период", Дата);
Запрос.УстановитьПараметр("СчетФактураДата",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
ИсправляемыйДокументПоступления.Дата, Дата));
Запрос.УстановитьПараметр("СчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления), Ссылка));
Запрос.УстановитьПараметр("ИсправленныйСчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки, Ссылка, Документы.ДокументРасчетовСКонтрагентом.ПустаяСсылка()));
Запрос.УстановитьПараметр("Курс", СтруктураШапкиДокумента.КурсДокумента);
Запрос.УстановитьПараметр("Кратность", СтруктураШапкиДокумента.КратностьДокумента);
Запрос.Текст =
"ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ЛОЖЬ КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор,
| ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) КАК СтатьяЗатрат,
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетЗатрат,
| ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК ПодразделениеЗатрат
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| И НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ИСТИНА КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК Период,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка КАК Регистратор,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.Субконто1 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто1
| КОГДА КорректировкаПоступленияУслуги.Субконто2 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто2
| КОГДА КорректировкаПоступленияУслуги.Субконто3 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто3
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
| КОНЕЦ КАК СтатьяЗатрат,
| КорректировкаПоступленияУслуги.ПодразделениеЗатрат,
| КорректировкаПоступленияУслуги.Субконто1,
| КорректировкаПоступленияУслуги.Субконто2,
| КорректировкаПоступленияУслуги.Субконто3
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ЛОЖЬ КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСПоставщиком) КАК Событие,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор,
| ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка) КАК СтатьяЗатрат,
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетЗатрат,
| ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК ПодразделениеЗатрат
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| И НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ИСТИНА КАК Услуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСПоставщиком) КАК Событие,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата КАК Период,
| КорректировкаПоступленияУслуги.Ссылка.Организация КАК Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка КАК Регистратор,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.Субконто1 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто1
| КОГДА КорректировкаПоступленияУслуги.Субконто2 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто2
| КОГДА КорректировкаПоступленияУслуги.Субконто3 ССЫЛКА Справочник.СтатьиЗатрат
| ТОГДА КорректировкаПоступленияУслуги.Субконто3
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СтатьиЗатрат.ПустаяСсылка)
| КОНЕЦ КАК СтатьяЗатрат,
| КорректировкаПоступленияУслуги.ПодразделениеЗатрат,
| КорректировкаПоступленияУслуги.Субконто1,
| КорректировкаПоступленияУслуги.Субконто2,
| КорректировкаПоступленияУслуги.Субконто3
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0";
Результат = Запрос.ВыполнитьПакет();
ТаблицаВосстановлениеПоТоварам = Результат[0].Выгрузить();
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто1", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто2", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоТоварам.Колонки.Добавить("Субконто3", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВосстановлениеПоУслугам = Результат[1].Выгрузить();
ТаблицаВычетПоТоварам = Результат[2].Выгрузить();
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто1", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто2", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоТоварам.Колонки.Добавить("Субконто3", Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип);
ТаблицаВычетПоУслугам = Результат[3].Выгрузить();
Возврат Новый Структура("ТаблицаВосстановлениеПоТоварам, ТаблицаВосстановлениеПоУслугам, ТаблицаВычетПоТоварам, ТаблицаВычетПоУслугам",
ТаблицаВосстановлениеПоТоварам, ТаблицаВосстановлениеПоУслугам, ТаблицаВычетПоТоварам, ТаблицаВычетПоУслугам);
КонецФункции
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Функция ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Период", Дата);
Запрос.УстановитьПараметр("СчетФактураДата",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
ИсправляемыйДокументПоступления.Дата, Дата));
Запрос.УстановитьПараметр("СчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки,
УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления), Ссылка));
Запрос.УстановитьПараметр("ИсправленныйСчетФактура",
?(ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки, Ссылка, Документы.ДокументРасчетовСКонтрагентом.ПустаяСсылка()));
Запрос.УстановитьПараметр("Курс", СтруктураШапкиДокумента.КурсДокумента);
Запрос.УстановитьПараметр("Кратность", СтруктураШапкиДокумента.КратностьДокумента);
Запрос.Текст =
"ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""Восстановление НДС"" КАК Содержание,
| ЛОЖЬ КАК ЭтоУслуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС) КАК Событие,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| ТОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ КАК КорректируемыйПериод,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма > 0
| И (НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &СчетФактура,
| &ИсправленныйСчетФактура,
| ""Восстановление НДС"",
| ИСТИНА,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС),
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
| ТОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма
| ИНАЧЕ 0
| КОНЕЦ,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| ВЫБОР
| КОГДА КОНЕЦПЕРИОДА(&Период, КВАРТАЛ) = КОНЕЦПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1)
| ИНАЧЕ НАЧАЛОПЕРИОДА(&СчетФактураДата, КВАРТАЛ)
| КОНЕЦ,
| ЛОЖЬ,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &СчетФактура КАК СчетФактура,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ""НДС"" КАК Содержание,
| ЛОЖЬ КАК ЭтоУслуга,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка) КАК ВидЦенности,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСКВычету) КАК Событие,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| ДАТАВРЕМЯ(1, 1, 1) КАК КорректируемыйПериод,
| КорректировкаПоступленияТовары.Номенклатура,
| КорректировкаПоступленияТовары.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаНДСДоКорректировки - КорректировкаПоступленияТовары.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК НДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| ТОГДА (КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| КорректировкаПоступленияТовары.СчетУчета,
| КорректировкаПоступленияТовары.СчетУчетаНДС,
| КорректировкаПоступленияТовары.Ссылка.Дата КАК Период,
| КорректировкаПоступленияТовары.Ссылка.Организация,
| КорректировкаПоступленияТовары.Ссылка.Контрагент КАК Поставщик,
| КорректировкаПоступленияТовары.НомерСтроки,
| КорректировкаПоступленияТовары.Ссылка КАК Регистратор
|ИЗ
| Документ.КорректировкаПоступления.Товары КАК КорректировкаПоступленияТовары
|ГДЕ
| КорректировкаПоступленияТовары.Ссылка = &Ссылка
| И КорректировкаПоступленияТовары.СуммаДоКорректировки - КорректировкаПоступленияТовары.Сумма < 0
| И (НЕ КорректировкаПоступленияТовары.СчетУчета.Забалансовый)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &СчетФактура,
| &ИсправленныйСчетФактура,
| ""НДС"",
| ИСТИНА,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСКВычету),
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| ЛОЖЬ,
| ДАТАВРЕМЯ(1, 1, 1),
| КорректировкаПоступленияУслуги.Номенклатура,
| КорректировкаПоступленияУслуги.СтавкаНДС,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаНДСДоКорректировки - КорректировкаПоступленияУслуги.СуммаНДС) * -1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0
| ТОГДА (КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма) * -1
| ИНАЧЕ 0
| КОНЕЦ,
| КорректировкаПоступленияУслуги.СчетЗатрат,
| КорректировкаПоступленияУслуги.СчетУчетаНДС,
| КорректировкаПоступленияУслуги.Ссылка.Дата,
| КорректировкаПоступленияУслуги.Ссылка.Организация,
| КорректировкаПоступленияУслуги.Ссылка.Контрагент,
| КорректировкаПоступленияУслуги.НомерСтроки,
| КорректировкаПоступленияУслуги.Ссылка
|ИЗ
| Документ.КорректировкаПоступления.Услуги КАК КорректировкаПоступленияУслуги
|ГДЕ
| КорректировкаПоступленияУслуги.Ссылка = &Ссылка
| И КорректировкаПоступленияУслуги.СуммаДоКорректировки - КорректировкаПоступленияУслуги.Сумма < 0";
Результат = Запрос.ВыполнитьПакет();
ТаблицаВосстановление = Результат[0].Выгрузить();
ТаблицаВычет = Результат[1].Выгрузить();
Для Каждого СтрокаТаблицы Из ТаблицаВосстановление Цикл
СтрокаТаблицы.ВидЦенности = УчетНДС.ОпределитьВидЦенности(
СтрокаТаблицы.Номенклатура, СтрокаТаблицы.СчетУчета, , , , , СтрокаТаблицы.ЭтоУслуга);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаВычет Цикл
СтрокаТаблицы.ВидЦенности = УчетНДС.ОпределитьВидЦенности(
СтрокаТаблицы.Номенклатура, СтрокаТаблицы.СчетУчета, , , , , СтрокаТаблицы.ЭтоУслуга);
КонецЦикла;
Возврат Новый Структура("ТаблицаВосстановление, ТаблицаВычет", ТаблицаВосстановление, ТаблицаВычет);
КонецФункции
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.63.5)
Процедура СформироватьКорректировочныеДвиженияНДС_релиз_2_0_63_5(СтруктураШапкиДокумента)
СтруктураТаблиц = ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычетПоТоварам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычетПоУслугам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановлениеПоУслугам, СтруктураШапкиДокумента, Истина);
ТаблицаВосстановление = СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(СтруктураТаблиц.ТаблицаВосстановлениеПоУслугам, СтруктураТаблиц.ТаблицаВосстановлениеПоТоварам);
Если ВосстановитьНДС Тогда
ТаблицаВосстановление = ПодготовитьТаблицуВосстановленияНДССУчетомПропорции(ТаблицаВосстановление);
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, ТаблицаВосстановление);
КонецЕсли;
// Движения по регистру "НДС предъявленный" приход предъявленного НДС, списание включенного в стоимость НДС
ТаблицаВычет = СтруктураТаблиц.ТаблицаВычетПоТоварам;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(СтруктураТаблиц.ТаблицаВычетПоУслугам, СтруктураТаблиц.ТаблицаВычетПоТоварам);
СформироватьДвиженияНДСПредъявленный(ТаблицаВычет);
ТаблицаНДСВключенныйВСтоимость = ПодготовитьТаблицуНДССУчетомПропорции(ТаблицаВычет);
СформироватьДвиженияНДСПредъявленный(ТаблицаНДСВключенныйВСтоимость, Истина);
КонецПроцедуры
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Процедура СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы)
СтруктураТаблиц = ПодготовитьТаблицуКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВычет, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(СтруктураТаблиц.ТаблицаВосстановление, СтруктураШапкиДокумента, Истина);
Если ВосстановитьНДС Тогда
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, СтруктураТаблиц.ТаблицаВосстановление);
КонецЕсли;
Если ЕстьКосвенныеРасходы Тогда
// НДС принят к вычету в пропорции определенной согласно п.4 ст.170 НК РФ
ТаблицаВычетНДС = ПодготовитьТаблицуВычетНДССУчетомПропорции(СтруктураТаблиц.ТаблицаВычет);
Иначе
// НДС будет предъявлен к вычету по строкам на увеличение стоимости
ТаблицаВычетНДС = СтруктураТаблиц.ТаблицаВычет;
КонецЕсли;
СформироватьДвиженияНДСПредъявленный(ТаблицаВычетНДС);
КонецПроцедуры
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Функция ПодготовитьТаблицуВычетНДССУчетомПропорции(ТаблицаДокумента)
ТаблицаКоэффициентов = ПодготовитьТаблицуКоэффициентов();
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ИсправляемыйДокумент", УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления));
Запрос.УстановитьПараметр("ТаблицаДокумента", ТаблицаДокумента);
Запрос.УстановитьПараметр("ТаблицаКоэффициентов", ТаблицаКоэффициентов);
Запрос.УстановитьПараметр("МоментДокумента", Новый Граница(МоментВремени(), ВидГраницы.Исключая));
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаДокумента.ВидЦенности КАК ВидЦенности,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаБезНДС КАК СуммаБезНДС,
| ТаблицаДокумента.НДС КАК НДС,
| ТаблицаДокумента.Регистратор КАК Регистратор,
| ТаблицаДокумента.Период КАК Период,
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаДокумента.Поставщик КАК Поставщик,
| ТаблицаДокумента.Событие КАК Событие,
| ТаблицаДокумента.ДатаСобытия КАК ДатаСобытия,
| ТаблицаДокумента.СчетФактура КАК СчетФактура,
| ТаблицаДокумента.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ТаблицаДокумента.СчетУчетаНДС КАК СчетУчетаНДС
|ПОМЕСТИТЬ ВТТаблицаДокумента
|ИЗ
| &ТаблицаДокумента КАК ТаблицаДокумента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаДокумента.ВидЦенности КАК ВидЦенности,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| СУММА(ТаблицаДокумента.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(ТаблицаДокумента.НДС) КАК НДС,
| ТаблицаДокумента.Регистратор КАК Регистратор,
| ТаблицаДокумента.Период КАК Период,
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаДокумента.Поставщик КАК Поставщик,
| ТаблицаДокумента.Событие КАК Событие,
| ТаблицаДокумента.ДатаСобытия КАК ДатаСобытия,
| ТаблицаДокумента.СчетФактура КАК СчетФактура,
| ТаблицаДокумента.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ТаблицаДокумента.СчетУчетаНДС КАК СчетУчетаНДС
|ПОМЕСТИТЬ ВТСгруппированнаяТаблицаДокумента
|ИЗ
| ВТТаблицаДокумента КАК ТаблицаДокумента
|
|СГРУППИРОВАТЬ ПО
| ТаблицаДокумента.ВидЦенности,
| ТаблицаДокумента.СтавкаНДС,
| ТаблицаДокумента.Регистратор,
| ТаблицаДокумента.Период,
| ТаблицаДокумента.Организация,
| ТаблицаДокумента.Поставщик,
| ТаблицаДокумента.Событие,
| ТаблицаДокумента.ДатаСобытия,
| ТаблицаДокумента.СчетФактура,
| ТаблицаДокумента.ИсправленныйСчетФактура,
| ТаблицаДокумента.СчетУчетаНДС
|
|ИНДЕКСИРОВАТЬ ПО
| ВидЦенности,
| СтавкаНДС,
| СчетУчетаНДС
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаКоэффициентов.ВидЦенности КАК ВидЦенности,
| ТаблицаКоэффициентов.СтавкаНДС КАК СтавкаНДС,
| ТаблицаКоэффициентов.СчетУчетаНДС КАК СчетУчетаНДС,
| ТаблицаКоэффициентов.НДСКоэффициент КАК НДСКоэффициент,
| ТаблицаКоэффициентов.СуммаБезНДСКоэффициент КАК СуммаБезНДСКоэффициент
|ПОМЕСТИТЬ ВТТаблицаКоэффициентов
|ИЗ
| &ТаблицаКоэффициентов КАК ТаблицаКоэффициентов
|
|ИНДЕКСИРОВАТЬ ПО
| ВидЦенности,
| СтавкаНДС,
| СчетУчетаНДС
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТСгруппированнаяТаблицаДокумента.ВидЦенности,
| ВТСгруппированнаяТаблицаДокумента.СтавкаНДС,
| ВТСгруппированнаяТаблицаДокумента.СуммаБезНДС * ЕСТЬNULL(ВТТаблицаКоэффициентов.СуммаБезНДСКоэффициент, 1) КАК СуммаБезНДС,
| ВТСгруппированнаяТаблицаДокумента.НДС * ЕСТЬNULL(ВТТаблицаКоэффициентов.НДСКоэффициент, 1) КАК НДС,
| ВТСгруппированнаяТаблицаДокумента.Регистратор,
| ВТСгруппированнаяТаблицаДокумента.Период,
| ВТСгруппированнаяТаблицаДокумента.Организация,
| ВТСгруппированнаяТаблицаДокумента.Поставщик,
| ВТСгруппированнаяТаблицаДокумента.Событие,
| ВТСгруппированнаяТаблицаДокумента.ДатаСобытия,
| ВТСгруппированнаяТаблицаДокумента.СчетФактура,
| ВТСгруппированнаяТаблицаДокумента.ИсправленныйСчетФактура,
| ВТСгруппированнаяТаблицаДокумента.СчетУчетаНДС
|ИЗ
| ВТСгруппированнаяТаблицаДокумента КАК ВТСгруппированнаяТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВТТаблицаКоэффициентов КАК ВТТаблицаКоэффициентов
| ПО ВТСгруппированнаяТаблицаДокумента.ВидЦенности = ВТТаблицаКоэффициентов.ВидЦенности
| И ВТСгруппированнаяТаблицаДокумента.СтавкаНДС = ВТТаблицаКоэффициентов.СтавкаНДС
| И ВТСгруппированнаяТаблицаДокумента.СчетУчетаНДС = ВТТаблицаКоэффициентов.СчетУчетаНДС";
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
// Лунегов П.В. после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Функция ПроверитьНаличиеКосвенныхРасходов()
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ИсправляемыйСчетФактура", УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления, Истина));
Запрос.УстановитьПараметр("МоментДокумента", Новый Граница(МоментВремени(), ВидГраницы.Исключая));
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| НДСКосвенныеРасходыОбороты.СчетФактура
|ИЗ
| РегистрНакопления.НДСКосвенныеРасходы.Обороты(
| ,
| &МоментДокумента,
| Регистратор,
| Организация = &Организация
| И СчетФактура = &ИсправляемыйСчетФактура) КАК НДСКосвенныеРасходыОбороты";
Результат = Запрос.Выполнить();
Возврат НЕ Результат.Пустой();
КонецФункции
Процедура СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы, СтруктураТаблицСторноНДС)
ИсправляемыйДокумент = УчетНДС.ПолучитьИсправляемыйДокументПоступления(ДокументПоступления);
Если ТипЗнч(ИсправляемыйДокумент) = Тип("ДокументСсылка.КорректировкаПоступления") Тогда
// Сторно движений исправляемого документа
СформироватьДвиженияЗаписьКнигиПродаж(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС.КнигаПродаж, Истина);
// Новые движения по исправленному корректировочному счету-фактуре
// Лунегов П.В. +++
// до изменений:
//СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
Иначе
ТаблицыДокумента = ПодготовитьТаблицуВычетНДСНаОснованииДокумента(СтруктураШапкиДокумента);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицыДокумента.ТаблицаТовары, СтруктураШапкиДокумента, Истина);
БухгалтерскийУчетРасчетовСКонтрагентами.ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицыДокумента.ТаблицаУслуги, СтруктураШапкиДокумента, Истина);
ТаблицаДокумента = ТаблицыДокумента.ТаблицаТовары;
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицыДокумента.ТаблицаУслуги, ТаблицаДокумента);
// Движения по регистру "НДС предъявленный" приход предъявленного НДС, списание включенного в стоимость НДС
СформироватьДвиженияНДСПредъявленный(ТаблицаДокумента);
ТаблицаНДСВключенныйВСтоимость = ПодготовитьТаблицуНДССУчетомПропорции(ТаблицаДокумента);
СформироватьДвиженияНДСПредъявленный(ТаблицаНДСВключенныйВСтоимость, Истина);
КонецЕсли;
КонецПроцедуры
Процедура ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС, ЕстьКосвенныеРасходы)
Если ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.ИсправлениеОшибки Тогда // Исправительный счет-фактура
// Сторно движений исправляемого документа
СформироватьДвиженияЗаписьКнигиПокупок(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС.КнигаПокупок);
СформироватьДвиженияНДСПредъявленный(СтруктураТаблицСторноНДС.НДСПредъявленный, Истина);
// Лунегов П.В. +++
// до изменений:
//СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьИсправительныеДвижения(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы, СтруктураТаблицСторноНДС);
// Лунегов П.В. ---
Иначе // Корректировочный счет-фактура
// Лунегов П.В. +++
// до изменений:
//СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
СформироватьКорректировочныеДвиженияНДС(СтруктураШапкиДокумента, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
КонецЕсли;
ТаблицаКорректировкаНДСКосвенныхРасходов = ПодготовитьТаблицуКорректировкаНДСКосвенныхРасходов(СтруктураШапкиДокумента);
СформироватьДвиженияНДСКосвенныеРасходы(СтруктураШапкиДокумента, ТаблицаКорректировкаНДСКосвенныхРасходов);
ТаблицаКорректировкаНДСПоПартиямЗапасов = ПодготовитьТаблицуКорректировкаНДСПоПартиямЗапасов(СтруктураШапкиДокумента);
СформироватьДвиженияКорректировкаНДСПоПартиямЗапасов(ТаблицаКорректировкаНДСПоПартиямЗапасов);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Перем СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов;
УчетнаяПолитикаНеЗадана = Ложь;
мУчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(Дата, УчетнаяПолитикаНеЗадана, Организация);
БУ = ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахНТТ.ПолучитьОбъект();
мИспользоватьОборотнуюНоменклатуру = ?(БУ.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура, "ВидСубконто") = Неопределено, Ложь, Истина);
мРазделятьПоСтавкамНДС = ?(БУ.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтавкиНДС, "ВидСубконто") = Неопределено, Ложь, Истина);
мУчетВПродажныхЦенах = Ложь;
Если мУчетнаяПолитика.Количество() > 0 Тогда
Если (мУчетнаяПолитика.СпособОценкиТоваровВРознице = Перечисления.СпособыОценкиТоваровВРознице.ПоПродажнойСтоимости) Тогда
мУчетВПродажныхЦенах = Истина;
КонецЕсли;
КонецЕсли;
ВидОперацииДокументаПоступления = ?(ТипЗнч(ИсправляемыйДокументПоступления) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг"),
ИсправляемыйДокументПоступления.ВидОперации,
Неопределено);
РозницаВПродажныхЦенах = ((НЕ Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый)
И мУчетВПродажныхЦенах
И (ВидОперацииДокументаПоступления = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия)
И (НЕ ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом));
// Заголовок для сообщений об ошибках проведения.
Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
КорректируетЗакрытыйПериод = Ложь;
НастройкаПравДоступа.ПроверкаПериодаЗаписейРегистров(Движения.Хозрасчетный, КорректируетЗакрытыйПериод);
Если КорректируетЗакрытыйПериод Тогда
ТекстСообщения = "Часть движений документа относятся к периоду, закрытому от редактирования. Документ не перепроведен.";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, ,Заголовок);
Возврат
КонецЕсли;
// Проверка ручной корректировки
Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
// Проверим правильность заполнения шапки документа
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если НЕ (КорректироватьБУиНУ или КорректироватьНДС) Тогда
Возврат;
КонецЕсли;
ПодготовитьСтруктуруШапкиДокумента(Заголовок, СтруктураШапкиДокумента, Отказ);
Если КорректироватьБУиНУ Тогда
ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов);
// Проверить заполнение ТЧ
ПроверитьЗаполнениеТабличнойЧастиТовары(ТаблицаПоТоварамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиУслуги(ТаблицаПоУслугамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиАгентскиеУслуги(ТаблицаПоАгентскимУслугамПосле, СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
// Движения по документу
ПартионныйУчет = УправлениеЗапасами.ВедетсяПартионныйУчет(ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(КонецМесяца(Дата), Отказ, Организация), "БУ");
мПоддержкаПБУ18 = НалоговыйУчет.ПрименениеПБУ18(Организация, Дата);
// Подготовка данных для движений по учету НДС по данным ИБ
СтруктураТаблицСторноНДС = ПодготовитьСтруктуруТаблицСторнирующихНДСЗаписей();
// Лунегов П.В. +++
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
ЕстьКосвенныеРасходы = ПроверитьНаличиеКосвенныхРасходов();
// Лунегов П.В. ---
Если НЕ Отказ Тогда
Если КорректироватьБУиНУ Тогда
// Данилина +
//ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварамДо, ТаблицаПоУслугамДо, ТаблицаПоАгентскимУслугамДо,
// ТаблицаПоТоварамПосле, ТаблицаПоУслугамПосле, ТаблицаПоАгентскимУслугамПосле, ТаблицыРасчетов, Отказ, Заголовок);
УК_БухгалтерскийУчет.СформироватьПроводкиКорректировкиПоступления(Ссылка, Движения.Хозрасчетный, СтруктураШапкиДокумента, Отказ);
// Данилина -
КонецЕсли;
// Движения по учету НДС
Если НЕ СтруктураШапкиДокумента.ОрганизацияПрименяетУСН
И НЕ СтруктураШапкиДокумента.ОрганизацияПрименяетОсобыйПорядокНалогообложения
И СтруктураШапкиДокумента.УчитыватьНДС Тогда
// Лунегов П.В. +++
// до изменений:
//ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС);
// после изменений:
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
ДвиженияПоРегистрамНДС(СтруктураШапкиДокумента, СтруктураТаблицСторноНДС, ЕстьКосвенныеРасходы);
// Лунегов П.В. ---
КонецЕсли;
КонецЕсли;
Если НЕ Отказ Тогда
Движения.Записать();
УчетНДС.ПроверитьСоответствиеРеквизитовСчетаФактуры(ЭтотОбъект, "СчетФактураПолученный");
КонецЕсли;
КонецПроцедуры // ОбработкаПроведения()
Далее открываем общий модуль БухгалтерскийУчетРасчетовСКонтрагентами. Вносим изменения в текст функции ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицаЗначений, СтруктураШапкиДокумента, ВключитьНДСВОсновнуюСумму, ВалютаРегламентированногоУчета = ""):
//////////////////////////////////////////////////////////////////////////////////////
// Общий модуль БухгалтерскийУчетРасчетовСКонтрагентами
//////////////////////////////////////////////////////////////////////////////////////
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.63.5)
// Процедура подготовки таблицы значений для целей приобретения и реализации
Процедура ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации_релиз_2_0_63_5(ТаблицаЗначений, СтруктураШапкиДокумента, ВключитьНДСВОсновнуюСумму, ВалютаРегламентированногоУчета = "") Экспорт
Перем СуммаВключаетНДС,ВидРасчетовПоДоговору;
ВалютаРегламентированногоУчета = СтруктураШапкиДокумента.ВалютаРегламентированногоУчета;
ЕстьНДС = Не(ТаблицаЗначений.Колонки.Найти("НДС")=Неопределено);
ЕстьСтавкаНДС = Не(ТаблицаЗначений.Колонки.Найти("СтавкаНДС")=Неопределено);
ЕстьВалюта = СтруктураШапкиДокумента.Свойство("ВалютаДокумента");
Если ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ГТДИмпорт") Тогда
// Для ГТДИмпорт передается специфическая структура таблицы, суммы НДС разделены по строкам
// с суммами без НДС. Расчет может производиться только пересчетом по курсу.
РасчетСуммыНДСПоСтавке = Ложь;
ИначеЕсли ЕстьВалюта и ЕстьНДС и ЕстьСтавкаНДС
и Не(СтруктураШапкиДокумента.ВалютаДокумента = ВалютаРегламентированногоУчета)
Тогда
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(СтруктураШапкиДокумента.Дата);
Иначе
РасчетСуммыНДСПоСтавке = Ложь;
КонецЕсли;
СтруктураШапкиДокумента.Свойство("СуммаВключаетНДС", СуммаВключаетНДС);
СуммаВключаетНДС = (СуммаВключаетНДС = Истина);
Если СтруктураШапкиДокумента.Свойство("ДоговорКонтрагента") тогда
ВидРасчетовПоДоговору = ОпределениеВидаРасчетовПоПараметрамДоговора(СтруктураШапкиДокумента.ДоговорКонтрагента,ВалютаРегламентированногоУчета);
КонецЕсли;
//Дополним колонки ТЗ при необходимости
СтруктураОбязательныхКолонок = Новый Структура("Сумма"+?(ЕстьНДС,",НДС,СуммаБезНДС","")+?(ЕстьВалюта,",СуммаВал"+?(ЕстьНДС,",НДСВал,СуммаБезНДСВал",""),""));
СтруктураОбязательныхКолонок.Вставить("СуммаБУ");
Если ЕстьНДС Тогда
СтруктураОбязательныхКолонок.Вставить("СуммаБУБезНДС");
КонецЕсли;
Для каждого Колонка Из СтруктураОбязательныхКолонок Цикл
Если ТаблицаЗначений.Колонки.Найти(Колонка.Ключ) = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить(Колонка.Ключ, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
КонецЕсли;
КонецЦикла;
//Дополним колонки ТЗ при необходимости нечисловыми полями
Если ТаблицаЗначений.Колонки.Найти("СчетУчетаЦенности") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("СчетУчетаЦенности");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("ВидЦенности") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("ВидЦенности");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("Ценность") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("Ценность");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("Тара") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("Тара", Новый ОписаниеТипов("Булево"));
КонецЕсли;
Если (СтруктураШапкиДокумента.ОрганизацияПрименяетУСН ИЛИ СтруктураШапкиДокумента.ОтражатьВНалоговомУчетеУСНПатент)
И (СтруктураШапкиДокумента.ВидДокумента = "ОтчетОРозничныхПродажах"
ИЛИ СтруктураШапкиДокумента.ВидДокумента = "ОтчетКомитентуОПродажах"
ИЛИ СтруктураШапкиДокумента.ВидДокумента = "ОказаниеУслуг"
ИЛИ (СтруктураШапкиДокумента.Свойство("ДоговорКонтрагента")
И (СтруктураШапкиДокумента.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем
ИЛИ СтруктураШапкиДокумента.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером))) Тогда
НетКолонкиДоходЕНВД = (ТаблицаЗначений.Колонки.Найти("ЭтоДоходЕНВД") = Неопределено);
Если НетКолонкиДоходЕНВД Тогда
ТаблицаЗначений.Колонки.Добавить("ЭтоДоходЕНВД", Новый ОписаниеТипов("Булево"));
ЕстьСчетДоходовВТаблице = ТаблицаЗначений.Колонки.Найти("СчетДоходов") <> Неопределено;
Если ЕстьСчетДоходовВТаблице Тогда
МассивСчетовЕНВД = НалоговыйУчетУСН.МассивСчетовВыручкиЕНВД();
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.ЭтоДоходЕНВД = (МассивСчетовЕНВД.Найти(СтрокаТаблицы.СчетДоходов) <> Неопределено);
КонецЦикла;
КонецЕсли;
КонецЕсли;
НетКолонкиДоходПатент = (ТаблицаЗначений.Колонки.Найти("ЭтоДоходПатент") = Неопределено);
Если НетКолонкиДоходПатент Тогда
ТаблицаЗначений.Колонки.Добавить("ЭтоДоходПатент", Новый ОписаниеТипов("Булево"));
Если СтруктураШапкиДокумента.Свойство("ДеятельностьНаПатенте") И СтруктураШапкиДокумента.ДеятельностьНаПатенте Тогда
ТаблицаЗначений.ЗаполнитьЗначения (Истина, "ЭтоДоходПатент");
КонецЕсли;
КонецЕсли;
НетКолонкиДоходКомитента = (ТаблицаЗначений.Колонки.Найти("ЭтоДоходКомитента") = Неопределено);
Если НетКолонкиДоходКомитента Тогда
ТаблицаЗначений.Колонки.Добавить("ЭтоДоходКомитента", Новый ОписаниеТипов("Булево"));
ЕстьСчетУчетаВТаблице = ТаблицаЗначений.Колонки.Найти("СчетУчета") <> Неопределено;
Если ЕстьСчетУчетаВТаблице Тогда
МассивСчетовКомиссия = Новый Массив;
Выборка = ПланыСчетов.Хозрасчетный.Выбрать(ПланыСчетов.Хозрасчетный.ТоварыПринятыеНаКомиссию);
Пока Выборка.Следующий() Цикл
МассивСчетовКомиссия.Добавить(Выборка.Ссылка);
КонецЦикла;
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.ЭтоДоходКомитента = (МассивСчетовКомиссия.Найти(СтрокаТаблицы.СчетУчета) <> Неопределено);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
//Определим суммы по документу (Сумму без НДС и корректную основную сумму)
Если ЕстьНДС тогда
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - ?(СуммаВключаетНДС, СтрокаТаблицы.НДС, 0);
Если РасчетСуммыНДСПоСтавке Тогда
СтрокаТаблицы.Сумма = СтрокаТаблицы.СуммаБезНДС + СтрокаТаблицы.НДС;
Иначе
СтрокаТаблицы.Сумма = СтрокаТаблицы.СуммаБезНДС + ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДС, 0);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ЕстьВалюта тогда
// Заполним валютные колонки суммами документа
Для каждого Колонка Из СтруктураОбязательныхКолонок Цикл
Если Прав(Колонка.Ключ, 3) = "Вал" Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку(Лев(Колонка.Ключ, СтрДлина(Колонка.Ключ) - 3)), Колонка.Ключ);
КонецЕсли;
КонецЦикла;
Если НЕ (СтруктураШапкиДокумента.ВалютаДокумента = ВалютаРегламентированногоУчета) Тогда
Если не СтруктураШапкиДокумента.Свойство("КурсДокумента") или не СтруктураШапкиДокумента.Свойство("КратностьДокумента") тогда
КоэффициентПересчета=1;
ИначеЕсли Число(СтруктураШапкиДокумента.КурсДокумента) = 0 или Число(СтруктураШапкиДокумента.КратностьДокумента)=0 тогда
КоэффициентПересчета=1;
Иначе
КоэффициентПересчета = СтруктураШапкиДокумента.КурсДокумента/СтруктураШапкиДокумента.КратностьДокумента;
КонецЕсли;
//Распределение суммы по таблице
СуммаРег = Окр(ТаблицаЗначений.Итог("СуммаВал")* КоэффициентПересчета,2);
РаспределениеРег = ОбщегоНазначения.РаспределитьПропорционально(СуммаРег,ТаблицаЗначений.выгрузитьКолонку("Сумма"));
Если Не РаспределениеРег = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеРег,"Сумма");
КонецЕсли;
Если ЕстьНДС Тогда
Если РасчетСуммыНДСПоСтавке Тогда
Если ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.РеализацияОтгруженныхТоваров") Тогда
Если СтруктураШапкиДокумента.НачислятьНДСПоОтгрузке Тогда
СтруктураКурса = МодульВалютногоУчета.ПолучитьКурсВалюты(СтруктураШапкиДокумента.ВалютаДокумента, СтруктураШапкиДокумента.ДокументОтгрузки.Дата);
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = (СтрокаТаблицы.СуммаВал * ЗначениеСтавкиНДС /(100 + ЗначениеСтавкиНДС)) * СтруктураКурса.Курс/СтруктураКурса.Кратность;
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
Иначе
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТаблицы.Сумма * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
КонецЕсли;
Иначе
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТаблицы.Сумма * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
КонецЕсли;
Иначе
НДСРег = Окр(ТаблицаЗначений.Итог("НДСВал") * КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеРег = ОбщегоНазначения.РаспределитьПропорционально(НДСРег,ТаблицаЗначений.выгрузитьКолонку("НДС"));
Если Не РаспределениеРег = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеРег,"НДС");
КонецЕсли;
//Расчет суммы без НДС
Для каждого СтрокаТаблицы из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДС, 0);
КонецЦикла;
КонецЕсли;
КонецЕсли;
Иначе
//Документ в национальной валюте
Если ВидРасчетовПоДоговору = Перечисления.ВидыРасчетовПоДоговорам.РасчетыВУсловныхЕдиницах
Или ((ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОтражениеНДСКВычету")
Или ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОтражениеНачисленияНДС"))
И СтруктураШапкиДокумента.ВалютаВзаиморасчетов <> ВалютаРегламентированногоУчета) тогда
//Необходимо определить сумму расчетов с контрагентом в валюте договора
Если не СтруктураШапкиДокумента.Свойство("КурсВзаиморасчетов") или не СтруктураШапкиДокумента.Свойство("КратностьВзаиморасчетов") тогда
КоэффициентПересчета=1;
ИначеЕсли Число(СтруктураШапкиДокумента.КурсВзаиморасчетов) = 0 или Число(СтруктураШапкиДокумента.КратностьВзаиморасчетов) = 0 тогда
КоэффициентПересчета = 1;
Иначе
КоэффициентПересчета = СтруктураШапкиДокумента.КратностьВзаиморасчетов / СтруктураШапкиДокумента.КурсВзаиморасчетов;
КонецЕсли;
СуммаВал = Окр(ТаблицаЗначений.Итог("Сумма")* КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеВал = ОбщегоНазначения.РаспределитьПропорционально(СуммаВал,ТаблицаЗначений.ВыгрузитьКолонку("СуммаВал"));
Если Не РаспределениеВал = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеВал,"СуммаВал");
КонецЕсли;
Если ЕстьНДС тогда
НДСВал = Окр(ТаблицаЗначений.Итог("НДС") * КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеВал = ОбщегоНазначения.РаспределитьПропорционально(НДСВал,ТаблицаЗначений.выгрузитьКолонку("НДСВал"));
Если Не РаспределениеВал = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеВал,"НДСВал");
КонецЕсли;
//Расчет суммы без НДС
Для каждого СтрокаТаблицы из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДСВал = СтрокаТаблицы.СуммаВал - ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДСВал, 0);
КонецЦикла;
КонецЕсли;
КонецЕсли
КонецЕсли;
КонецЕсли;
// На этапе подготовки таблицы суммы для БУ совпадают с суммами для остальных видов учета (НУ, НДС...).
// При зачете авансов в иностранной валюте в 2008 году суммы БУ будут корректироваться с учетом курсов зачтенных авансов,
// а суммы для других видов учета остаются прежними
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("Сумма"), "СуммаБУ");
Если ЕстьНДС Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"), "СуммаБУБезНДС");
КонецЕсли;
ТаблицаЗначений.Колонки.Добавить("СуммаНУ", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
Если ЕстьНДС Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБУБезНДС"), "СуммаНУ");
Иначе
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБУ"), "СуммаНУ");
КонецЕсли;
УчетНДС.ОпределениеДополнительныхПараметровТаблицыПартийДляПодсистемыУчетаНДС(СтруктураШапкиДокумента, ТаблицаЗначений);
КонецПроцедуры
// Лунегов П.В. было до изменений
// релиз Бухгалтерия предприятия, редакция 2.0 (2.0.37.8)
Процедура ПодготовкаТаблицыЗначенийДляЦелейПриобретенияИРеализации(ТаблицаЗначений, СтруктураШапкиДокумента, ВключитьНДСВОсновнуюСумму, ВалютаРегламентированногоУчета = "") Экспорт
Перем СуммаВключаетНДС,ВидРасчетовПоДоговору;
ВалютаРегламентированногоУчета = СтруктураШапкиДокумента.ВалютаРегламентированногоУчета;
ЕстьНДС = Не(ТаблицаЗначений.Колонки.Найти("НДС")=Неопределено);
ЕстьСтавкаНДС = Не(ТаблицаЗначений.Колонки.Найти("СтавкаНДС")=Неопределено);
ЕстьВалюта = СтруктураШапкиДокумента.Свойство("ВалютаДокумента");
Если ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ГТДИмпорт") Тогда
// Для ГТДИмпорт передается специфическая структура таблицы, суммы НДС разделены по строкам
// с суммами без НДС. Расчет может производиться только пересчетом по курсу.
РасчетСуммыНДСПоСтавке = Ложь;
ИначеЕсли ЕстьВалюта и ЕстьНДС и ЕстьСтавкаНДС
и Не(СтруктураШапкиДокумента.ВалютаДокумента = ВалютаРегламентированногоУчета)
Тогда
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(СтруктураШапкиДокумента.Дата);
Иначе
РасчетСуммыНДСПоСтавке = Ложь;
КонецЕсли;
СтруктураШапкиДокумента.Свойство("СуммаВключаетНДС", СуммаВключаетНДС);
СуммаВключаетНДС = (СуммаВключаетНДС = Истина);
Если СтруктураШапкиДокумента.Свойство("ДоговорКонтрагента") тогда
ВидРасчетовПоДоговору = ОпределениеВидаРасчетовПоПараметрамДоговора(СтруктураШапкиДокумента.ДоговорКонтрагента,ВалютаРегламентированногоУчета);
КонецЕсли;
//Дополним колонки ТЗ при необходимости
СтруктураОбязательныхКолонок = Новый Структура("Сумма"+?(ЕстьНДС,",НДС,СуммаБезНДС","")+?(ЕстьВалюта,",СуммаВал"+?(ЕстьНДС,",НДСВал,СуммаБезНДСВал",""),""));
СтруктураОбязательныхКолонок.Вставить("СуммаБУ");
Если ЕстьНДС Тогда
СтруктураОбязательныхКолонок.Вставить("СуммаБУБезНДС");
КонецЕсли;
Для каждого Колонка Из СтруктураОбязательныхКолонок Цикл
Если ТаблицаЗначений.Колонки.Найти(Колонка.Ключ) = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить(Колонка.Ключ, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
КонецЕсли;
КонецЦикла;
//Дополним колонки ТЗ при необходимости нечисловыми полями
Если ТаблицаЗначений.Колонки.Найти("СчетУчетаЦенности") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("СчетУчетаЦенности");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("ВидЦенности") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("ВидЦенности");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("Ценность") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("Ценность");
КонецЕсли;
Если ТаблицаЗначений.Колонки.Найти("Тара") = Неопределено тогда
ТаблицаЗначений.Колонки.Добавить("Тара", Новый ОписаниеТипов("Булево"));
КонецЕсли;
Если СтруктураШапкиДокумента.ОрганизацияПрименяетУСН
И (СтруктураШапкиДокумента.ВидДокумента = "ОтчетОРозничныхПродажах"
ИЛИ СтруктураШапкиДокумента.ВидДокумента = "ОказаниеУслуг"
ИЛИ (СтруктураШапкиДокумента.Свойство("ДоговорКонтрагента")
И (СтруктураШапкиДокумента.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем
ИЛИ СтруктураШапкиДокумента.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером))) Тогда
НетКолонкиДоходЕНВД = (ТаблицаЗначений.Колонки.Найти("ЭтоДоходЕНВД") = Неопределено);
Если НетКолонкиДоходЕНВД Тогда
ТаблицаЗначений.Колонки.Добавить("ЭтоДоходЕНВД", Новый ОписаниеТипов("Булево"));
ЕстьСчетДоходовВТаблице = ТаблицаЗначений.Колонки.Найти("СчетДоходов") <> Неопределено;
Если ЕстьСчетДоходовВТаблице Тогда
МассивСчетовЕНВД = НалоговыйУчетУСН.МассивСчетовВыручкиЕНВД();
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.ЭтоДоходЕНВД = (МассивСчетовЕНВД.Найти(СтрокаТаблицы.СчетДоходов) <> Неопределено);
КонецЦикла;
КонецЕсли;
КонецЕсли;
НетКолонкиДоходКомитента = (ТаблицаЗначений.Колонки.Найти("ЭтоДоходКомитента") = Неопределено);
Если НетКолонкиДоходКомитента Тогда
ТаблицаЗначений.Колонки.Добавить("ЭтоДоходКомитента", Новый ОписаниеТипов("Булево"));
ЕстьСчетУчетаВТаблице = ТаблицаЗначений.Колонки.Найти("СчетУчета") <> Неопределено;
Если ЕстьСчетУчетаВТаблице Тогда
МассивСчетовКомиссия = Новый Массив;
Выборка = ПланыСчетов.Хозрасчетный.Выбрать(ПланыСчетов.Хозрасчетный.ТоварыПринятыеНаКомиссию);
Пока Выборка.Следующий() Цикл
МассивСчетовКомиссия.Добавить(Выборка.Ссылка);
КонецЦикла;
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.ЭтоДоходКомитента = (МассивСчетовКомиссия.Найти(СтрокаТаблицы.СчетУчета) <> Неопределено);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
//Определим суммы по документу (Сумму без НДС и корректную основную сумму)
Если ЕстьНДС тогда
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - ?(СуммаВключаетНДС, СтрокаТаблицы.НДС, 0);
Если РасчетСуммыНДСПоСтавке Тогда
СтрокаТаблицы.Сумма = СтрокаТаблицы.СуммаБезНДС + СтрокаТаблицы.НДС;
Иначе
СтрокаТаблицы.Сумма = СтрокаТаблицы.СуммаБезНДС + ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДС, 0);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ЕстьВалюта тогда
// Заполним валютные колонки суммами документа
Для каждого Колонка Из СтруктураОбязательныхКолонок Цикл
Если Прав(Колонка.Ключ, 3) = "Вал" Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку(Лев(Колонка.Ключ, СтрДлина(Колонка.Ключ) - 3)), Колонка.Ключ);
КонецЕсли;
КонецЦикла;
Если НЕ (СтруктураШапкиДокумента.ВалютаДокумента = ВалютаРегламентированногоУчета) Тогда
Если не СтруктураШапкиДокумента.Свойство("КурсДокумента") или не СтруктураШапкиДокумента.Свойство("КратностьДокумента") тогда
КоэффициентПересчета=1;
ИначеЕсли Число(СтруктураШапкиДокумента.КурсДокумента) = 0 или Число(СтруктураШапкиДокумента.КратностьДокумента)=0 тогда
КоэффициентПересчета=1;
Иначе
КоэффициентПересчета = СтруктураШапкиДокумента.КурсДокумента/СтруктураШапкиДокумента.КратностьДокумента;
КонецЕсли;
//Распределение суммы по таблице
СуммаРег = Окр(ТаблицаЗначений.Итог("СуммаВал")* КоэффициентПересчета,2);
РаспределениеРег = ОбщегоНазначения.РаспределитьПропорционально(СуммаРег,ТаблицаЗначений.выгрузитьКолонку("Сумма"));
Если Не РаспределениеРег = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеРег,"Сумма");
КонецЕсли;
Если ЕстьНДС Тогда
Если РасчетСуммыНДСПоСтавке Тогда
Если ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.РеализацияОтгруженныхТоваров") Тогда
Если СтруктураШапкиДокумента.НачислятьНДСПоОтгрузке Тогда
СтруктураКурса = МодульВалютногоУчета.ПолучитьКурсВалюты(СтруктураШапкиДокумента.ВалютаДокумента, СтруктураШапкиДокумента.ДокументОтгрузки.Дата);
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = (СтрокаТаблицы.СуммаВал * ЗначениеСтавкиНДС /(100 + ЗначениеСтавкиНДС)) * СтруктураКурса.Курс/СтруктураКурса.Кратность;
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
Иначе
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТаблицы.Сумма * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
КонецЕсли;
Иначе
// Выделение суммы НДС, Расчет суммы без НДС
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС);
Если СтрокаТаблицы.НДС = 0 Тогда
СтрокаТаблицы.НДС = 0;
Иначе
СтрокаТаблицы.НДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТаблицы.Сумма * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
КонецЕсли;
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - СтрокаТаблицы.НДС;
КонецЦикла;
НДСРег = ТаблицаЗначений.Итог("НДС");
// Корректировка таблицы в случае если не ВключитьНДСВОсновнуюСумму
Если НЕ ВключитьНДСВОсновнуюСумму Тогда
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДС"),"Сумма");
ТаблицаЗначений.ЗагрузитьКолонку(ТаблицаЗначений.ВыгрузитьКолонку("СуммаБезНДСВал"),"СуммаВал");
КонецЕсли;
КонецЕсли;
Иначе
НДСРег = Окр(ТаблицаЗначений.Итог("НДСВал") * КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеРег = ОбщегоНазначения.РаспределитьПропорционально(НДСРег,ТаблицаЗначений.выгрузитьКолонку("НДС"));
Если Не РаспределениеРег = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеРег,"НДС");
КонецЕсли;
//Расчет суммы без НДС
Для каждого СтрокаТаблицы из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДС = СтрокаТаблицы.Сумма - ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДС, 0);
КонецЦикла;
КонецЕсли;
КонецЕсли;
Иначе
//Документ в национальной валюте
Если ВидРасчетовПоДоговору = Перечисления.ВидыРасчетовПоДоговорам.РасчетыВУсловныхЕдиницах
Или ((ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОтражениеНДСКВычету")
Или ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОтражениеНачисленияНДС"))
И СтруктураШапкиДокумента.ВалютаВзаиморасчетов <> ВалютаРегламентированногоУчета) тогда
//Необходимо определить сумму расчетов с контрагентом в валюте договора
Если не СтруктураШапкиДокумента.Свойство("КурсВзаиморасчетов") или не СтруктураШапкиДокумента.Свойство("КратностьВзаиморасчетов") тогда
КоэффициентПересчета=1;
ИначеЕсли Число(СтруктураШапкиДокумента.КурсВзаиморасчетов) = 0 или Число(СтруктураШапкиДокумента.КратностьВзаиморасчетов) = 0 тогда
КоэффициентПересчета = 1;
Иначе
КоэффициентПересчета = СтруктураШапкиДокумента.КратностьВзаиморасчетов / СтруктураШапкиДокумента.КурсВзаиморасчетов;
КонецЕсли;
СуммаВал = Окр(ТаблицаЗначений.Итог("Сумма")* КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеВал = ОбщегоНазначения.РаспределитьПропорционально(СуммаВал,ТаблицаЗначений.ВыгрузитьКолонку("СуммаВал"));
Если Не РаспределениеВал = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеВал,"СуммаВал");
КонецЕсли;
Если ЕстьНДС тогда
НДСВал = Окр(ТаблицаЗначений.Итог("НДС") * КоэффициентПересчета,2);
//Распределение суммы по таблице
РаспределениеВал = ОбщегоНазначения.РаспределитьПропорционально(НДСВал,ТаблицаЗначений.выгрузитьКолонку("НДСВал"));
Если Не РаспределениеВал = Неопределено Тогда
ТаблицаЗначений.ЗагрузитьКолонку(РаспределениеВал,"НДСВал");
КонецЕсли;
//Расчет суммы без НДС
Для каждого СтрокаТаблицы из ТаблицаЗначений Цикл
СтрокаТаблицы.СуммаБезНДСВал = СтрокаТаблицы.СуммаВал - ?(ВключитьНДСВОсновнуюСумму, СтрокаТаблицы.НДСВал, 0);
КонецЦикла;
КонецЕсли;
КонецЕсли
КонецЕсли;
КонецЕсли;
После всех описанных манипуляций учет НДС у нас с вами будет прежний, до изменений 2014 г.! Что и требовалось получить. Я, в своей практике, проверил данный рецепт на реальном учете, все работает! На этом пока все! Пишите ваши вопросы, пожелания, исправления, замечания!