В практической работе с конфигурацией 1С:ERP Управление предприятием (а также в родственных решениях, таких как 1С:Комплексная автоматизация и 1С:Управление торговлей) пользователи часто сталкиваются с крайне неприятной ошибкой. При попытке распечатать корректировочный счет-фактуру или Универсальный корректировочный документ (УКД) система выдает лаконичное, но совершенно неинформативное предупреждение: «Печатная форма недоступна».
Особенно загадочно это поведение выглядит тогда, когда в документе Корректировка реализации изменяется исключительно цена номенклатуры, в то время как отгруженное количество остается прежним. Стоит ради эксперимента изменить количество хотя бы на единицу — и печать чудесным образом начинает работать.
В данной статье мы подробно разберем, почему возникает эта ошибка в логике проведения документов, проанализируем внутренние механизмы платформы и предложим два эффективных метода решения: быстрое ручное исправление для пользователей и надежное программное решение для разработчиков.
Для того чтобы понять природу этой ошибки, нам необходимо проанализировать, как ERP-система работает с механизмом партионного учета и так называемыми видами запасов. При проведении любого документа реализации программа не просто списывает товар, а жестко фиксирует аналитику его происхождения. Важнейшей частью этой аналитики для импортных товаров является классификатор ТН ВЭД (Товарная номенклатура внешнеэкономической деятельности).
Когда мы создаем документ Корректировка реализации с видом операции «Корректировка по согласованию сторон», система должна пересчитать стоимость запасов и скорректировать выручку. Для этого задействуется служебная табличная часть — Виды запасов.
Разработчиками 1С был допущен программный сбой в ранних релизах ветки 2.4 (в частности, в 1С:ERP 2.4.2), который проявляется по следующему сценарию:
Виды запасов корректировка выручки.КодТНВЭД остается абсолютно пустым, несмотря на то, что в карточке номенклатуры и в исходном документе продажи он был заполнен.В современных релизах 1С:ERP (начиная с версий 2.4.6 и в редакциях 2.5) эта логика была переработана и исправлена разработчиками, однако многие компании по разным причинам продолжают работать на измененных исторических релизах, где оперативное обновление конфигурации невозможно.
Если вам необходимо срочно выставить корректировочный счет-фактуру покупателю прямо сейчас, а программиста нет на месте, мы можем решить проблему стандартными интерактивными средствами системы. Рассмотрим пошаговый алгоритм действий:
Корректировка реализации.Корректировка реализации.Счет-фактура выданный (корректировочный) и повторите попытку печати. Форма успешно сформируется и выведется на экран.Если подобные корректировки цен происходят регулярно, ручной ввод быстро превратится в рутину и приведет к ошибкам человеческого фактора. Чтобы решить проблему раз и навсегда без обновления всей конфигурации, мы рекомендуем использовать механизм расширения конфигурации или создать подписку на событие при записи документа.
Нам необходимо перехватить момент записи документа Корректировка реализации и принудительно заполнить реквизит КодТНВЭД в табличной части ВидыЗапасов, если сама номенклатура предусматривает ведение учета по ТН ВЭД.
Рассмотрим пример программного кода, который можно поместить в модуль подписки на событие ПередЗаписью или реализовать через расширение конфигурации:
Процедура ПередЗаписью_ИсправитьКодТНВЭДВКорректировке(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
// Исключаем работу кода при обмене данными
Если Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Нас интересует только операция корректировки по согласованию сторон
ХозяйственнаяОперация = Источник.ХозяйственнаяОперация;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаПоСогласованиюСторон Тогда
Для Каждого СтрокаВидовЗапасов Из Источник.ВидыЗапасов Цикл
// Если код ТН ВЭД не заполнен, попробуем восстановить его из карточки Номенклатуры
Если Не ЗначениеЗаполнено(СтрокаВидовЗапасов.КодТНВЭД) Тогда
НоменклатураСсылка = СтрокаВидовЗапасов.Номенклатура;
Если ЗначениеЗаполнено(НоменклатураСсылка) Тогда
// Получаем ТН ВЭД, закрепленный за данной позицией номенклатуры
КодТНВЭДИзНоменклатуры = НоменклатураСсылка.ТНВЭД;
Если ЗначениеЗаполнено(КодТНВЭДИзНоменклатуры) Тогда
СтрокаВидовЗапасов.КодТНВЭД = КодТНВЭДИзНоменклатуры;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Данный код проверяет каждую строку табличной части ВидыЗапасов. Если обнаруживается пустое значение кода ТН ВЭД при наличии заполненной номенклатуры, система автоматически подтягивает актуальный код классификатора непосредственно перед сохранением документа в базу данных. Это гарантирует бесперебойную работу механизма генерации печатных форм.
Проанализируем развитие этой проблемы в актуальных версиях 1С:ERP редакции 2.5. С введением национальной системы прослеживаемости импортных товаров требования к заполнению кодов ТН ВЭД стали еще жестче. Теперь ошибки в видах запасов влияют не только на печать макетов документов, но и полностью блокируют проведение корректировок.
Если ваш товар попадает под категорию прослеживаемых, то помимо кода ТН ВЭД в таблице видов запасов обязательно должно присутствовать корректное заполнение поля Количество по РНПТ (Регистрационный номер партии товара). При корректировках прошлых периодов (особенно если исходная партия была списана или скорректирована другими документами) автоматический подбор РНПТ может сбоить. В таких случаях ручное исправление видов запасов (по методике, описанной в Решении №1) является единственным оперативным способом провести документ и выставить УКД клиенту.
Если вы проверили код ТН ВЭД, и он заполнен корректно, но надпись «Печатная форма недоступна» все равно появляется, рекомендуем выполнить экспресс-проверку по следующим пунктам:
Счет-фактура выданный для исходной Реализации товаров и услуг. Если цепочка документов разорвана, печать КСФ будет невозможна.Используя приведенные инструкции и методы диагностики, вы сможете оперативно локализовать проблему с печатью корректировочных документов, устранить технические сбои партионного учета и обеспечить непрерывный документооборот с вашими контрагентами.