CRM4DEV-1534: Техническая инструкция по настройке КП-подборки

Назначение

Инструкция описывает техническую настройку КП-подборки из новой шахматки недвижимости 2.0.

Связанная задача: CRM4DEV-1534.

Связанные реализации:

Основные артефакты

Актуальный пакет: CRM4DEV-selection-commercial-offer.zip.

Ключевые файлы:

Что загружать как template

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

kp_selection_template.html

Не использовать как основной template:

Кодировка

Template должен храниться и загружаться в UTF-8.

Контрольный признак нормальной кодировки:

Коммерческое предложение
Описание жилых комплексов
Изображение не загружено
Основные параметры

Если в template видны строки вида РљРѕРјРј..., файл загружен или сохранен в неверной кодировке. Такой template нельзя использовать.

Формат JSON для template

Минимальная структура:

{
  "selection": {
    "title": "Коммерческое предложение",
    "subtitle": "От застройщика «ПАРТНЕР-СТРОЙ СЗ АО»",
    "date": "30.06.2026",
    "count": 5
  },
  "objects": [
    {
      "title": "Квартира · 38,3 м²",
      "subtitle": "Маяк Курган, ГП 6, Парадная 1, кв. №13",
      "price": "3 830 000",
      "pricePerM2": "100 000 руб./м²",
      "planImg": "data:image/png;base64,...",
      "params": [
        { "k": "Площадь", "v": "38,3 м²" },
        { "k": "Этаж", "v": "2" }
      ],
      "description": "Краткое описание объекта"
    }
  ],
  "titlePage": {
    "renderImg": "data:image/png;base64,...",
    "renderCaption": "Рендер жилого комплекса",
    "blocks": [
      {
        "title": "ЖК Маяк",
        "text": "Описание жилого комплекса"
      }
    ],
    "footerLeft": "© 4DEV · Макет подборки",
    "footerRight": "Поддержка печати: Ctrl+P / Сохранить как PDF"
  }
}

Описание ЖК

Основной ожидаемый формат:

"titlePage": {
  "blocks": [
    { "title": "ЖК Маяк", "text": "Описание ЖК" }
  ]
}

Template также поддерживает fallback-поля:

Если описание не передано ни в одном поле, в PDF будет диагностический блок:

Описание ЖК не передано в JSON. Нужно заполнить titlePage.blocks[] или titlePage.description.

Это не ошибка template. Это означает, что 1С не передала описание ЖК.

Рендер ЖК и изображения

Для изображений передавать готовый src:

Поля:

Если изображение не передано, template выводит Изображение не загружено.

Правила пагинации PDF

Текущий template настроен под A4.

Ожидаемая раскладка:

Количество объектовСтраницы
1объект + описание ЖК на одной странице
22 объекта + описание ЖК на одной странице
33 объекта на первой странице, описание ЖК на второй
43 объекта на первой странице, 1 объект + описание ЖК на второй
53 объекта на первой странице, 2 объекта + описание ЖК на второй
63 объекта на первой странице, 3 объекта на второй, описание ЖК на третьей

Техническая логика template:

Автотексты

Должен быть настроен автотекст количества объектов подборки.

Логика:

Если КоммерческоеПредложение = Неопределено Тогда
    Результат = 1;
Иначе
    Результат = КоммерческоеПредложение.ОбъектыНедвижимости.Количество();
КонецЕсли;

Проверить, что имя табличной части в базе действительно ОбъектыНедвижимости. Если имя отличается, код нужно адаптировать.

Настройка печатной формы в 1С

  1. Открыть настройки видов печатных форм.
  2. Найти или создать вид печатной формы для КП-подборки из новой шахматки.
  3. Вставить HTML из kp_selection_template.html.
  4. Проверить, что файл вставлен в UTF-8, без РљРѕ....
  5. Привязать шаблон автотекстов к нужному владельцу/документу КоммерческоеПредложение.
  6. Проверить автотексты по объектам и описанию ЖК.
  7. Сохранить настройки.

Настройка фильтров формы через v8-proxy

Файл kp_selection_filters_v8_proxy.html является отдельным блоком для формы, не печатным template.

HTML ожидает вызов:

window.v8proxy.call(methodName, payload)

Методы 1С, которые должны быть реализованы:

Основная логика:

PDF-сервис

Требования:

Проверка после настройки

Минимальный набор проверок:

  1. Сформировать КП на 1 объект.
  2. Сформировать КП на 2 объекта.
  3. Сформировать КП на 3 объекта.
  4. Сформировать КП на 4 объекта.
  5. Сформировать КП на 5 объектов.
  6. Сформировать КП на 6 объектов.
  7. Проверить количество страниц и раскладку.
  8. Проверить, что описание ЖК отображается.
  9. Проверить PDF из браузера.
  10. Проверить PDF из папки сервиса.
  11. Проверить, что кодировка русских подписей не сломана.
  12. Проверить отправку/формирование share_url.

Типовые дефекты и диагностика

СимптомВероятная причинаЧто проверить
В PDF РљРѕ... вместо русского текстаtemplate сохранен не в UTF-8Перезагрузить kp_selection_template.html в UTF-8
Нет описания ЖК1С не передала titlePage.blocks[] или fallback-поляПроверить JSON перед PDF
Видно Описание ЖК не передано в JSONTemplate работает, но данные не заполненыНастроить автотекст/маппинг описания ЖК
PDF уходит на лишнюю страницуСлишком длинные описания/изображения или измененный CSSПроверить page-break и размеры блоков
PDF не открывается в браузереНекорректная отдача файлаПроверить Content-Type, Content-Length, завершение записи
Дубли объектовНет проверки дублей в табличной частиПроверить добавление по ссылке объекта недвижимости

Актуальный контроль template

Последняя проверка template:

3 объекта -> 2 страницы
4 объекта -> 2 страницы
5 объектов -> 2 страницы
6 объектов -> 3 страницы

Кодировка проверена:

{
  "proper": true,
  "mojibake": false
}