При обновлении конфигураций 1С, в том числе «1С:Бухгалтерии предприятия», пользователи нередко сталкиваются с ситуацией, когда привычное расположение дополнительных реквизитов в карточках справочников или документов сбивается. Поля меняются местами, выстраиваются по алфавиту либо возвращаются к исходным системным настройкам. Выясним причину такого поведения платформы и подробно разберем по шагам все способы решения этой задачи — от базовой настройки в интерфейсе до программного кода.
Проанализируем ситуацию, чтобы понять механизм возникновения проблемы. В типовых конфигурациях на базе «Библиотеки стандартных подсистем» (БСП) дополнительные свойства не являются частью жесткой структуры метаданных конкретного справочника. Они формируются динамически при открытии формы объекта программным кодом подсистемы «Свойства».
Очередность вывода реквизитов может нарушаться по следующим причинам:
Справочник.НаборыДополнительныхРеквизитовИСведений могут быть перезаписаны в значения по умолчанию.ХранилищеСистемныхНастроек).Рассмотрим основной и самый правильный способ, который позволяет задать единый порядок полей для всех пользователей информационной базы без написания кода. Порядок вывода реквизитов на форме напрямую определяется позицией строк в табличной части соответствующего набора.
Разберем по шагам процесс настройки:
Ctrl + Shift + Вверх) и Вниз (Ctrl + Shift + Вниз) на панели управления, переместим реквизит на требуемую позицию.После изменения позиций в наборе откроем карточку элемента справочника и проверим результат: дополнительные поля выстроятся строго в той последовательности, которая задана в наборе.
Обратите внимание: если информационная база работает в режиме распределенной информационной базы (РИБ), настройку порядка в наборах дополнительных реквизитов следует выполнять строго в центральном узле, после чего передавать изменения в периферийные базы через очередной сеанс синхронизации данных.
Если требуется изменить порядок только на одном рабочем месте, не затрагивая других сотрудников, используем штатный механизм управляемых форм:
Если после этого реквизиты по-прежнему отображаются некорректно, в этом же окне воспользуемся командой Еще — Установить стандартные настройки, чтобы очистить конфликтующие пользовательские привязки.
Рассмотрим вариант, упомянутый во втором сообщении форума: программное управление позициями реквизитов. Это актуально, когда реквизитов много и вручную перемещать их долго либо когда требуется автоматизировать процесс в рамках внешней обработки.
Важно учитывать особенность платформы 1С:Предприятие 8: у объекта ТабличнаяЧасть отсутствует метод Переместить(). Для изменения положения строк в коллекциях табличных частей платформой предусмотрен метод Сдвинуть().
Посмотрим на пример кода внешней обработки, с помощью которого можно изменить позицию реквизита в табличной части набора:
// Получаем ссылку на набор дополнительных реквизитов нужного справочника
СсылкаНаНабор = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура;
НаборОбъект = СсылкаНаНабор.ПолучитьОбъект();
ТабличнаяЧасть = НаборОбъект.ДополнительныеРеквизиты;
// Найдем строку нужного реквизита по ссылке на свойство
СтрокаРеквизита = ТабличнаяЧасть.Найти(НужноеСвойство, "Свойство");
Если СтрокаРеквизита <> Неопределено Тогда
ИндексСтроки = ТабличнаяЧасть.Индекс(СтрокаРеквизита);
// Сдвигаем реквизит вверх на 2 позиции (отрицательное смещение)
// Либо вниз (положительное смещение)
ТабличнаяЧасть.Сдвинуть(ИндексСтроки, -2);
НаборОбъект.Записать();
КонецЕсли;
Метод Сдвинуть() принимает два параметра: индекс строки (или саму строку) и числовое смещение. После завершения манипуляций обязательно вызываем метод Записать(), чтобы зафиксировать изменения в базе данных.
Если в окне настройки дополнительных реквизитов порядок строк правильный, а в самом документе или элементе справочника поля по-прежнему отображаются неверно, причина заключается в устаревшем кэше платформы. Разберем шаги по его очистке:
%LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8 (удаляем папки с длинными буквенно-цифровыми идентификаторами).Таким образом, мы рассмотрели все аспекты работы с последовательностью дополнительных свойств: выяснили причину сбоя при обновлении и разобрали как визуальные, так и программные методы упорядочивания реквизитов.