Очень быстрая замена ссылок на элемент справочника предопределенным значением

Публикация № 572915

Программирование - Практика программирования

Предопределенный

44
Очень быстрая замена ссылок на элемент справочника предопределенным значением, когда недоступна программная замена обычной ссылки справочника на предопределенный элемент.

Доброго времени суток.

При работе с реальными базами иногда возникает ситуация, когда в базе много ссылок на элемент справочника, который надо сделать предопределенным.

В данной статье привожу решение для платформы "1С 8.3" в режиме совместимости "8.3.2" или ниже, когда недоступна программная замена обычной ссылки справочника на предопределенный элемент.

Необходимо выгрузить конфигурацию в файлы и открыть в блокноте файл предопределенных элементов из каталога, соответствующего нашему справочнику.

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

Узнать уникальный идентификатор можно через табло в режиме толстого клиента.

Затем следует загрузить конфигурацию из измененных файлов.

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

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

44

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. bforce 426 11.05.17 12:06 Сейчас в теме
Метод отличный. Мы так делали склады предопределенными для конфигурации в режиме совместимости 8.2.16.

Еще можно использовать частичную загрузку, описанную в Зазеркалье. На больших конфигурациях это очень экономит время.
2. kiruha 375 11.05.17 17:30 Сейчас в теме
Как сделать частичную выгрузку ?
Вся конфигурация выгружается также долго как замена ссылки
3. rinat_alp2 49 12.05.17 11:46 Сейчас в теме
(2) Можно из *.cf рабочей конфигурации загрузить объединением только нужный справочник в пустую конфигурацию. Достаточно загрузить только свойства справочника без связанных на перечислений и других справочников. Заменить УИД в конфигурации с одним только справочником и в рабочую уже затащить только свойства с предопределенными элементами.
max_st; kiruha; +2 Ответить
4. kiruha 375 12.05.17 13:11 Сейчас в теме
5. DarkAn 809 19.07.17 10:18 Сейчас в теме
В нашей организации сделали по другому:

Добавили новый справочник:
"ИменаПредопределенныхОбъектов" с одним реквизитом "СсылкаНаОбъект" - необходимых типов.
И предопределенные объекты наполняем только в этом справочнике.

Принцип работы:
Если надо добавить новые предопределенный или использовать старый не предопределенный объект, то идем в конфигуратор, добавляем в справочник "ИменаПредопределенныхОбъектов" новый предопределенный объект, например, "Контрагент_ЗарплатаВТБ", затем запускаем пользовательский режим и для данного объекта заполняем реквизит "СсылкаНаОбъект" - значением конкретного контрагента.

В дальнейшем в коде просто пишем:
Контрагент = Справочники.ИменаПредопределенныхОбъектов.Контрагент_ЗарплатаВТБ.СсылкаНаОбъект;

Плюсы:
* можно точно идентифицировать даже "старые" объекты в БД;
* идентифицировать можно любой ссылочный тип - даже конкретный документ :)
* список всех предопределенных объектов собран в одном месте.
uras0vd; rinat_alp2; +2 Ответить
6. rinat_alp2 49 20.07.17 09:28 Сейчас в теме
7. DarkAn 809 20.07.17 12:44 Сейчас в теме
(5) (6) Кстати, такой же подход рассказан тут: http://infostart.ru/public/647048/ (Правила и приемы доработки типовых конфигураций 1С для облегчения их дальнейшей поддержки и обновления)
8. olbu 24.07.17 09:33 Сейчас в теме
9. DarkAn 809 24.07.17 12:02 Сейчас в теме
(8) Публикация не моя, а его - http://infostart.ru/profile/187791/ (Виталий Онянов)
Оставьте свое сообщение