«Нам бы в эту накладную ещё подпись управляющего добавить.» Эту фразу мы слышим в разных вариациях каждую неделю. Кому-то нужна подпись, кому-то — дополнительная колонка в табличной части, кому-то — данные из другого документа прямо в печатной форме. Задачи разные, а суть одна: типовая печатная форма 1С не покрывает потребности конкретного бизнеса.
Это нормально. Типовые формы делаются универсальными — чтобы подходили большинству. Но «большинство» — это не «все». Как только у предприятия появляется своя специфика (а она есть у каждого), стандартных форм перестаёт хватать.
Расскажем, какие бывают доработки печатных форм, покажем реальные примеры из практики и объясним, что можно поправить самостоятельно, а где без программиста не обойтись.
Какие доработки печатных форм бывают
Все запросы, которые мы получаем по печатным формам, укладываются в несколько категорий. Вот основные.
Добавление подписей и ответственных лиц
Типовые формы обычно содержат одну-две подписи: «Руководитель» и «Главный бухгалтер». Иногда — «Кладовщик» или «Кассир». Но на практике документ часто подписывают больше людей. Управляющий ресторана, материально ответственное лицо, заведующий складом, начальник цеха — у каждой организации свой набор.
Задача кажется простой: добавить строку для подписи. На деле нужно не просто нарисовать черту — нужно, чтобы ФИО и должность подставлялись автоматически из справочника, чтобы при смене сотрудника не пришлось править форму заново.
Новые колонки в табличной части
Вторая по частоте задача. В печатной форме есть таблица с товарами или материалами, но в ней не хватает нужных данных. Нет закупочной цены рядом с розничной. Нет артикула поставщика. Нет процента наценки. Информация в базе есть, но до печатной формы она «не доехала».
Иногда нужно не добавить колонку, а переименовать существующую. «Выход» вместо «Количество», «Цена поставщика» вместо «Цена», «Итого с НДС» вместо просто «Сумма». Мелочь — но для бухгалтера, который каждый день работает с этими документами, разница ощутимая.
Данные из связанных документов и файлов
Самый сложный случай. Нужно вывести на печать то, что хранится не в самом документе, а где-то рядом: прикреплённый сертификат качества, файл из присоединённых документов, реквизит из связанного договора. Типовая форма этого не умеет — она работает только с данными «своего» документа.
Тут уже простым редактированием макета не обойтись. Нужно писать код, который достаёт данные из других объектов базы и встраивает их в печатную форму.
Расширения: как дорабатывают правильно
Прежде чем перейти к примерам, важный технический момент. Есть два способа изменить печатную форму в 1С.
Первый — изменить конфигурацию напрямую. Открыть конфигуратор, найти нужный макет, отредактировать. Быстро, понятно. Но есть серьёзный минус: при следующем обновлении 1С ваши изменения могут пропасть. Обновление заменяет типовые объекты новыми версиями, и если вы правили макет внутри конфигурации — он перезапишется.
Кроме того, такие изменения «снимают конфигурацию с поддержки» — то есть усложняют все будущие обновления. Каждый раз придётся вручную сравнивать изменения и решать конфликты.
Второй — использовать расширение. Расширение — это отдельный модуль, который подключается к конфигурации и модифицирует её поведение, не трогая основной код. Печатная форма из расширения «накладывается» поверх типовой. При обновлении 1С основная конфигурация обновляется штатно, а расширение продолжает работать — оно независимое.
Мы всегда используем второй способ. Он чуть сложнее в разработке, но избавляет от головной боли при обновлениях. Клиенту не приходится каждый квартал платить за «восстановление доработок после обновления».
Если вам предлагают доработать печатную форму — уточните, будут ли это делать через расширение. Если нет, стоит задать вопрос «почему».
Случай первый: подписи в актах и отчётах
Обратилась ресторанная группа. Бухгалтер жаловалась, что в отчётах о розничных продажах и актах списания стоит только одна подпись — «Кассир». А по их внутренним регламентам документ должны подписывать четыре человека: руководитель, бухгалтер, материально ответственное лицо и администратор зала.
Каждый раз после печати бухгалтер вручную дописывала недостающие строки. Ручкой. На каждом экземпляре. При объёме в 30-40 документов в неделю — это полдня потерянного времени.
Что мы сделали:
- Создали расширение, которое перехватывает формирование печатных форм отчёта о розничных продажах и акта списания.
- Добавили в нижнюю часть формы блок подписей: четыре строки с должностью, ФИО и местом для подписи.
- ФИО и должности подтягиваются автоматически из справочника «Ответственные лица» организации. Если сотрудник увольняется и приходит новый — достаточно обновить справочник, и во всех формах появится актуальная фамилия.
- Добавили настройку: если для какого-то подразделения материально ответственное лицо не назначено, четвёртая строка подписи просто не выводится. Не пустая строка, а именно не выводится — чтобы документ не выглядел незаконченным.
Работу выполнили за два дня. Бухгалтер перестала дописывать ручкой. Документы стали выглядеть единообразно. И — приятный побочный эффект — при налоговой проверке не возникло вопросов к оформлению.
Случай второй: недостающие колонки в калькуляции
Та же ресторанная группа, другой запрос. Шеф-повар и бухгалтер работали с калькуляционными картами — печатными формами, которые показывают состав блюда, нормы закладки, себестоимость.
Проблема: в типовой форме была колонка «Цена» (та, по которой ингредиент учтён в базе), но не было «Цены поставщика» (фактической закупочной) и «Цены по меню» (по которой блюдо продаётся гостю). Бухгалтер не могла в одном документе увидеть полную картину: сколько стоит приготовить блюдо, сколько мы за него получаем, какая наценка.
Ещё одна мелочь, которая раздражала: колонка «Количество» в контексте калькуляции блюда — это «Выход», то есть вес готового ингредиента после обработки. Но в печатной форме написано «Кол-во», и каждый новый сотрудник тратил время, чтобы разобраться, что это значит.
Что мы сделали:
- Добавили две колонки: «Цена поставщика» (последняя цена из документов поступления) и «Цена по меню» (из прайс-листа, привязанного к номенклатуре).
- Переименовали «Кол-во» в «Выход, кг» — теперь и бухгалтеру, и шеф-повару всё понятно.
- Добавили итоговую строку с суммой себестоимости и расчётным процентом наценки.
Форма стала самодостаточной. Раньше бухгалтер держала открытыми три окна: калькуляцию, прайс-лист и отчёт по закупкам. Теперь вся информация — на одном листе. «Наконец-то я вижу в одном месте, сколько блюдо стоит и сколько мы на нём зарабатываем» — это дословная цитата.
Случай третий: сертификаты перестали печататься
Этот случай интересен тем, что формально никто ничего не менял в печатных формах. Сломалось само — после технических работ на базе.
Ситуация: у торговой сети к карточкам товаров прикреплены сертификаты качества и декларации соответствия — сканы в формате PDF и JPEG. Раньше прямо из 1С можно было распечатать товарную накладную и тут же — пакет сертификатов на все позиции в ней. Удобно: отгрузка с документами за пару кликов.
После переноса хранилища файлов с базы данных на дисковые тома (это стандартная операция, которую рекомендует сама фирма 1С для ускорения работы) печать сертификатов перестала работать. Кнопка есть, форма открывается, но вместо сертификатов — пустые листы.
Причина оказалась в следующем. Старый код печатной формы читал файл из реквизита «Хранилище значения» — это поле, в котором файл лежал прямо в базе данных. После миграции на дисковые тома файлы переехали в файловую систему сервера, а поле «Хранилище значения» стало пустым. Код честно читал пустое поле и выводил пустой результат.
Исправление потребовало переписать блок получения файлов. Вместо прямого чтения из реквизита теперь используется стандартный API Библиотеки стандартных подсистем (БСП) — метод ПолучитьДанныеФайла(), который сам определяет, где хранится файл (в базе или на диске), и возвращает его содержимое. Такой код работает независимо от способа хранения.
Мораль: при технических работах на базе (переносы, оптимизации, смена способа хранения) нужно проверять, не сломалось ли что-то в доработках. Типовые механизмы 1С обычно корректно переезжают. А вот код, написанный «напрямую», может оказаться завязан на старую структуру.
Что можно поправить самостоятельно
Не все задачи с печатными формами требуют программиста. Некоторые вещи бухгалтер или администратор может сделать сам, прямо в пользовательском режиме.
Ширина колонок. Если таблица не помещается на лист или колонки слишком узкие — откройте печатную форму, и перед отправкой на принтер потяните границы колонок мышкой. 1С запомнит эти настройки.
Шрифт и размер текста. В некоторых формах можно выделить ячейки и изменить размер шрифта через панель форматирования. Полезно, когда текст не помещается или, наоборот, слишком мелкий для комфортного чтения.
Поля и ориентация страницы. Через меню «Файл» → «Параметры страницы» можно переключить форму с книжной ориентации на альбомную или уменьшить поля. Если таблица широкая — альбомная ориентация иногда решает проблему без доработок.
Скрытие ненужных строк или колонок. Если в форме есть данные, которые вам не нужны, иногда можно их просто скрыть. Правый клик по заголовку колонки → «Скрыть». Но будьте осторожны: это влияет только на отображение, а не на содержимое формы.
Все эти изменения — косметические. Они не затрагивают логику формы, не добавляют новых данных, не меняют формулы. Но иногда именно косметики и не хватает.
Когда нужен специалист
Вот признаки того, что задачу не решить настройками:
- Нужно добавить данные, которых нет в печатной форме. Новая колонка с ценами из другого документа, подпись сотрудника из справочника, расчётное поле с формулой — всё это требует программирования.
- Нужно изменить логику вывода. Например, печатать разные формы для разных типов контрагентов. Или выводить блок подписей только для определённых подразделений. Условная логика — это код.
- Форма перестала работать после обновления или технических работ. Как в третьем случае: причина может быть неочевидной, и без анализа кода не разобраться.
- Нужна совершенно новая печатная форма. Не модификация существующей, а новый документ — например, внутренний акт приёмки, которого в типовой конфигурации нет.
- Форма должна содержать штрихкоды, QR-коды, логотипы. Вставка графических элементов и генерация кодов — задача для разработчика.
Хорошая новость: большинство доработок печатных форм — это задачи на несколько часов. Не дней, не недель. Добавить подписи — час-два. Добавить колонку с данными из базы — два-четыре часа. Создать новую форму с нуля — от четырёх часов до пары дней, в зависимости от сложности.
Исключения бывают, когда форма тянет данные из нескольких баз или требует сложных расчётов. Но это скорее редкость.
Как подготовиться к доработке
Если вы решили обратиться к специалисту, сэкономить время (своё и его) поможет простая подготовка.
Покажите текущую форму. Распечатайте или сохраните в PDF то, что есть сейчас. Пометьте: «вот тут нужна ещё одна подпись», «вот сюда — колонку с ценой поставщика».
Нарисуйте желаемый результат. Даже от руки на бумаге. «Хочу, чтобы внизу было вот так: четыре строки, должность слева, подпись в центре, ФИО справа.» Это гораздо информативнее, чем словесное описание.
Уточните, откуда брать данные. Если нужна новая колонка — объясните, где в базе хранится эта информация. «Цена поставщика — это та, что в документе поступления» или «Ответственный — это тот, кто указан в настройках подразделения». Специалисту нужно знать источник данных, а не только желаемый результат.
Скажите, для каких документов нужна доработка. «Для всех реализаций» — это одна задача. «Только для реализаций с типом операции Продажа комиссионеру» — другая. Чем точнее описание — тем точнее оценка и результат.
Коротко
Печатные формы в 1С — один из самых частых объектов доработки. Подписи ответственных лиц, дополнительные колонки, данные из связанных документов — всё это решается через расширения, не затрагивая типовую конфигурацию. Косметические правки (ширина колонок, шрифты, ориентация страницы) можно сделать самостоятельно. Для всего остального — структурных изменений, новых данных, условной логики — нужен специалист. Подготовьте образец текущей формы и опишите желаемый результат — это ускорит работу вдвое.


