Как исправить ошибки заполнения адресов и другие проблемы в 1С:УПП после обновления?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

В процессе обновления конфигурации 1С:Управление производственным предприятием (УПП) до версии 1.3.166.2 и последующих релизов пользователи часто сталкиваются с целым комплексом проблем. Эти проблемы касаются не только заполнения адресов, но и функционала ФСС, работы с контактной информацией, совместимости с платформами 1С:Предприятие 8.3 и других аспектов бухгалтерского и налогового учета. Рассмотрим подробнее основные сложности и пути их решения, основываясь на опыте сообщества 1С.

Ошибки при заполнении контактной информации и адресов (ФИАС, JSON, ПанельНастроекАдреса)

После обновления многие пользователи столкнулись с трудностями при работе с контактной информацией, особенно в части заполнения адресов по новому стандарту ФИАС (Федеральной информационной адресной системы).

Ошибки типа "Передано значение недопустимого типа" при сохранении адреса

При попытке сохранить адрес контрагента, особенно при указании номера квартиры, возникала ошибка:


{ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный.Модуль(225)}: Ошибка при вызове метода контекста (ЗаписатьJSON) ЗаписатьJSON(ЗаписьJSON, Значение,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный); по причине: Передано значение недопустимого типа

Причина: Вероятно, изменения в структуре или типах данных контактной информации, связанные с переходом на ФИАС, привели к некорректной сериализации данных в JSON.

Решение 1 (локальное изменение типов):

  1. Откройте обработку РедактированиеКонтактнойИнформации.
  2. Измените типы реквизитов ТипДома, ТипКорпуса, ТипКвартиры на Строка(0). Это может временно устранить проблему.

Решение 2 (официальное исправление от 1С, версия 1.3.167.1 и выше):

Фирма 1С зарегистрировала ошибку 00-00404444 и предложила следующее локальное исправление, которое впоследствии вошло в следующие релизы:

  1. Замените обработку РедактированиеКонтактнойИнформации. Обычно такую обработку предоставляют в виде внешнего файла (например, на портале ИТС или в релизе).
  2. Внесите изменения в общий модуль АдресныйКлассификаторСлужебный:

    В функции НомерДомаЧислом найдите строку:

    НаборЦифр = СтрРазделить(ИсходнаяСтрока, СимволыДляУдаления, Ложь);

    И замените ее на:

    
    НаборЦифр = ?(ПустаяСтрока(ИсходнаяСтрока) И ПустаяСтрока(СимволыДляУдаления), Новый Массив, СтрРазделить(ИсходнаяСтрока, СимволыДляУдаления, Ложь));
    

    В процедуре ДобавитьИнформациюОДоме найдите строку:

    
    НайденныйФрагментСтроения = Новый ФорматированнаяСтрока(ТекстПроСтроения, Разделитель + НазваниеСтроения + " " + СокрЛП(ОписаниеДома.Строние));
    

    И замените ее на:

    
    НайденныйФрагментСтроения = Новый ФорматированнаяСтрока(ТекстПроСтроения, Разделитель + НазваниеСтроения + " " + СокрЛП(ОписаниеДома.Строение));
    
  3. В общем модуле РаботаСАдресами измените объявление функции:

    Найдите:

    Функция СтруктураАдресаВСтруктуруJSON(Знач КонтактнаяИнформация)

    И замените на:

    Функция СтруктураАдресаВСтруктуруJSON(Знач КонтактнаяИнформация) Экспорт

Ошибка "Поле объекта не обнаружено (ПанельНастроекАдреса)"

При попытке выбрать адрес медицинского учреждения в документе больничного листа появлялась ошибка:


{Обработка.РедактированиеКонтактнойИнформации.МодульОбъекта(236)}: Поле объекта не обнаружено (ПанельНастроекАдреса) ФормаРедактированияАдреса.ЭлементыФормы.ПанельНастроекАдреса.Свертка = РежимСверткиЭлементаУправления.Верх;

Причина: Вероятно, в обновленной обработке РедактированиеКонтактнойИнформации были изменены или удалены элементы формы, на которые ссылался код.

Решение: Данная проблема также была исправлена официальным патчем, описанным в Решении 2 выше. Обновление обработки РедактированиеКонтактнойИнформации устраняет эту ошибку.

Ошибка "Тип не определен (ФормаКлиентскогоПриложения)"

При открытии классификатора из адресной строки физического лица или при загрузке адресного классификатора с портала 1С:ИТС возникала ошибка:


{ОбщийМодуль.ДлительныеОперацииКлиент.Модуль(260)}: Тип не определен (ФормаКлиентскогоПриложения) ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));

Причина: Этот тип (ФормаКлиентскогоПриложения) появился начиная с версии платформы 1С:Предприятие 8.3.14. Если ваша платформа ниже этой версии или режим совместимости конфигурации установлен некорректно, система не сможет определить данный тип.

Решение 1 (обновление платформы):

Рекомендуется обновить технологическую платформу 1С:Предприятие до версии 8.3.14 или выше. Важно также убедиться, что режим совместимости конфигурации установлен на "Версия 8.2.13" (или выше, если это требуется новым релизом УПП). Например, на платформе 8.3.16.1063 эта ошибка уже не проявляется.

Решение 2 (локальный обходной путь для старых платформ):

Если обновление платформы по каким-либо причинам невозможно (например, из-за несовместимости с другими конфигурациями, как в случае с Альфа-Авто), можно попробовать следующий обходной путь:

  1. В общем модуле ДлительныеОперацииКлиент найдите строку: ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения")); И закомментируйте ее или замените Тип("ФормаКлиентскогоПриложения") на Тип("УправляемаяФорма").
  2. В общем модуле ДлительныеОперацииГлобальный найдите фрагмент:
    
    Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("ФормаКлиентскогоПриложения")
    И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда
    ОперацияОтменена = Истина;
    КонецЕсли;
    
    И измените его, исключив проверку на Тип("ФормаКлиентскогоПриложения"), или замените его на Тип("УправляемаяФорма"):
    
    Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено 
    И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("УправляемаяФорма")
    // Или просто закомментируйте строку с Тип("ФормаКлиентскогоПриложения")
    И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда
    ОперацияОтменена = Истина;
    КонецЕсли;
    

    Пользователи подтверждают, что замена Тип("ФормаКлиентскогоПриложения") на Тип("УправляемаяФорма") работает на платформах 8.3.10.2466 и ниже.

Важно: Этот обходной путь может иметь непредсказуемые последствия в других частях конфигурации, где используется тип ФормаКлиентскогоПриложения. Рекомендуется использовать его только как временное решение, если обновление платформы невозможно.

Проблемы с загрузкой адресного классификатора ФИАС

Переход на ФИАС вместо КЛАДР связан с требованиями ФНС и более актуальной структурой адресных данных. Однако, загрузка нового классификатора в УПП может быть сопряжена с трудностями.

Ошибка "Менеджер заданий не активен" в файловой базе

При попытке загрузить адресный классификатор, особенно в файловой базе, может возникать ошибка:


{ОбщийМодуль.ДлительныеОперации.Модуль(822)}: Ошибка при вызове метода контекста (ПолучитьФоновыеЗадания) ЗапущеноЗаданийВФайловойИБ = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество(); по причине: Менеджер заданий не активен.

Причина: В файловых базах механизм фоновых заданий работает иначе, чем в клиент-серверных. Для их работы требуется выделенный клиентский процесс, который будет периодически выполнять обработку заданий. Если такой процесс не настроен, фоновые задания не смогут выполняться.

Решение:

  1. Перейдите в Настройка программы, раздел Регламентные задания.
  2. Выберите пользователя, от имени которого будут выполняться регламентные задания в файловом режиме (обычно это технический пользователь с полными правами).
  3. Запустите отдельный сеанс 1С:Предприятие под этим пользователем и оставьте его открытым. Этот сеанс будет выполнять роль менеджера заданий.
  4. Можно также обернуть вызовы ПолучитьФоновыеЗадания в блоке Попытка...Исключение, чтобы избежать критических ошибок, например, так (изменения в ОбщийМодуль.ДлительныеОперации.ЕстьФоновыеЗаданияВФайловойИБ()):
    
    Попытка
        ЗапущеноЗаданийВФайловойИБ = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество();
    Исключение
        ЗапущеноЗаданийВФайловойИБ = 0;
    КонецПопытки;
    

Ошибка "Недостаточно прав для доступа к сервису (HTTP 403)"

При попытке загрузить классификатор с портала 1С:ИТС может появиться сообщение:


Веб-сервис для работы с адресами не доступен по причине: ... При запросе: rest/v2/selectByCode?code=... сервер вернул HTTP Код: 403 с текстом: {"type":"Ошибка аутентификации","message":"Недостаточно прав для доступа к сервису"...}

Причина: Хотя сам классификатор ФИАС является открытым и бесплатным, для автоматической загрузки и обновления через веб-сервис 1С требуется активная интернет-поддержка пользователей (т.е. действующая подписка на 1С:ИТС).

Решение:

  1. Убедитесь, что у вас есть действующая подписка на 1С:ИТС.
  2. Если подписка активна, проверьте настройки интернет-поддержки в 1С, а также отсутствие блокировок со стороны межсетевого экрана, антивируса или интернет-провайдера.
  3. Альтернативный способ (без активной подписки ИТС для веб-сервиса): Скачайте файлы ФИАС вручную с портала 1С:ИТС (раздел "Обновления программ", ссылка "Адресный классификатор (ФИАС)") или с сайта ФНС. Затем загрузите их в базу из папки на диске. Это позволит обновить классификатор без использования веб-сервиса.

Инструкция по загрузке адресного классификатора с портала 1С:ИТС

Чтобы загрузить адресный классификатор (после решения проблем с менеджером заданий и интернет-поддержкой):

  1. Откройте справочник Физические лица.
  2. Перейдите в раздел Общее -> Адреса и телефоны.
  3. Нажмите кнопку Представление. В открывшейся форме Адрес проживания физ. лица нажмите кнопку Классификатор.
  4. В открывшейся форме Загрузка адресного классификатора выберите нужный регион и вариант загрузки С портала 1С:ИТС (или Из папки на диске, если вы скачали файлы вручную).
  5. Записи об адресных объектах должны начать появляться в регистре сведений АдресныеОбъекты.

Проблемы с отображением и заполнением адресов в документах

Даже после успешного обновления классификатора и исправлений ошибок сохранения, адреса могут некорректно отображаться или заполняться в других документах.

Адрес не заполняется в документах "Заказ покупателя" или "Реализация товаров и услуг"

После применения первых исправлений (например, из сообщения 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 и предложила следующие изменения:

  1. В общем модуле УправлениеКонтактнойИнформацией, в функции ПолучитьПолныйАдрес(Запись) Экспорт замените строку:
    
    Если ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение) Тогда
    
    На:
    
    Если (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И ПустаяСтрока(Запись.Значение)
    Или (ОпределитьДляОбъектаРоссийскийАдрес(Запись) И Запись.Объект = Неопределено)) Тогда
    
  2. В обработке РедактированиеКонтактнойИнформации, форма ФормаЗаписиАдреса, процедура ПередОткрытием:

    Перед строкой:

    НачальноеЗначениеВыбора.Свойство("Район", Поле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С, удалите кэш для данной базы и попробуйте снова.

Ошибка "useQueryGroupIfPossible" при работе с отчетами на старой платформе

При обновлении на релиз 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 (локальное изменение схемы отчета): Если обновление платформы невозможно, можно попробовать изменить схему компоновки данных проблемного отчета вручную. Для этого:

  1. Откройте конфигурацию в режиме "Конфигуратор" на поддерживаемой версии платформы (8.3.14+).
  2. Найдите проблемный отчет (например, СправкаРасчетПереходНаФСБУ6).
  3. Откройте его макет ОсновнаяСхемаКомпоновкиДанных.
  4. Сохраните эту схему в файл.
  5. Откройте конфигурацию на вашей старой платформе (до 8.3.14).
  6. Загрузите ранее сохраненную схему, при этом система "обрежет" неизвестные ей свойства, такие как useQueryGroupIfPossible.
  7. Сохраните конфигурацию.

Важно: Это очень рискованный метод, так как изменение схемы может привести к некорректной работе отчета. Лучше всего — обновить платформу.

Настройка и поддержка УПП

Общая рекомендация для пользователей УПП — быть крайне осторожными с обновлениями, особенно учитывая, что конфигурация находится на завершающей стадии поддержки.

УПП — это комплексная конфигурация, и любое обновление может повлечь за собой непредвиденные проблемы. Совместный опыт и оперативный обмен информацией между пользователями и программистами являются ключевыми для поддержания ее работоспособности в текущих условиях. Когда трудозатраты на поддержку становятся избыточными, можно изучить раздел с решениями для перехода из 1С:УПП в более современные системы.

← На главную