Внимание! Обработка протестирована, но все же может содержать баги. Автор не несет ответственности за потерю данных при ее использовании. PS. Всегда помните: резерные копии не только трата времени, они могут сохранить кучу времени, сил и нервных клеток.
Проверялась на 8.3.6, 8.3.7 на разных базах.
Небольшая предыстория.
Вначале было слово....
Некоторое время назад вознила необходимость исправить несколько записей в регистрах сведений. Вдаваться в подробности нет смысла - все и так все понимают. Естественно, что первое пришло в голову - просто открыть и отредактировать. Но не тут-то было. Формы регистра специально залочены, закрыты на редактирование ото всех и вся. Не то, чтобы хотелось вскрыть, поломать, обойти... но если нельзя, но очень хочется - то можно. Конечно, кто-то скажет, что нужно оставлять себе лазейки и т.п. - иногда нужно закрывать и от "админов". Внешнюю обработку с отдельной формой записи накидать для конкретного случая - не долго. Но это же не интересно?! Конечно, если вы бесправный пользователь, то вам и внешние обработки открывать скорее всего не разрешено.
Коротко о главном
В результате безуспешных поисков обработки под управляемые формы с нужным функуционалом начал писать свою. Отправной точкой послужила другая обработка, найденная тут же, на Инфостарте: //infostart.ru/public/435688/
Немного повторюсь: Целью не было создать универсальный инструмент бездумного обхода запретов администраторов и программистов. Нужен был инструмент, который бы помог делать то, что нужно, но при полном понимании творимого и возможных последствий.
Что она умеет, некоторые особенности:
- Выбор РС из списка, на форме отображается динамический список регистра.
- Генерирует прямо на форме поля для изменения текущей записи. Можно изменять, добавлять, удалять записи.
- Для группы записей (выделенные строки динамического списка) можно изменять поля, в том числе измерения. ВАЖНО: Запись идет в режиме перезаписи, так что если итоговая запись уже есть или вы изменили единственное измерение у группы записей - последствия могут быть плачевными. Но, надеюсь, вы понимаете, что собираетесь сделать.
- При изменении полей - подсвечивается рамка. Вы всегда в курсе, что будет изменяться. Особенно актуально для групп записей.
- Есть возможность записи в режиме загрузки
- Есть возможность установить дополнительные свойства записи (иногда очень важно)
- Использует привилегированный режим.
- Для группы записей используется цикл, не набор записей. Для реализации набора записей нужно их как-то разделять на группки по измерениям. Для большого количества - достаточно долго. Каждая итерация (цикл по выделенным записям) в отдельной транзакции, что еще больше затягивает процесс. Но в общем-то скорость не ставилась, как цель.
- Возможно, еще что-то не учел, разрабатывалась "наскоками", с расширением возможностей под потребности.
Комментарии в обработке присутствуют, код открыт.
V1.1. Исправлено некорректное поведение при выделение всех записей сочетанием CTRL+A