Как отключить автоматический ввод счета-фактуры при проведении реализации в УТ 10.3

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

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

Анализ ситуации и поиск точки входа

Если вы уже проверили форму документа и процедуру ПроверитьЗаполнениеСчетаФактуры(), но документ все равно создается, значит, вызов происходит на уровне сервера или в общих модулях после того, как управление передано от формы к объекту. Проанализируем, какими способами в 1С может быть инициировано создание нового объекта.

Наиболее эффективный метод — это «идти от обратного». Вместо того чтобы искать в огромном коде реализации команду создания, мы поставим ловушку в самом документе Счет-фактура выданный. Рассмотрим этот алгоритм по шагам:

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

Как только система попытается создать или записать счет-фактуру, работа программы прервется на вашей точке останова. В этот момент нам необходимо открыть окно Стек вызовов (Call Stack). В нем мы увидим всю цепочку процедур: от проведения реализации до момента записи счета-фактуры. Это позволит нам мгновенно вычислить модуль и строку кода, где вызывается СоздатьДокумент() или Записать().

Использование замера производительности

Если по каким-то причинам точка останова не срабатывает (например, документ записывается в фоновом задании, что редкость для УТ 10.3, но возможно), воспользуемся Замером производительности. Этот инструмент фиксирует выполнение каждой строки кода.

Выполним следующие действия:

  1. В конфигураторе включим замер (Отладка — Замер производительности).
  2. В пользовательском режиме проведем реализацию.
  3. Сразу после проведения выключим замер.
  4. В появившемся списке найдем строки, содержащие текст СчетФактураВыданный или СоздатьДокумент.

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

Проверка подписок на события

В современных (и даже в старых, но обновленных) конфигурациях на платформе 8.3 логика часто выносится за пределы модулей документов в так называемые Подписки на события. Это позволяет разработчикам не менять типовой код самого документа, а «подцепить» свой обработчик к событию проведения.

Разберем, где это искать:

  1. В дереве конфигурации развернем ветку Общие — Подписки на события.
  2. Будем искать подписки, у которых в поле Источник указан документ РеализацияТоваровУслуг, а в поле Событие — ОбработкаПроведения или ПриЗаписи.
  3. Обратим внимание на названия, содержащие ключевые слова: «НДС», «СчетФактура», «Регистрация».
  4. Если такая подписка найдена, перейдем в её Обработчик. Скорее всего, именно там скрывается код, подобный этому:

Процедура ПриЗаписиДокументаРегистрацияСчетаФактуры(Источник, Отказ) Экспорт
    Если Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    // Логика автоматического создания
    Если НужнаАвтоматическаяСФ(Источник) Тогда
        НоваяСФ = Документы.СчетФактураВыданный.СоздатьДокумент();
        НоваяСФ.Дата = Источник.Дата;
        НоваяСФ.Заполнить(Источник);
        НоваяСФ.Записать(РежимЗаписиДокумента.Проведение);
    КонецЕсли;
КонецПроцедуры

Если вы обнаружили такой механизм, достаточно закомментировать вызов создания документа или добавить условие, которое будет блокировать это действие. Для контроля корректности учета после подобных вмешательств в код применяется автоматическая сверка проводок между базами 1С.

Поиск в общих модулях учета НДС

В УТ 10.3 значительная часть работы с налогами сосредоточена в общих модулях. Проанализируем ситуацию через глобальный поиск (Ctrl+Shift+F). Введем поисковый запрос СчетФактураВыданный.СоздатьДокумент() или Документы.СчетФактураВыданный.СоздатьДокумент().

Особое внимание уделим следующим модулям:

Часто в коде встречается проверка на наличие уже существующей счета-фактуры. Программа ищет её по регистрам или через КритерииОтбора, и если не находит — создает новую. Выясним причину такого поведения в вашем конкретном случае, изучив условия в найденных процедурах.

Настройки пользователя и договора

Перед тем как радикально менять код, убедимся, что это не стандартная настройка, которую кто-то включил до нас. Проверим следующие места:

  1. Настройки пользователя: Меню «Сервис» — «Настройки пользователя». Просмотрим весь список параметров. В некоторых кастомизированных версиях УТ 10.3 там может присутствовать флаг «Автоматически создавать счет-фактуру». Если работа в старой редакции затруднена, возможна миграция данных из УТ 10.3 в УТ 11.
  2. Договор контрагента: Откроем карточку договора, по которому оформляется реализация. Перейдем на закладку «Налоги». Хотя настройки договора обычно влияют на способ формирования записей в книгах покупок/продаж, в некоторых отраслевых решениях здесь может быть привязка к автоматическому документообороту.

Важное замечание о последствиях

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

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

← На главную