Исправление ошибки "Запись с такими ключевыми полями существует" в обработке "Поиск и замена значений"

17.02.19

Задачи пользователя - Поиск данных

Обработка ПоискИЗаменаЗначений.epf — замечательный и надёжный инструмент. Но и в нём есть небольшой косячок, который проявляется при заменах в регистре сведений. Иногда встречается ситуация, когда в наборе есть две записи, одна с заменяемым значением, вторая с заменяющим. В остальном эти две записи идентичны по всем ключевым полям. Обработка пытается выполнить замену в этих записях. В результате они становятся полностью идентичными, и при записи набора возникает ошибка «Запись с такими ключевыми полями существует».

Скачать исходный код

Наименование Файл Версия Размер
ПоискИЗаменаЗначений_feat_EarlyBird_2019.epf
.epf 24,11Kb
40
.epf 2.0.1 24,11Kb 40 Скачать

Обработка ПоискИЗаменаЗначений.epf  — роскошная и поистине незаменимая вещь. И я очень рад, что своими скромными усилиями помогу сделать её ещё чуть-чуть лучше.

 В обработке есть небольшой косячок, проявляющийся при заменах в регистре сведений.

Допустим, у нас в наборе есть две записи, одна с заменяемым значением, вторая с заменяющим. В остальном эти две записи идентичны по всем измерениям и ресурсам.

Обработка пытается выполнить замену.  В результате эти две записи становятся полностью идентичными, и возникает ошибка «Запись с такими ключевыми полями существует».

Например, в БП есть регистр сведений «Калькуляция себестоимости», туда пишется аналитика затрат по номенклатурным позициям, при проведении регламентной операции закрытия месяца.  В том числе туда пишется статья затрат. 

При замене статьи затрат, можем получить картину маслом:

Досадно? Да.

Можно ли это исправить? Можно!

Вот допиленная обработка. При выполнении замен в записях регистра сведений, обработка дополнительно проверяет уникальность изменённой записи по ключевым полям. И если запись с такими ключевыми полями уже существует, мы удаляем изменённую запись из набора (ну а куда её девать?).

Изменения внесены только в модуль формы, весь добавленный код отмечен тегом "EarlyBird".

Тестировалось на платформе 8.3.10.2667.

Обработка ПоискИЗаменаЗначений

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4647    9    5    

18

Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    155611    327    252    

559

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42645    10    24    

38

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3056    4    0    

20

Кто такая Мантикора?

Поиск данных Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    3241    andreysidor4uk    16    

46
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7140 24.09.18 09:04 Сейчас в теме
Решение некорректное в общем случае.
1. Кто сказал что ресурсы надо суммировать даже если в их именах содержится "Сумма" или "Количество"? Это же регистр сведений, а не накопления.
2. Если у конфликтующих строк будут различаться ресурсы или реквизиты, не содержащие в именах строк "Сумма" и "Количество". то конфликтующие строки не свернутся.
abasovit; +1
2. EarlyBird 6 24.09.18 10:36 Сейчас в теме
(1) хорошо, а какое поведение будет корректным?
+
3. EarlyBird 6 17.02.19 16:52 Сейчас в теме
(1) Штош, учёл критику, полностью переделал сценарий. Теперь перед записью изменённого набора записей регистра сведений, предварительно выполняется поиск записей, совпадающих по ключевым полям. Если записи найдены, одна из них удаляется (та, в которой мы делали замену).
+
4. user1898628 01.02.23 17:39 Сейчас в теме
Ну вот омрачение, она не открылась в управляемой форме
+
Оставьте свое сообщение