Почему в 1С 7.7 Торговля и Склад (релиз 1004) нет печатной формы УПД и как исправить ошибки в строке 5а и статусе?

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При обновлении конфигурации «Торговля и Склад» 7.7 до релиза 1004 многие пользователи сталкиваются с неожиданной проблемой: в документе Реализация (или Счет-фактура) отсутствует привычная кнопка печати Универсального передаточного документа (УПД) нового образца. Несмотря на то что релиз официально поддерживает новые формы согласно Постановлению Правительства №534, механизмы их вызова в старой платформе имеют свои особенности. В этой статье мы подробно разберем, как активировать форму УПД, почему возникают ошибки при заполнении строки 5а и как исправить некорректное отображение статуса документа.

Шаг 1: Подключение внешней печатной формы

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

Проанализируем алгоритм действий для регистрации формы:

  1. Перейдем в каталог установленного обновления (обычно это папка, куда распаковывался дистрибутив релиза 1004).
  2. Найдем в нем подкаталог ExtForms, а внутри него — папку PrnForms.
  3. Ищем файл с названием upd_534.ert (название может незначительно варьироваться, но расширение .ert обязательно).
  4. Скопируем этот файл в рабочую базу 1С по пути: [ПутьКБазе]\ExtForms\PrnForms.

Теперь рассмотрим, как зарегистрировать этот файл в режиме «1С:Предприятие»:

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

Важный нюанс: если в базе уже было много старых внешних форм, система может конфликтовать. Рекомендуется проверить файл extforms.dat в папке ExtForms. Иногда его удаление (при закрытой программе) помогает системе корректно перестроить список доступных обработок печати.

Шаг 2: Исправление ошибки в строке 5а (Документ об отгрузке)

Выясним причину, по которой в напечатанном УПД строка 5а остается пустой. Согласно требованиям, в этой строке должны указываться реквизиты первичного документа (накладной). В релизе 1004 часто встречается логическая ошибка в коде внешней формы, когда функция сбора данных не может определить связь между Счет-фактурой и Реализацией.

Рассмотрим, как внести исправления в модуль файла upd_534.ert. Нам необходимо найти фрагмент кода, отвечающий за формирование переменной строки 5а. Проанализируем типичный кусок кода, который требует правки:


// В модуле формы ищем процедуру Печать()
// Находим место формирования реквизитов отгрузки
Если ПустоеЗначение(ДокОснование) = 0 Тогда
    Строка5а = "№ " + СокрЛП(ДокОснование.НомерДок) + " от " + Формат(ДокОснование.ДатаДок, "Д ДДММГГГГ");
Иначе
    // Если основание не заполнено, пытаемся взять данные из текущего контекста
    Строка5а = "№ " + СокрЛП(НомерДок) + " от " + Формат(ДатаДок, "Д ДДММГГГГ");
КонецЕсли;

Чтобы строка 5а заполнялась всегда, даже если УПД печатается из Счета-фактуры, необходимо убедиться, что объект ДокументОснование доступен. Если вы печатаете напрямую из Реализации, значение можно подтянуть через Контекст. Попробуем модифицировать условие так, чтобы оно принудительно проверяло тип документа-основания и корректно выводило его номер и дату.

Шаг 3: Решение проблемы со статусом «0»

Разберем ситуацию, когда в поле «Статус» выводится цифра «0» вместо «1» (Счет-фактура и передаточный документ) или «2» (передаточный документ). Это происходит потому, что переменная Статус в макете не получает значения при инициализации формы.

Посмотрим на пример решения через редактирование макета (таблицы) печатной формы:

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

Проанализируем выражение, которое стоит вставить в свойствах ячейки:


// Вариант 1: Если мы всегда используем УПД как совмещенный документ
"1"

// Вариант 2: Если нужно автоматическое определение
?(ПустоеЗначение(НомерСФ)=0, "1", "2")

Если в коде модуля переменная Статус определена, но не выводится, проверьте, передается ли она в секцию при формировании таблицы. Рассмотрим функцию ВывестиСекцию(). Если в параметрах вызова секции Шапка отсутствует привязка к переменной статуса, макет отобразит значение по умолчанию, которое в 1С 7.7 часто интерпретируется как нуль.

Шаг 4: Настройка ответственных лиц и подписей

В новых формах УПД критически важно правильно заполнять данные ответственных за отгрузку и оформление (строки 10, 13, 15, 18). В типовой конфигурации 7.7 данные руководителя и главного бухгалтера берутся из констант. Однако ответственный за оформление часто не совпадает с ними.

Разберем, как автоматизировать подстановку сотрудника. В модуле .ert найдем область заполнения параметров подписей. Чтобы не вписывать фамилии вручную каждый раз, можно использовать обращение к справочнику Сотрудники или текущему пользователю:


// Пример получения ФИО текущего пользователя для строки 15
ТекПользователь = глПользователь;
ФИООтветственного = ТекПользователь.Наименование;
// Далее передаем ФИООтветственного в соответствующую ячейку макета

Подытожим: для полноценной работы УПД в релизе 1004 необходимо не просто обновить конфигурацию, но и вручную перенести внешнюю форму, проверить корректность связей в коде для строки 5а и настроить макет для отображения статуса. Это связано с тем, что платформа 7.7 требует ручной донастройки внешних компонент печати, которые в современных версиях 1С (8.3) автоматизированы гораздо глубже.

← На главную