В практике разработчика 1С иногда встречается загадочная ситуация: на одном компьютере (например, у разработчика) список команд «Ввести на основании» для конкретного документа (например, ЗаказПокупателя) содержит десятки позиций, а на другом (у клиента) — всего две или три. При этом конфигурации (CF) абсолютно идентичны, кэш почищен, а права доступа у пользователей полные. Разберем по шагам, почему так происходит и где искать скрытые причины этого явления в «1С:Управление производственным предприятием 1.3».
Проанализируем самую вероятную причину для комплексных конфигураций, таких как УПП. В 1С существуют функциональные опции, которые жестко привязаны к значениям констант или настроек учета в самой базе данных. Если на машине клиента в режиме «Предприятие» отключена какая-либо опция (например, «Использовать заказы поставщикам»), то связанные с ней документы автоматически исключаются платформой из всех интерфейсных списков, включая меню «Ввести на основании».
Важно понимать, что функциональные опции — это данные, хранящиеся в базе, а не в метаданных конфигурации. Поэтому сравнение CF-файлов никогда не покажет разницы. Для проверки нам необходимо:
ИспользоватьПроизводство, ИспользоватьЗаказы) с базой разработчика.Выясним причину, связанную с самой программной средой. Как было отмечено в ходе обсуждения, подобные аномалии часто наблюдаются при использовании неофициальных (взломанных) версий платформы. Эмуляторы защиты могут некорректно обрабатывать вызовы метаданных, что приводит к «обрезанию» динамических меню.
Рассмотрим порядок действий для исключения этого фактора:
8.3.18.1289). Разные релизы могут по-разному отрисовывать обычные формы.Посмотрим на ситуацию через призму расширений. Даже если основная конфигурация (CF) одинаковая, в базе клиента могут быть установлены расширения, которые модифицируют командный интерфейс. Расширение может программно или через настройки видимости скрывать пункты меню «Создать на основании».
Чтобы проверить это, нам нужно зайти в меню «Конфигурация» — «Расширения конфигурации». Если список не пуст, попробуем временно отключить расширения и проверить, восстановится ли список документов. Особое внимание уделим тем расширениям, где в объектах заимствован целевой документ (например, ЗаказПокупателя) и изменен его состав команд.
Разберем ситуацию, когда список команд формируется программно. В УПП 1.3 часто используется код в модулях форм или общих модулях, который анализирует права, настройки организации или даже наличие определенных записей в регистрах сведений перед выводом меню «Заполнение» или «Ввести на основании».
Нам стоит изучить процедуры ПриОткрытии или ПередОткрытием в модуле формы документа. Часто там вызываются универсальные механизмы формирования меню. Пример типичного кода, который может скрывать пункты:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// Универсальный механизм УПП для формирования кнопок
РаботаСДиалогами.СформироватьПодменюЗаполнить(ЭтаФорма);
// Здесь может быть фильтрация по настройкам пользователя
Если Не НастройкаУчета.ИспользоватьСложноеПроизводство Тогда
// Программное удаление кнопок из командной панели
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ПодменюВвестиНаОсновании.Кнопки.Удалить(0);
КонецЕсли;
КонецПроцедуры
Если данные в базе клиента отличаются (например, иная учетная политика), этот программный фильтр сработает и скроет «лишние» документы. Проанализируем настройки конкретной организации в базе клиента.
Выясним, не скрыл ли пользователь пункты меню самостоятельно. В платформе «1С:Предприятие 8» (даже в обычных формах) существует возможность настройки командных панелей. Если пользователь случайно нажал «Настройка кнопок» и снял галочки с определенных документов, эти настройки сохранятся в системных таблицах базы данных и будут привязаны к его профилю.
Для устранения этой причины попробуем следующее:
Проанализируем состояние таблиц базы данных. Если все вышеперечисленные методы не помогли, возможно повреждение внутренних таблиц настроек (таких как ConfigSave или таблицы системных настроек). Повреждение индексов может приводить к тому, что платформа «не видит» часть связей между объектами метаданных.
Рассмотрим шаги по техническому обслуживанию:
Уделим внимание режиму запуска. УПП 1.3 может запускаться как в обычном приложении, так и в управляемом (если это предусмотрено настройками). Список «Ввести на основании» в обычных формах строится на основе метаданных напрямую, а в управляемом приложении — через командный интерфейс, настройки которого хранятся отдельно. Убедимся, что и разработчик, и клиент используют Толстый клиент (обычное приложение).
Проанализировав все указанные факторы — от функциональных опций до легальности платформы — мы обязательно найдем причину расхождения в интерфейсе и сможем привести рабочее место клиента к эталонному виду.