После обновления конфигурации 1С:Бухгалтерия предприятия 3.0 до релиза 3.0.52 пользователи часто сталкиваются со следующими проблемами: вместо номеров телефонов отображаются служебные маски вида КодСтраны=¶КодГорода=¶НомерТелефона=¶Добавочный=, а при вызове дополнительных внешних печатных форм возникает ошибка «Печатная форма недоступна». Рассмотрим причины возникновения этих сбоев и пошаговые способы их устранения.
Проанализируем ситуационную причину: подобные символы и служебные теги появляются в базах, данные в которые ранее переносились из прошлых конфигураций (например, 1С:Бухгалтерия 2.0) или при прямой программной записи контактных данных без использования функций API подсистемы БСП.
В релизе 3.0.52 обновлены алгоритмы библиотеки стандартных подсистем (БСП). При вызове функций формирования представления контактной информации проверяется формат хранения данных. Рассмотрим фрагмент кода клиент-серверного модуля, который возвращает сырую строку, если она не является XML-структурой:
ЭтоСтрока = ТипЗнч(XMLСтрока) = Тип("Строка");
Если ЭтоСтрока И Не УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(XMLСтрока) Тогда
// Предыдущий формат значений полей, возвращаем саму строку.
Возврат XMLСтрока;
КонецЕсли;
Если данные контактной информации остались в старом формате строки с разделителями, система не может распарсить XML-структуру и выводит исходную служебную строку с разделителями ¶.
Для устранения ошибки выполним следующие действия:
Контрагенты или ФизическиеЛица) стандартные механизмы БСП автоматически конвертируют старый формат контактной информации в целевой XML-формат. Попробуем изменить данные в объекте и сохранить его. Если отображение восстановилось, запустим групповую обработку пересохранения объектов для базы данных.УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML, убедимся, что при записи номеров телефонов формируется корректная XML-структура или вызываются методы модуля УправлениеКонтактнойИнформацией.Выясним причину недоступности печатных форм: вместе с релизом 3.0.52 поставляется обновленная версия Библиотеки Стандартных Подсистем. В ней изменились требования к структуре и процедурам экспортных методов модуля объекта внешних обработок.
Для восстановления работы внешних печатных форм разберем по шагам порядок их доработки:
СведенияОВнешнейОбработке() должна возвращать структуру, содержащую актуальный массив объектов метаданных в поле Назначение.Печать должна принимать строго определенный набор параметров:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию для передачи сформированного табличного документа в общий механизм печати.