Почему в 1С:ERP не печатается корректировочный счет-фактура при изменении цены и как это исправить

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

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

Особенно загадочно это поведение выглядит тогда, когда в документе Корректировка реализации изменяется исключительно цена номенклатуры, в то время как отгруженное количество остается прежним. Стоит ради эксперимента изменить количество хотя бы на единицу — и печать чудесным образом начинает работать.

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

В чем кроется причина ошибки: заглянем «под капот» системы

Для того чтобы понять природу этой ошибки, нам необходимо проанализировать, как ERP-система работает с механизмом партионного учета и так называемыми видами запасов. При проведении любого документа реализации программа не просто списывает товар, а жестко фиксирует аналитику его происхождения. Важнейшей частью этой аналитики для импортных товаров является классификатор ТН ВЭД (Товарная номенклатура внешнеэкономической деятельности).

Когда мы создаем документ Корректировка реализации с видом операции «Корректировка по согласованию сторон», система должна пересчитать стоимость запасов и скорректировать выручку. Для этого задействуется служебная табличная часть — Виды запасов.

Разработчиками 1С был допущен программный сбой в ранних релизах ветки 2.4 (в частности, в 1С:ERP 2.4.2), который проявляется по следующему сценарию:

  1. Если в корректировке меняется и количество, и цена, система полностью перезаполняет движения по видам запасов, корректно наследуя код ТН ВЭД из исходной партии.
  2. Если количество остается неизменным, а корректируется только цена (происходит уценка или дооценка товара), программа заполняет специальную подчиненную таблицу Виды запасов корректировка выручки.
  3. Вследствие ошибки алгоритма в этой подчиненной таблице реквизит КодТНВЭД остается абсолютно пустым, несмотря на то, что в карточке номенклатуры и в исходном документе продажи он был заполнен.
  4. При формировании печатной формы корректировочного счета-фактуры или УКД система выполняет сложный поисковый запрос. Происходит соединение таблицы расхождений с таблицей корректировки выручки по ключевым полям, включая код ТН ВЭД. Из-за наличия пустого поля в одной из таблиц результат запроса возвращает некорректные пустые данные. В итоге механизм печати считает форму недоступной.

В современных релизах 1С:ERP (начиная с версий 2.4.6 и в редакциях 2.5) эта логика была переработана и исправлена разработчиками, однако многие компании по разным причинам продолжают работать на измененных исторических релизах, где оперативное обновление конфигурации невозможно.

Решение №1: Ручное исправление видов запасов (без программирования)

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

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

Решение №2: Программное заполнение кода ТН ВЭД (для разработчиков)

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

Нам необходимо перехватить момент записи документа Корректировка реализации и принудительно заполнить реквизит КодТНВЭД в табличной части ВидыЗапасов, если сама номенклатура предусматривает ведение учета по ТН ВЭД.

Рассмотрим пример программного кода, который можно поместить в модуль подписки на событие ПередЗаписью или реализовать через расширение конфигурации:


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

КонецПроцедуры

Данный код проверяет каждую строку табличной части ВидыЗапасов. Если обнаруживается пустое значение кода ТН ВЭД при наличии заполненной номенклатуры, система автоматически подтягивает актуальный код классификатора непосредственно перед сохранением документа в базу данных. Это гарантирует бесперебойную работу механизма генерации печатных форм.

Влияние прослеживаемости товаров (для пользователей современных версий ERP)

Проанализируем развитие этой проблемы в актуальных версиях 1С:ERP редакции 2.5. С введением национальной системы прослеживаемости импортных товаров требования к заполнению кодов ТН ВЭД стали еще жестче. Теперь ошибки в видах запасов влияют не только на печать макетов документов, но и полностью блокируют проведение корректировок.

Если ваш товар попадает под категорию прослеживаемых, то помимо кода ТН ВЭД в таблице видов запасов обязательно должно присутствовать корректное заполнение поля Количество по РНПТ (Регистрационный номер партии товара). При корректировках прошлых периодов (особенно если исходная партия была списана или скорректирована другими документами) автоматический подбор РНПТ может сбоить. В таких случаях ручное исправление видов запасов (по методике, описанной в Решении №1) является единственным оперативным способом провести документ и выставить УКД клиенту.

Дополнительный чек-лист: другие причины недоступности печатной формы

Если вы проверили код ТН ВЭД, и он заполнен корректно, но надпись «Печатная форма недоступна» все равно появляется, рекомендуем выполнить экспресс-проверку по следующим пунктам:

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

← На главную