Встречаются ситуации, которые могут поставить в тупик даже опытного специалиста. Представим: у вас есть две идентичные информационные базы, например, рабочая и тестовая. Вы работаете с одной и той же конфигурацией под одним и тем же пользователем. Однако в одной базе при вызове меню "Ввод на основании" для документа вы видите полный список доступных для создания документов, а в другой — лишь несколько пунктов. При этом очистка кэша, как клиентского, так и серверного, не приносит результата. Давайте разберемся, в чем может быть причина такого поведения и как это исправить.
Описанная проблема чаще всего связана не с настройками конфигурации, правами пользователя или данными в базе, а с версией платформы 1С:Предприятие. Как показала практика, разные релизы платформы могут по-разному интерпретировать один и тот же программный код, что и приводит к различиям в поведении интерфейса.
Проанализируем конкретный случай: на платформе 8.3.17.1851 меню "Ввод на основании" отображается не полностью, в то время как на платформе 8.3.18.1483 на той же самой базе данных все работает корректно. Это прямо указывает на наличие ошибки в релизе 8.3.17.1851.
Чтобы понять корень проблемы, нужно знать, что меню "Ввод на основании" не является статичным. Его состав формируется динамически в момент вызова. Конфигурация (в нашем случае "Бухгалтерия предприятия") содержит специальный механизм, который определяет, какие документы можно создать на основании текущего. Этот механизм анализирует множество параметров:
Весь этот сложный алгоритм реализован программно в общих модулях конфигурации. Платформа 1С:Предприятие выступает в роли исполнителя этого кода. Если в какой-то версии платформы есть ошибка, она может некорректно обработать одну из проверок или неверно интерпретировать какую-либо команду. В результате часть документов, которые должны были попасть в меню, просто отсеиваются, и пользователь видит "урезанный" список.
Важный момент: разрядность платформы (x32 или x64) в данном случае, скорее всего, не является первопричиной. Ключевым фактором является именно номер релиза. Проблемы, подобные этой, часто исправляются в последующих версиях платформы.
Самый правильный, быстрый и надежный способ решить проблему — обновить платформу 1С:Предприятие на всех компьютерах пользователей и на сервере до более новой и стабильной версии. Это универсальное решение для большинства проблем, вызванных ошибками в конкретных релизах.
Рассмотрим пошаговый план действий:
ReadMe.txt, который поставляется вместе с обновлением конфигурации.Этот способ является предпочтительным, так как он не требует анализа и изменения кода, а устраняет саму первопричину — ошибку в платформе.
Если по какой-то причине обновить платформу невозможно или вы хотите досконально разобраться в механизме ошибки, можно прибегнуть к отладке. Этот метод требует навыков программирования в 1С и предназначен для разработчиков.
Цель отладки — пошагово проследить за выполнением кода, который формирует список команд "Ввода на основании", и найти точное место, где происходит сбой на проблемной версии платформы.
Проанализируем процесс:
УправлениеВводомНаОсновании, ЗаполнениеДокументов, ОбщегоНазначения. Вам нужно найти процедуру или функцию, которая отвечает за заполнение коллекции команд для ввода на основании. Часто это делается через обработчик ОбработкаЗаполнения для соответствующих объектов.Этот анализ, скорее всего, покажет, что одна из платформенных функций на релизе 8.3.17.1851 отрабатывает иначе, чем на 8.3.18.1483. Хотя этот метод не исправит саму ошибку (исправить платформу мы не можем), он даст вам стопроцентное подтверждение того, что проблема именно в ней, и послужит веским аргументом в пользу необходимости обновления.
В итоге, столкнувшись с необъяснимым поведением интерфейса, которое проявляется только на определенных версиях платформы, первым и главным шагом должно быть обновление платформы 1С:Предприятие до актуального и стабильного релиза.