Как исправить ошибки с контактной информацией и внешними печатными формами после обновления 1С:Бухгалтерия до версии 3.0.52?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

После обновления конфигурации 1С:Бухгалтерия предприятия 3.0 до релиза 3.0.52 пользователи часто сталкиваются со следующими проблемами: вместо номеров телефонов отображаются служебные маски вида КодСтраны=¶КодГорода=¶НомерТелефона=¶Добавочный=, а при вызове дополнительных внешних печатных форм возникает ошибка «Печатная форма недоступна». Рассмотрим причины возникновения этих сбоев и пошаговые способы их устранения.

Проблема 1. Отображение служебной маски вместо контактной информации

Проанализируем ситуационную причину: подобные символы и служебные теги появляются в базах, данные в которые ранее переносились из прошлых конфигураций (например, 1С:Бухгалтерия 2.0) или при прямой программной записи контактных данных без использования функций API подсистемы БСП.

В релизе 3.0.52 обновлены алгоритмы библиотеки стандартных подсистем (БСП). При вызове функций формирования представления контактной информации проверяется формат хранения данных. Рассмотрим фрагмент кода клиент-серверного модуля, который возвращает сырую строку, если она не является XML-структурой:


ЭтоСтрока = ТипЗнч(XMLСтрока) = Тип("Строка");
Если ЭтоСтрока И Не УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(XMLСтрока) Тогда
    // Предыдущий формат значений полей, возвращаем саму строку.
    Возврат XMLСтрока;
КонецЕсли;

Если данные контактной информации остались в старом формате строки с разделителями, система не может распарсить XML-структуру и выводит исходную служебную строку с разделителями .

Для устранения ошибки выполним следующие действия:

  1. Проверим выполнение отложенных обработчиков обновления: перейдем в раздел Администрирование — Обслуживание — Результаты обновления и обработка данных. Убедимся, что все отложенные процедуры конвертации данных БСП выполнены до конца, и запустим их вручную при необходимости.
  2. Выполним программное пересохранение элементов: при интерактивном или программном пересохранении элемента справочника (например, Контрагенты или ФизическиеЛица) стандартные механизмы БСП автоматически конвертируют старый формат контактной информации в целевой XML-формат. Попробуем изменить данные в объекте и сохранить его. Если отображение восстановилось, запустим групповую обработку пересохранения объектов для базы данных.
  3. Проверим программные доработки: если в конфигурацию или внешние обработки внесены изменения, проверяющие УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML, убедимся, что при записи номеров телефонов формируется корректная XML-структура или вызываются методы модуля УправлениеКонтактнойИнформацией.

Проблема 2. Сообщение «Печатная форма недоступна» во внешних обработках

Выясним причину недоступности печатных форм: вместе с релизом 3.0.52 поставляется обновленная версия Библиотеки Стандартных Подсистем. В ней изменились требования к структуре и процедурам экспортных методов модуля объекта внешних обработок.

Для восстановления работы внешних печатных форм разберем по шагам порядок их доработки:

  1. Проверим экспортную функцию получения сведений: в модуле объекта внешней обработки функция СведенияОВнешнейОбработке() должна возвращать структуру, содержащую актуальный массив объектов метаданных в поле Назначение.
  2. Приведем сигнатуру процедуры печати к стандарту БСП: экспортная процедура Печать должна принимать строго определенный набор параметров:
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
  3. Проверим вывод макетов в коллекцию: внутри процедуры формирования печатной формы необходимо использовать метод УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию для передачи сформированного табличного документа в общий механизм печати.
  4. Перерегистрируем обработку в базе: в разделе Администрирование — Дополнительные отчеты и обработки обновим файл внешней обработки, чтобы платформа перечитала параметры назначения и корректно зарегистрировала печатную форму.
← На главную