Исправление проблемного кода причины увольнения
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
При обновлении типовых конфигураций неоднократно приходилось сталкиваться с проблемой, когда обработчики обновления пытаются записать в справочник элемент с кодом, который уже существует. В итоге получаем неуникальность кодов и невозможность дальнейшего обновления. Какая религия запрещает разработчикам применять простое правило: «проверь перед записью» совершенно непонятно, но имеем то, что имеем. И вот в этот раз проблема возникла при обновлении ЗУПа до 3.1.29.21. В справочник «ПричныУвольненияПФР» упорно пытался записаться элемент с кодом «п3ч1с77тк», который там уже существовал. Почему он там оказался вопрос любопытный, но в контексте проблемы не особо важный.
Исправить ситуацию можно было двумя способами: поправить код обработчика в расширении, либо исправлять сами данные внешней обработкой. Второй вариант показался более целесообразным, т. к. позволял применять его и на базовых версиях. Поэтому была написана очень простая обработка, но, возможно, она сбережет кому-то минуты жизни и нервные клетки.
На деле имеем две кнопки и один реквизит. В реквизит вбиваем «проблемный» код, который берем из описания ошибки, по-умолчанию это тот самый «п3ч1с77тк». Обработку надо запустить два раза. Первый раз до обновления, или же в момент получения ошибки обработчиков (после нужно запустить процесс заново) и нажать кнопку «До обновления», после нажатия будет найден «проблемный» элемент и исправлен его код, чтобы он не мешал записи нового элемента.
Когда обработчики успешно выполнились, опять запускаем обработку и нажимаем кнопку «После обновления». Произойдет следующее: код нового элемента будет изменен, а сам элемент помечен на удаление, старому элементу будет возвращен прежний код, а реквизиты «Наименование» и «Основание» обновлены в соответствии с новым элементом. В справочнике «ОснованияУвольнения» будет исправлен реквизит «ПричинаУвольненияПФР» для связанного элемента т. е. возвращена прежняя ссылка. После останется только удалить помеченный объект и всё.
Такой приоритет именно старому элементу дается, т. к. на него могут быть ссылки, особенно в доработанных конфигурациях, или в конфигурациях с расширениями.
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.29.21
Вступайте в нашу телеграмм-группу Инфостарт