Мы сталкиваемся с критической ситуацией, когда после обновления платформы 1С до версии 8.3.15.1656 механизм "ввод на основании" перестает функционировать должным образом. Основная проблема проявляется в том, что документы "меняются местами": если ранее Документ1 вводился на основании Документа2, то теперь система предлагает Документ2 вводить на основании Документа1. При этом, что крайне важно, в конфигураторе конфигурация выглядит абсолютно корректной, и никаких изменений в метаданные, касающиеся связей документов, не вносилось.
Особую сложность добавляет тот факт, что на сервере, где наблюдается проблема, установлена платформа 8.3.15.1656, но при этом в копии базы данных, развернутой на той же самой версии платформы, функционал "ввода на основании" работает без нареканий. Это наблюдение является ключевым для нашей диагностики, поскольку оно указывает на то, что проблема, скорее всего, не в глобальном баге платформы, а в чем-то более специфическом, связанном с конкретной информационной базой или ее окружением.
В этой статье мы подробно разберем возможные причины такого поведения и предложим пошаговый план действий по устранению проблемы, начиная от самых общих и заканчивая более специфическими.
Прежде чем перейти к конкретным решениям, давайте выясним, какие факторы могут привести к такой аномалии в работе механизма ВводНаОсновании:
Возможная некорректность работы новой версии платформы: Несмотря на то, что платформа 8.3.15.1656 могла ранее работать стабильно или работает корректно в копии, бывают случаи, когда при определенных условиях (специфические данные, особенности конфигурации, серверное окружение) проявляются неявные ошибки. Однако, повторимся, успешная работа в копии базы на той же платформе смещает фокус с глобальной проблемы платформы на локальные.
Повреждение или некорректное состояние информационной базы: Перенос данных, ошибки во время обновления конфигурации или другие факторы могли привести к логическим несоответствиям в самой базе данных. Эти несоответствия могут проявляться только при обращении к определенным структурам данных, например, при построении связей документов для "ввода на основании".
Проблемы с кэшированием метаданных: После обновления платформы как на клиентских машинах, так и на сервере, кэши метаданных могли не обновиться должным образом. Система может продолжать использовать устаревшую информацию о структуре объектов и их связях, что приводит к некорректному поведению функционала.
Особенности динамических обновлений: Если в конфигурацию вносились изменения через механизм динамических обновлений, это также могло повлиять на стабильность работы. Объекты и механизмы, отвечающие за ВводНаОснованииДокументов, часто связаны с глубокими структурами метаданных, которые не всегда корректно обрабатываются при динамическом обновлении. Ошибки в процессе записи в таблицу Config во время таких обновлений могут привести к непредсказуемому поведению.
Известные ошибки платформы, связанные с обработкой товаров: В некоторых версиях платформы 8.3.15.1656 были зафиксированы проблемы с некорректной обработкой уже проведенных товаров при вводе переходящих заказов покупателей или поставщиков на основании. Если ваши "поменявшиеся местами" документы связаны с движением товаров, это может быть специфической причиной.
Мы предлагаем комплексный подход к диагностике и устранению данной проблемы. Будем действовать последовательно, исключая возможные причины и проверяя результат после каждого шага.
Первым делом мы должны использовать информацию, которую вы уже обнаружили: в копии базы на той же платформе все работает корректно. Это критически важный факт для нашей дальнейшей диагностики.
Что это означает для нас:
Мы будем отталкиваться от этого вывода и проверять гипотезы, относящиеся к "проблемной" рабочей базе.
Одной из наиболее частых причин некорректного поведения в 1С, не связанного напрямую с кодом или платформой, является повреждение или логическая рассинхронизация данных в самой информационной базе. Начнем нашу работу именно с этого.
Действия, которые мы рекомендуем выполнить:
Перед выполнением любых операций с информационной базой, всегда делайте полную и актуальную резервную копию. Это критически важно для возможности отката в случае непредвиденных проблем.
Запустите информационную базу в режиме Конфигуратор. Убедитесь, что никто из пользователей не работает в базе.
В меню Администрирование выберите пункт ТестированиеИИсправлениеИнформационнойБазы.
Мы рекомендуем установить флажки на следующих операциях для максимальной эффективности:
ПроверкаЛогическойЦелостностиИнформационнойБазы: Эта опция проверяет связи между объектами и целостность данных на логическом уровне.
ПереиндексацияТаблицИнформационнойБазы: Восстанавливает и оптимизирует индексы таблиц, что может исправить проблемы с доступом к данным и их сортировкой.
СжатиеТаблицИнформационнойБазы (с перестроением индексов): Это поможет не только уменьшить физический размер базы, но и перестроить индексы, устраняя фрагментацию и возможные повреждения.
Важное примечание: Мы не рекомендуем без острой необходимости и глубокого понимания последствий использовать опцию "Поиск и установка ссылок", так как она может значительно изменить данные и связи в базе.
После завершения процедуры, которая может занять продолжительное время в зависимости от размера и состояния вашей базы данных, мы проверим работу механизма ВводНаОсновании в пользовательском режиме.
Кэширование – это механизм ускорения работы системы, но иногда оно может сыграть злую шутку. После обновлений платформы или конфигурации устаревшие данные в кэше могут приводить к некорректному поведению системы. Мы рассмотрим, как очистить кэш как на клиентских рабочих местах, так и на сервере.
Действия для клиентского кэша:
Попросите всех пользователей, сталкивающихся с проблемой, полностью закрыть все сеансы 1С:Предприятия.
На каждом клиентском компьютере мы найдем каталог кэша метаданных. Обычно он располагается по пути %LOCALAPPDATA%\1C\1Cv8\ для современных операционных систем Windows или %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\ для более старых версий.
Внутри этой папки вы увидите одну или несколько подпапок с длинными буквенно-цифровыми именами (GUID), каждая из которых соответствует определенной информационной базе. Нам необходимо найти папку, соответствующую вашей проблемной базе данных.
Внутри папки, соответствующей проблемной базе, мы удалим следующие подпапки:
Config: содержит кэш конфигурации.ConfigSave: содержит сохраненные версии конфигурации.DBNameCache: кэш имен баз данных.SICache: кэш служебной информации.Как альтернативный вариант, мы можем просто удалить папку базы данных (GUID) целиком. В этом случае кэш для данной базы будет пересоздан полностью при следующем запуске 1С.
Повторите эту операцию для каждого пользователя, который сталкивается с проблемой.
Действия для серверного кэша (актуально для клиент-серверного варианта работы):
Перезапустите службу агента сервера 1С:Предприятия (обычно называется 1C:Enterprise 8.3 Server Agent). Это действие очистит серверный кэш для всех информационных баз, обслуживаемых данным агентом.
В некоторых случаях может потребоваться ручная очистка кэша кластера серверов, который хранится в каталоге рабочего сервера 1С:Предприятия. Путь к этому каталогу можно найти в настройках кластера серверов.
После выполнения этих действий мы попробуем снова проверить функционал "ввода на основании".
Динамические обновления позволяют применять изменения конфигурации без полного перезапуска пользовательских сеансов. Это удобно, но может быть источником проблем, если затрагиваются критические механизмы платформы, такие как связи документов или их метаданные.
Действия, которые мы выполним:
В режиме Конфигуратор откроем конфигурацию.
Мы выполним сравнение конфигурации базы данных с основной конфигурацией, используя меню Конфигурация -> Сравнить, объединить с конфигурацией БД. Это позволит нам увидеть, есть ли различия между тем, что "написано" в основной конфигурации, и тем, что фактически применено в базе данных.
Если обнаружены различия, особенно в метаданных, связанных с документами и их связями, мы рассмотрим возможность полного обновления конфигурации базы данных. Для этого сначала необходимо сохранить основную конфигурацию, а затем применить изменения через меню Конфигурация -> Обновить конфигурацию базы данных. При этом системе потребуется разрешение на изменение структуры базы данных.
Мы будем внимательно отслеживать любые сообщения об ошибках или предупреждения, которые могут появляться в процессе запуска или работы 1С, особенно те, что указывают на попытки подключения к серверу с неподходящей версией метаданных. Такие сообщения часто являются прямым указанием на проблемы, вызванные динамическими обновлениями или их некорректным применением.
Мы помним, что динамические обновления, несмотря на свою удобность, могут быть источником труднодиагностируемых ошибок, если они затрагивают ключевые механизмы платформы или если процесс применения обновления был нарушен. В некоторых случаях полный перезапуск сервера 1С и очистка кэша после такого обновления могут быть необходимы.
Хотя копии базы работают нормально на той же платформе, мы не можем полностью исключить проблемы с самой установкой платформы на "проблемном" сервере или ее специфическое взаимодействие с другими компонентами серверного окружения. Также, иногда определенные версии платформы могут иметь специфические ошибки, которые проявляются только при определенных условиях.
Действия, которые мы предпримем:
Мы тщательно проверим, что установка платформы 8.3.15.1656 на сервере прошла без ошибок. В случае сомнений, мы рассмотрим возможность переустановки текущей версии платформы. Это может исправить потенциальные повреждения файлов платформы или некорректные записи в системном реестре.
Если переустановка не поможет, мы изучим возможность установки другой, возможно, более стабильной и проверенной версии платформы из ветки 8.3.15 или более новой, если это возможно и совместимо с вашей конфигурацией. Рекомендуется выбирать официально выпущенные и протестированные релизы, а не промежуточные.
Важное напоминание: Перед любым обновлением или переустановкой платформы всегда необходимо делать полную резервную копию информационной базы.
Если проблема "поменявшихся местами" документов проявляется только или преимущественно с документами, связанными с движением товаров (например, ЗаказыПокупателя, ЗаказыПоставщику, Реализации, Поступления), то мы должны рассмотреть специфическую проблему, которая была известна для некоторых версий платформы 8.3.15.1656.
Проблема заключалась в том, что при вводе переходящих заказов покупателей или поставщиков на основании, платформа могла некорректно обрабатывать уже проведенные или частично проведенные товары. Это могло приводить к неправильному заполнению табличных частей или некорректному определению документа-основания.
Действия по диагностике и возможному решению:
Мы проверим, воспроизводится ли проблема только с документами, которые содержат позиции товаров, уже частично или полностью отгруженных/полученных в рамках предыдущих документов-оснований. Создайте тестовые сценарии с полностью новыми товарами и с частично отработанными.
Если подтвердится, что проблема связана именно с обработкой товаров, мы поищем информацию на портале 1С:ИТС о патчах или рекомендациях по обходу данной конкретной ошибки для версии 8.3.15.1656. Возможно, уже выпущены исправления, или есть рекомендации по изменению конфигурации для обхода бага.
В конечном итоге, если ошибка подтвердится и не будет найдено обходных путей, наиболее надежным решением будет обновление на версию платформы, где эта ошибка была официально исправлена. Перед таким обновлением всегда тщательно тестируйте новую платформу на копии базы данных.
Решение проблем, связанных с платформой и базой данных 1С, часто требует системного и последовательного подхода. Мы рекомендуем строго следовать предложенному плану, начиная с проверки целостности базы и очистки кэшей, так как эти шаги являются наименее инвазивными и часто решают множество проблем. Всегда помните о важности резервных копий перед выполнением любых серьезных изменений.