Исчезает Книга покупок и Книга продаж при формировании в 1С: как исправить баг и решить проблему с заполнением прошлых периодов

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет
← На главную

Сдача отчетности по НДС — всегда напряженный период для бухгалтера и системного администратора. Любые сбои в формировании регламентированных отчетов могут парализовать работу отдела. В этой статье мы подробно разберем две серьезные проблемы, с которыми пользователи часто сталкиваются при подготовке Книги покупок и Книги продаж в программе 1С:Бухгалтерия предприятия 3.0, выясним их технические причины и найдем практические методы решения.

---

Часть 1. Проблема исчезновения Книги покупок и Книги продаж (пустое белое поле)

Рассмотрим первую ситуацию. Вы открываете Книгу покупок или Книгу продаж, нажимаете кнопку «Сформировать». Отчет успешно строится, на экране появляются данные. Однако через несколько секунд, как только завершается фоновая проверка контрагентов через сервис ФНС, вся табличная часть мгновенно исчезает, оставляя вместо себя пустое белое поле. Давайте разберемся, почему так происходит.

Техническая суть проблемы:

Описанное поведение системы — это классический платформенный баг, который массово проявлялся в версиях платформы 1С:Предприятие 8.3.13 и 8.3.14 (в частности, на релизе 8.3.14.1565). Причина кроется во взаимодействии платформы 1С с системным движком рендеринга веб-страниц операционной системы, который используется для отрисовки HTML-документов в тонком клиенте.

В момент формирования отчета запускается асинхронный фоновый процесс проверки ИНН и КПП контрагентов через сервис «1С:Контрагент». Когда проверка завершается, фоновое задание возвращает результат в форму отчета, чтобы подсветить статус контрагентов (например, выделить некорректные ИНН красным цветом). В этот момент из-за ошибки отрисовки динамического контента (HTML Reflow) контейнер отчета «схлопывается», уменьшая свои размеры до нуля. Пользователь при этом видит белый экран.

Проанализируем все доступные способы решения этой проблемы — от оперативных обходных путей до радикального исправления.

Метод 1. Полное решение проблемы — обновление платформы 1С

Поскольку проблема носит чисто платформенный характер, фирма «1С» оперативно выпустила исправления в последующих релизах. Чтобы навсегда избавиться от этого бага без ущерба для функционала, необходимо обновить платформу 1С:Предприятие до актуального стабильного релиза (ветки 8.3.15, 8.3.16 и выше). В новых версиях движок отрисовки веб-компонентов работает корректно и динамическое обновление табличного поля не приводит к его сворачиванию.

Метод 2. Временное отключение проверки контрагентов

Если обновить платформу прямо сейчас нет технической возможности (например, идет отчетный период и любое вмешательство в систему ограничено), мы можем временно отключить автоматическую фоновую проверку контрагентов. Для этого выполним следующие шаги:

  1. Перейдем в раздел «Администрирование» — «Настройки программы» — «Проверка контрагентов».
  2. Снимем флажок «Автоматически проверять контрагентов по ЕГРН».
  3. Вернемся в отчет и заново сформируем Книгу покупок или продаж. Поскольку фоновый запрос к ФНС больше не отправляется, отчет не будет перерисовываться и данные не исчезнут.

Важно: после сдачи отчетности или при первой возможности обновить платформу обязательно верните эту настройку назад, так как проверка контрагентов крайне важна для предотвращения ошибок при отправке деклараций.

Метод 3. Снятие блокировки внешних ресурсов и признака «Копия»

Довольно часто данная проблема обостряется после восстановления информационной базы из резервной копии или ее переноса на другой сервер. При запуске такой базы программа выдает предупреждение, и если пользователь нажимает «Это копия базы», 1С блокирует работу с внешними ресурсами, включая сервис «1С:Контрагент».

Чтобы разблокировать работу и восстановить корректный обмен данными с сервисами, выполним следующие действия:

  1. Перейдем в меню «Администрирование» — «Обслуживание».
  2. Развернем подраздел «Регламентные операции».
  3. Найдем и нажмем кнопку «Разблокировать работу с внешними ресурсами». Признак «Копия» в заголовке программы исчезнет, обмен с ФНС возобновится, что в ряде случаев решает проблему зависания интерфейса.

Метод 4. Очистка кэша базы данных

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

  1. Закроем все запущенные сеансы работы с базой данных 1С.
  2. Откроем окно запуска 1С:Предприятия.
  3. Выберем проблемную базу в списке, нажмем кнопку «Удалить» (при этом сама база физически с диска не удалится, удалится лишь ссылка на нее).
  4. Нажмем кнопку «Добавить», выберем пункт «Добавление в список существующей информационной базы» и заново пропишем путь к папке с базой (или параметры подключения к серверу).
  5. Запустим программу. При первом запуске 1С создаст чистые папки кэша, что исключит влияние старых временных файлов на рендеринг отчетов.

Метод 5. Экстренное сохранение или печать отчета

Если вам нужно немедленно передать отчет руководителю или сохранить файл, а Книга исчезает через 3-5 секунд после формирования, воспользуемся хитростью. Сразу же после нажатия кнопки «Сформировать», пока идет процесс получения данных и крутится индикатор выполнения фоновой задачи, быстро нажмите на панели кнопку «Печать» (или сочетание клавиш Ctrl + P). Печатная форма откроется в отдельном модальном окне, которое не связано с фоновыми процессами отрисовки основной формы и гарантированно не исчезнет.

---

Часть 2. Ошибка заполнения: попадание старых записей со ставкой 18% в Книгу покупок

Теперь рассмотрим вторую проблему, которая часто возникает в базах с долгой историей ведения учета (особенно при раздельном учете НДС). При формировании Книги покупок за текущий период (например, за 1 квартал 2019 года и позднее) в отчет неожиданно начинают попадать старые записи прошлых лет (за 2015, 2016 или 2017 годы) со ставкой 18%.

Выясним причину этой аномалии. Дело в том, что в коде конфигурации при переходе на новую ставку НДС 20% были существенно ужесточены алгоритмы проверок в модулях учета НДС. Проанализируем фрагмент запроса из общего модуля УчетНДСПереопределяемый, а конкретно — из функции ОпределитьНаличиеСчетовФактурПолученных:


|ПОМЕСТИТЬ ВТ_ДанныеСчетовФактур
|ИЗ
| РегистрНакопления.НДСПредъявленный.Обороты(
| ,
| &КонПериода,
| Период,
| Организация = &Организация
| И &СписокСчетовФактурОтбор
| И &ОтборПоВидуЦенности) КАК НДСПредъявленныйОбороты
|ГДЕ
| НЕ НДСПредъявленныйОбороты.СчетФактура ССЫЛКА Документ.КорректировкаРеализации
| И НЕ(НДСПредъявленныйОбороты.СчетФактура ССЫЛКА Документ.ПоступлениеТоваровУслуг
| И НДСПредъявленныйОбороты.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И НДСПредъявленныйОбороты.ДоговорКонтрагента.УчетАгентскогоНДС
| И НДСПредъявленныйОбороты.ДоговорКонтрагента.ВидАгентскогоДоговора <> ЗНАЧЕНИЕ(Перечисление.ВидыАгентскихДоговоров.РеализацияТоваров))
| И НДСПредъявленныйОбороты.ВидЦенности <> ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ЭлектронныеУслуги)

В чем логика изменений?

В данном запросе разработчики добавили жесткое условие отбора по полю ВидЦенности. Ранее, до обновления конфигурации, система лояльно относилась к ситуациям, когда приход НДС отражался по одному виду ценности (например, Товары), а списание или принятие к вычету производилось по другому (например, Материалы или Прочие работы и услуги). Программа схлопывала эти суммы в Книге покупок без детализации.

Однако теперь, из-за детального сопоставления полей, программа видит незакрытые дебетовые остатки в разрезе аналитики ВидЦенности в регистре накопления НДС предъявленный за прошлые годы. Система считает этот НДС «зависшим» (не принятым к вычету) и добросовестно пытается протащить его в Книгу покупок текущего отчетного периода.

Разберем по шагам, как локализовать и исправить эту ошибку учета.

Шаг 1. Анализ остатков через Универсальный отчет

Чтобы понять, какие именно документы сформировали незакрытые остатки по регистру, нам необходимо построить детальный отчет:

  1. Перейдем в раздел «Отчеты» — «Универсальный отчет».
  2. В поле выбора типа источника выберем «Регистр накопления», укажем имя регистра — «НДС предъявленный» и выберем таблицу «Остатки и обороты».
  3. Установим период отчета, охватывающий ранние годы (например, с даты начала ведения учета по конец предыдущего года).
  4. Нажмем кнопку «Показать настройки» и на вкладке «Группировка» добавим следующие поля:
    • Организация
    • Счет-фактура
    • Вид ценности
    • Договор контрагента
  5. Сформируем отчет. Проанализируем полученную таблицу: мы увидим документы, у которых дебетовый оборот по одной аналитике Вид ценности не закрыт кредитовым оборотом, из-за чего на конец прошлых лет «висит» остаток.

Шаг 2. Корректировка регистров прошлых периодов

Периоды прошлых лет, как правило, уже закрыты от изменений, и перепроводить старые документы поступления или списания НДС категорически нельзя, чтобы не поплыла сданная отчетность. Единственный верный способ — скорректировать остатки по регистру текущим (или концом прошлого) периодом.

Сделаем это с помощью ручной операции:

  1. Перейдем в раздел «Операции» — «Операции, введенные вручную».
  2. Создадим новый документ с видом «Операция».
  3. В правом верхнем углу нажмем кнопку «Еще» и выберем пункт «Выбор регистров».
  4. Перейдем на вкладку «Регистры накопления», найдем в списке регистр «НДС предъявленный», установим напротив него флажок и нажмем «ОК». В документе появится новая вкладка для движений по этому регистру.
  5. Заполним строки движения регистра. Наша цель — обнулить («схлопнуть») зависшие остатки. Для этого:
    • Если в Универсальном отчете висит дебетовый остаток с неверным видом ценности, создадим строку с видом движения «Расход» по этой аналитике.
    • Если необходимо перебросить сумму на правильную аналитику, создадим вторую строку с видом движения «Приход» по верному значению Вид ценности.
    • Обязательно заполняем поля Организация, Счет-фактура, Поставщик, Договор в точном соответствии с зависшими остатками.
  6. Запишем и проведем документ.

После проведения корректирующей операции заново сформируем Книгу покупок за текущий период. Программа увидит, что остатки по регистру накопления НДС предъявленный за прошлые годы успешно закрыты, и старые записи со ставкой 18% больше не будут ошибочно выводиться в отчетность.

← На главную