Где найти программный код и макет УПД в 1С:УПП 1.3 для сравнения с внешней печатной формой

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

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

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

Поиск точки входа: Модуль менеджера документа

Рассмотрим ситуацию, когда нам необходимо понять, как система начинает процесс печати. В 1С:УПП 1.3, построенной преимущественно на обычных формах, логика формирования печатных форм сосредоточена не в модуле объекта, а в модуле менеджера соответствующего документа. Это связано с тем, что печать часто вызывается из списков документов без создания экземпляра объекта в памяти.

Проанализируем основные документы-основания, которые могут инициировать печать УПД:

Чтобы найти код, выполним следующие шаги:

  1. Откроем конфигуратор и найдем, например, документ РеализацияТоваровУслуг.
  2. Перейдем в Модуль менеджера документа.
  3. Выполним поиск функции ПечатьУниверсальныхПередаточныхДокументов.

Обычно вызов выглядит следующим образом:


// Фрагмент кода из модуля менеджера
Если ИмяМакета = "УниверсальныйПередаточныйДокумент" Тогда
    Возврат ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, НапечататьВВсем, СсылкаНаОбъект);
КонецЕсли;

Основная логика в общем модуле

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

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

Перейдите в ветку Общие -> Общие модули и найдите модуль УниверсальныйПередаточныйДокумент. Именно в нем сосредоточены функции по сбору данных, расчету налогов, определению статуса (1 или 2) и заполнению областей макета.

Ключевые функции, которые нам стоит изучить в этом модуле:

Работа с макетом (чертежом формы)

Посмотрим на макет документа. В случае с УПД в УПП 1.3 макет чаще всего является Общим макетом. Это логично, так как форма УПД жестко регламентирована законодательством и должна быть идентичной для всех документов реализации.

Найдем его в дереве конфигурации: Общие -> Общие макеты -> УниверсальныйПередаточныйДокумент. Обратите внимание, что при обновлении законодательства «1С» добавляет новые макеты с указанием номера постановления или года, например, УниверсальныйПередаточныйДокумент981.

При сравнении с внешней печатной формой важно проверить:

Отладка и сравнение с внешней формой

Проанализируем ситуацию: ваша внешняя печатная форма (ВПФ) выводит данные не так, как стандартная. Чтобы понять, где происходит расхождение, воспользуемся отладчиком.

Рассмотрим по шагам процесс отладки:

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

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


// Пример логики определения статуса
Если СформироватьКакСчетФактуру Тогда
    ОбластьМакета.Параметры.Статус = "1";
Иначе
    ОбластьМакета.Параметры.Статус = "2";
КонецЕсли;

Если ваша внешняя форма всегда принудительно ставит статус «1», а документ не имеет проведенного счета-фактуры, это может привести к отсутствию номера и даты в шапке документа.

Связь с учетом НДС

Разберем еще один важный аспект. Код формирования УПД тесно связан с подсистемой учета НДС. Если внешняя печатная форма выдает неверные суммы налога или не видит ГТД, стоит проверить обращение к функциям модуля УчетНДС.

В стандартном коде часто используется вызов:

СтруктураДанныхНДС = УчетНДС.ПолучитьДанныеДляПечати(СсылкаНаОбъект);

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

Итоги анализа

Подводя итог, можно сказать, что для полноценного сравнения внешней печатной формы УПД со стандартной в УПП 1.3, вам необходимо исследовать три составляющих:

  1. Точка вызова: Модуль менеджера документа-основания.
  2. Ядро логики: Общий модуль УниверсальныйПередаточныйДокумент.
  3. Визуальная часть: Общий макет в ветке Общие макеты.

Помните, что внешняя печатная форма в УПП — это обычно отдельная обработка. Чтобы сравнить её код с эталоном, откройте её через Файл -> Открыть в конфигураторе и сопоставьте содержимое её модуля объекта с содержимым вышеуказанного общего модуля. Обращайте внимание на то, как заполняется переменная ТабличныйДокумент — это финальный результат, который видит пользователь.

← На главную