В процессе обновления конфигурации 1С:Управление производственным предприятием (УПП) до версии 1.3.166.2 и последующих релизов пользователи часто сталкиваются с целым комплексом проблем. Эти проблемы касаются не только заполнения адресов, но и функционала ФСС, работы с контактной информацией, совместимости с платформами 1С:Предприятие 8.3 и других аспектов бухгалтерского и налогового учета. Рассмотрим подробнее основные сложности и пути их решения, основываясь на опыте сообщества 1С.
После обновления многие пользователи столкнулись с трудностями при работе с контактной информацией, особенно в части заполнения адресов по новому стандарту ФИАС (Федеральной информационной адресной системы).
При попытке сохранить адрес контрагента, особенно при указании номера квартиры, возникала ошибка:
{ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный.Модуль(225)}: Ошибка при вызове метода контекста (ЗаписатьJSON) ЗаписатьJSON(ЗаписьJSON, Значение,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный); по причине: Передано значение недопустимого типа
Причина: Вероятно, изменения в структуре или типах данных контактной информации, связанные с переходом на ФИАС, привели к некорректной сериализации данных в JSON.
Решение 1 (локальное изменение типов):
РедактированиеКонтактнойИнформации.ТипДома, ТипКорпуса, ТипКвартиры на Строка(0). Это может временно устранить проблему.Решение 2 (официальное исправление от 1С, версия 1.3.167.1 и выше):
Фирма 1С зарегистрировала ошибку 00-00404444 и предложила следующее локальное исправление, которое впоследствии вошло в следующие релизы:
РедактированиеКонтактнойИнформации. Обычно такую обработку предоставляют в виде внешнего файла (например, на портале ИТС или в релизе).АдресныйКлассификаторСлужебный:
В функции НомерДомаЧислом найдите строку:
НаборЦифр = СтрРазделить(ИсходнаяСтрока, СимволыДляУдаления, Ложь);
И замените ее на:
НаборЦифр = ?(ПустаяСтрока(ИсходнаяСтрока) И ПустаяСтрока(СимволыДляУдаления), Новый Массив, СтрРазделить(ИсходнаяСтрока, СимволыДляУдаления, Ложь));
В процедуре ДобавитьИнформациюОДоме найдите строку:
НайденныйФрагментСтроения = Новый ФорматированнаяСтрока(ТекстПроСтроения, Разделитель + НазваниеСтроения + " " + СокрЛП(ОписаниеДома.Строние));
И замените ее на:
НайденныйФрагментСтроения = Новый ФорматированнаяСтрока(ТекстПроСтроения, Разделитель + НазваниеСтроения + " " + СокрЛП(ОписаниеДома.Строение));
РаботаСАдресами измените объявление функции:
Найдите:
Функция СтруктураАдресаВСтруктуруJSON(Знач КонтактнаяИнформация)
И замените на:
Функция СтруктураАдресаВСтруктуруJSON(Знач КонтактнаяИнформация) Экспорт
При попытке выбрать адрес медицинского учреждения в документе больничного листа появлялась ошибка:
{Обработка.РедактированиеКонтактнойИнформации.МодульОбъекта(236)}: Поле объекта не обнаружено (ПанельНастроекАдреса) ФормаРедактированияАдреса.ЭлементыФормы.ПанельНастроекАдреса.Свертка = РежимСверткиЭлементаУправления.Верх;
Причина: Вероятно, в обновленной обработке РедактированиеКонтактнойИнформации были изменены или удалены элементы формы, на которые ссылался код.
Решение: Данная проблема также была исправлена официальным патчем, описанным в Решении 2 выше. Обновление обработки РедактированиеКонтактнойИнформации устраняет эту ошибку.
При открытии классификатора из адресной строки физического лица или при загрузке адресного классификатора с портала 1С:ИТС возникала ошибка:
{ОбщийМодуль.ДлительныеОперацииКлиент.Модуль(260)}: Тип не определен (ФормаКлиентскогоПриложения) ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));
Причина: Этот тип (ФормаКлиентскогоПриложения) появился начиная с версии платформы 1С:Предприятие 8.3.14. Если ваша платформа ниже этой версии или режим совместимости конфигурации установлен некорректно, система не сможет определить данный тип.
Решение 1 (обновление платформы):
Рекомендуется обновить технологическую платформу 1С:Предприятие до версии 8.3.14 или выше. Важно также убедиться, что режим совместимости конфигурации установлен на "Версия 8.2.13" (или выше, если это требуется новым релизом УПП). Например, на платформе 8.3.16.1063 эта ошибка уже не проявляется.
Решение 2 (локальный обходной путь для старых платформ):
Если обновление платформы по каким-либо причинам невозможно (например, из-за несовместимости с другими конфигурациями, как в случае с Альфа-Авто), можно попробовать следующий обходной путь:
ДлительныеОперацииКлиент найдите строку:
ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));
И закомментируйте ее или замените Тип("ФормаКлиентскогоПриложения") на Тип("УправляемаяФорма").ДлительныеОперацииГлобальный найдите фрагмент:
Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("ФормаКлиентскогоПриложения")
И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда
ОперацияОтменена = Истина;
КонецЕсли;
Тип("ФормаКлиентскогоПриложения"), или замените его на Тип("УправляемаяФорма"):
Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено
И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("УправляемаяФорма")
// Или просто закомментируйте строку с Тип("ФормаКлиентскогоПриложения")
И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда
ОперацияОтменена = Истина;
КонецЕсли;
Пользователи подтверждают, что замена Тип("ФормаКлиентскогоПриложения") на Тип("УправляемаяФорма") работает на платформах 8.3.10.2466 и ниже.
Важно: Этот обходной путь может иметь непредсказуемые последствия в других частях конфигурации, где используется тип ФормаКлиентскогоПриложения. Рекомендуется использовать его только как временное решение, если обновление платформы невозможно.
Переход на ФИАС вместо КЛАДР связан с требованиями ФНС и более актуальной структурой адресных данных. Однако, загрузка нового классификатора в УПП может быть сопряжена с трудностями.
При попытке загрузить адресный классификатор, особенно в файловой базе, может возникать ошибка:
{ОбщийМодуль.ДлительныеОперации.Модуль(822)}: Ошибка при вызове метода контекста (ПолучитьФоновыеЗадания) ЗапущеноЗаданийВФайловойИБ = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество(); по причине: Менеджер заданий не активен.
Причина: В файловых базах механизм фоновых заданий работает иначе, чем в клиент-серверных. Для их работы требуется выделенный клиентский процесс, который будет периодически выполнять обработку заданий. Если такой процесс не настроен, фоновые задания не смогут выполняться.
Решение:
ПолучитьФоновыеЗадания в блоке Попытка...Исключение, чтобы избежать критических ошибок, например, так (изменения в ОбщийМодуль.ДлительныеОперации.ЕстьФоновыеЗаданияВФайловойИБ()):
Попытка
ЗапущеноЗаданийВФайловойИБ = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество();
Исключение
ЗапущеноЗаданийВФайловойИБ = 0;
КонецПопытки;
При попытке загрузить классификатор с портала 1С:ИТС может появиться сообщение:
Веб-сервис для работы с адресами не доступен по причине: ... При запросе: rest/v2/selectByCode?code=... сервер вернул HTTP Код: 403 с текстом: {"type":"Ошибка аутентификации","message":"Недостаточно прав для доступа к сервису"...}
Причина: Хотя сам классификатор ФИАС является открытым и бесплатным, для автоматической загрузки и обновления через веб-сервис 1С требуется активная интернет-поддержка пользователей (т.е. действующая подписка на 1С:ИТС).
Решение:
Чтобы загрузить адресный классификатор (после решения проблем с менеджером заданий и интернет-поддержкой):
АдресныеОбъекты.Даже после успешного обновления классификатора и исправлений ошибок сохранения, адреса могут некорректно отображаться или заполняться в других документах.
После применения первых исправлений (например, из сообщения 58), пользователи обнаружили, что в документах "Заказ покупателя" или "Реализация товаров и услуг" при выборе адреса доставки, новое созданное адресное представление не заполняется в поле.
Причина: Функция ПолучитьПолныйАдрес в общем модуле УправлениеКонтактнойИнформацией, ответственная за формирование строкового представления адреса, могла получать пустые значения для отдельных полей адреса (Запись.Поле1, Запись.Поле2 и т.д.), в то время как полная информация хранилась в Запись.Значение (в формате JSON) или Запись.Представление.
Решение (официальное исправление, вошло в 1.3.167.2 и выше):
1С зарегистрировала ошибку 00-00404772 и предложила исправление в методе ПолучитьПолныйАдрес общего модуля УправлениеКонтактнойИнформацией. Замените строку:
Если ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение) Тогда
На следующую (это более позднее и полное исправление):
Если (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение)
Или (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И Запись.Объект = Неопределено)) Тогда
Временный обходной путь (до применения официального исправления):
Добавьте в эту же функцию ПолучитьПолныйАдрес следующий код:
// ...
// Переменная Результат как раз формируется из полей Запись.Поле1 и.т д. , а они пустые
// Переменная Результат принимает значение ",, , , , , , , , "
Если Результат = ",, , , , , , , , " Тогда
Результат = Запись.Представление;
КонецЕсли;
// ...
При попытке провести документ "Реестр сведений ФСС о пособиях по нетрудоспособности" или заполнить адрес в больничном листе, возникала ошибка:
"В строке номер 1 табличной части 'Пособия': Не удалось разобрать адрес регистрации, возможно указан адрес за пределами РФ!"
Причина: Проблема связана с некорректным форматом адреса, передаваемым в ФСС. В модуле ПолучитьСтруктуруАдресаИзСтроки ожидается определенное количество запятых (9 или 12) для российского адреса. Если количество запятых не совпадает или функция РегламентированнаяОтчетность.РазложитьАдрес некорректно раскладывает адрес, например, помещая индекс в поле "Страна" вместо "Индекс", то система считает адрес иностранным или нераспознанным.
Решение (официальное исправление, вошло в 1.3.167.2 и выше):
1С зарегистрировала ошибки 00-00404772, 00-00404444 и 00-00404772 и предложила следующие изменения:
УправлениеКонтактнойИнформацией, в функции ПолучитьПолныйАдрес(Запись) Экспорт замените строку:
Если ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение) Тогда
Если (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение)
Или (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И Запись.Объект = Неопределено)) Тогда
РедактированиеКонтактнойИнформации, форма ФормаЗаписиАдреса, процедура ПередОткрытием:
Перед строкой:
НачальноеЗначениеВыбора.Свойство("Район", Поле3);
Добавьте строку:
НачальноеЗначениеВыбора.Свойство("Индекс", Поле1);
После строки:
КонтактнаяИнформация.Вставить("Регион", Поле2);
Добавьте строки:
КонтактнаяИнформация.Вставить("Город", Поле4);
КонтактнаяИнформация.Вставить("Индекс", Поле1);
КонтактнаяИнформация.Вставить("Дом", Поле7);
Эти изменения помогают корректно передавать индекс и другие части адреса, обеспечивая правильное распознавание ФСС. Для исключения подобных ошибок в будущем компании часто выделяют кадровый контур в отдельную программу, используя перенос кадровых и расчётных данных из 1С:УПП в 1С:ЗУП 3.
Кроме адресных проблем, обновления УПП могут вызывать и другие критические ошибки в разных подсистемах.
В релизах 1.3.178.1 и 1.3.178.2 при расчете зарплаты за месяц (в документе "Отражение зарплаты в регл. учете") может возникать ошибка:
{Документ.ОтражениеЗарплатыВРеглУчете.МодульОбъекта(39980)}: Ошибка при вызове метода контекста (Выполнить) ТаблицаКоэффициентов = Запрос.Выполнить().Выгрузить(); по причине: {(17, 4)}: Не задано значение параметра "УсловиеОтбораПоСотрудникам" И <<?>>&УсловиеОтбораПоСотрудникам
Временная таблица уже существует ВТПериодыНалогаНаДоходы.
Причина: Это явная ошибка в коде конфигурации, связанная с формированием запросов при расчете зарплаты.
Решение: Обновите конфигурацию до следующего минорного релиза. Например, ошибка, упомянутая в сообщениях 239 и 259, была исправлена в релизе 1.3.178.3.
В релизах 1.3.181.1, 1.3.182.1 или 1.3.182.2 при печати формы "СчетФактура283" (для документа "Документ.СчетФактураВыданный") может появляться ошибка:
{ОбщийМодуль.ИнтеграцияИСПереопределяемый.Модуль(559,29)}: Переменная не определена (БухгалтерскиеОтчеты) ДанныеОтветственногоЛица = <<?>>БухгалтерскиеОтчеты.ПолучитьДанныеОтветственногоЛица(ПараметрыОтветственногоЛица);
Причина: Вероятно, ошибка связана с некорректным кэшированием или изменением зависимостей модулей после обновления.
Решение: В большинстве случаев помогает очистка кэша 1С. Закройте все сеансы 1С, удалите кэш для данной базы и попробуйте снова.
При обновлении на релиз 1.3.173.1 (и выше) на старой версии платформы (например, 8.3.10.2466) возникает ошибка:
Ошибка загрузки документа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: dataSet Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/schema}DataSet по причине: Ошибка преобразования данных XDTO: НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/schema}useQueryGroupIfPossible Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
Причина: Свойство useQueryGroupIfPossible (аналог "Использовать группировки запроса если возможно") для схем компоновки данных (СКД) появилось только в платформе 8.3.14. Если отчет или динамический список был создан/изменен на платформе 8.3.14+ и сохранен в конфигурации, старая платформа (до 8.3.14) не сможет его корректно десериализовать и выдаст ошибку.
Решение 1 (рекомендуемое): Обновите технологическую платформу 1С:Предприятие до версии 8.3.14 или выше. Производитель явно указывает в файлах ReadMe.txt к релизам, что конфигурация "Управление производственным предприятием" предназначена для использования с версией системы 1С:Предприятие 8 не ниже 8.3.14.
Решение 2 (локальное изменение схемы отчета): Если обновление платформы невозможно, можно попробовать изменить схему компоновки данных проблемного отчета вручную. Для этого:
СправкаРасчетПереходНаФСБУ6).ОсновнаяСхемаКомпоновкиДанных.useQueryGroupIfPossible.Важно: Это очень рискованный метод, так как изменение схемы может привести к некорректной работе отчета. Лучше всего — обновить платформу.
Общая рекомендация для пользователей УПП — быть крайне осторожными с обновлениями, особенно учитывая, что конфигурация находится на завершающей стадии поддержки.
ReadMe.txt к каждому релизу УПП. Использование более старой платформы может привести к непредсказуемым ошибкам.УПП — это комплексная конфигурация, и любое обновление может повлечь за собой непредвиденные проблемы. Совместный опыт и оперативный обмен информацией между пользователями и программистами являются ключевыми для поддержания ее работоспособности в текущих условиях. Когда трудозатраты на поддержку становятся избыточными, можно изучить раздел с решениями для перехода из 1С:УПП в более современные системы.