Изменение не уникальных кодов справочников

01.12.18

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

Обработка предназначена для поиска не уникальных кодов справочников в базах на платформе 1С 8.3. Может быть подключена как внешняя дополнительная обработка - работает с БСП 2.3.2.43. Работает в управляемом приложении, на управляемых формах.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ChangeCatalogesCodes
.epf 19,63Kb ver:1.1
30
30 Скачать (1 SM) Купить за 1 850 руб.

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

Эта обработка предназначена для поиска и замены таких не уникальных (дублирующихся) кодов справочников уникальными. Обработка выполняет поиск дублирующихся кодов только для тех справочников, у которых установлен признак контроля уникальности кодов. При этом учитывается вариант серий кодов - если серии кодов должны быть уникальны во всём справочнике, то и дубли будут искаться во всём справочнике, если серии должны быть уникальны в пределах подчинения - то дубли ищутся в пределах подчинения родителю, если серии должны быть уникальны в пределах подчинения владельцу - то дубли ищутся в пределах владельцев.

Обработка заменяет дублирующиеся коды свободными кодами, беря их "снизу". То есть, если для справочника заняты коды "001", "004", "005" - то дублирующиеся коды будут заменены на "002", "003", "006" и так далее. В этом отличие обработки от применения метода "УстановитьНовыйКод()", который устанавливает код, следующий за максимальным - то есть берёт код "сверху".

Внимание!

Перед применением обработки рекомендуется сделать резервную копию базы!

Обработка не учитывает прикладную логику используемого решения - она просто ищет дубли кодов по описанным выше правилам и заменяет их на уникальные. Прежде, чем установить галочку "Исправлять коды", убедитесь, что в итоге данные будут согласованы и система будет работать "как надо".

Для строковых кодов обработка не учитывает возможные префиксы - коды ищутся в виде "[0-9][0-9]....[0-9]", соответственно длине кода справочника.

См. также

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    4816    38    20    

46

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34325    109    152    

75

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

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    111801    673    175    

712

Корректировка данных Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.2 от 09.06.2024!

19200 руб.

26.08.2018    52770    16    61    

55

Закрытие периода Корректировка данных Программист Пользователь Платформа 1С v8.3 Система компоновки данных 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    51504    175    29    

127

Корректировка данных Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Налоговый учет Налог на прибыль Платные (руб)

Обработка служит для: выравнивания бухгалтерского и налогового учета на определенную дату по выбранным счетам; закрытия остатков по выбранным счетам; обнуления налогового учета (ПР, ВР также будут обнулены)

2880 руб.

05.05.2024    755    11    0    

7

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка предназначена для ООО для смены системы налогообложения УСН на ОСНО, без ведения раздельного учета, входящего НДС по способам учета. При реализации перехода в операции формируются проводки по выделению НДС, который ранее учитывался в стоимости номенклатуры, регистр «НДС Предъявленный».

6000 руб.

22.01.2025    445    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. razmochaev 15.11.18 16:39 Сейчас в теме
Добрый день.

На платформе 8.3.12.1595 выдает следующую ошибку:
{ВнешняяОбработка.ИзменениеНеУникальныхКодовСправочников83.Форма.Форма.Форма(297)}: Ошибка при вызове метода контекста (Выполнить)
ДублиПоРодителямВладельцам = ЗапросДублейПоРодителямВладельцам.Выполнить().Выгрузить();
по причине:
{(17, 24)}: Поле не найдено "Справочник.Родитель"
КОЛИЧЕСТВО(Справочник.<<?>>Родитель) > 1
2. kirabr 13 18.11.18 11:12 Сейчас в теме
(1) Добрый день! Мне не удалось воспроизвести эту ошибку на указанной платформе, надо на Ваших данных смотреть. Если можете отправить мне Вашу базу, договоримся о способе передачи, посмотрю в чём проблема. Если не можете (база очень большая, опасаетесь передачи конфиденциальных данных и т.п.) - давайте я к вам подключусь по TeamViewer.
3. kirabr 13 01.12.18 10:39 Сейчас в теме
Информация для всех, кто скачал обработку до 01.12.2018.
1 декабря 2018 я выложил новую версию этой обработки и скачавшим прежнюю версию готов предоставить новую версию бесплатно. Для подтверждения скачивания прежней версии будет достаточно скриншота письма о скачивании, либо Вашего ника на Инфостарте.

В целом в ней улучшена внутренняя логика - исправление дублей учитывает варианты нумерации: во всём справочнике, в пределах подчинения или в пределах подчинения владельцу. В двух последних вариантах свободные коды генерируются с учётом подчинения, таким образом существенно увеличивается количество этих свободных кодов. Устранён источник проблемы, указанной в комментарии (1). А также в интерфейсе добавилась колонка "Группа или владелец", показывающая при необходимости группу или владельца, в рамках которого есть дубли кодов; в интерфейсе улучшена логика проставления галок "Исправлять коды" - автоматически проставляются галки на верхних уровнях группировок при установке всех галок на вложенных уровнях.
Прикрепленные файлы:
4. Xershi 1566 21.02.19 10:46 Сейчас в теме
Выпишите
Иногда, вследствие обменов

А затем
Для строковых кодов обработка не учитывает возможные префиксы

Какой в этом смысл?
Код элемента при обмене всегда формируется с префиксами:
ПрефиксБазы + ПрефиксОрганизации + "-" + ЧислоКода
В таком варианте работы алгоритм криво отработает?
5. kirabr 13 24.02.19 13:10 Сейчас в теме
(4) Здравствуйте!
Не всегда код обмена формируется по указанным правилам - не все правила обмена написаны одинаково. Особенно нетиповые правила. Где-то может встретится хардкод, где-то просто неучтённые нюансы. Что касается префиксов, то именно для справочников зачастую префикс организации вообще не имеет смысла, если не используется разделение данных по организациям.
6. Xershi 1566 24.02.19 13:49 Сейчас в теме
(5) как это не имеет: видно, кто и когда создавал элемент. Без анализа ЖР. Поэтому в типовых это актуально, а не в типовых и без этого алгоритма все поправят.
7. kirabr 13 04.03.19 12:40 Сейчас в теме
(6) Скажите пожалуйста, каким образом по номеру элемента справочника можно без анализа ЖР понять кто и когда его создавал?
8. Xershi 1566 04.03.19 14:00 Сейчас в теме
(7) точную дату либо ЖР либо через ГУИД. А косвенно, из какой организации пользователь и по номеру как давно элемент был создан. Если речь идет о элементах которые создает пользователь ручками.
9. Mord_ent 4 26.02.24 14:49 Сейчас в теме
Добрый день.

Ошибка:
Ошибка при вызове метода контекста (Выполнить)
{ВнешняяОбработка.ИзменениеНеУникальныхКодовСправочников83.Форма.Форма.Форма(468)}:Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);
{ВнешняяОбработка.ИзменениеНеУникальныхКодовСправочников83.Форма.Форма.Форма(280)}:СправочникиСНеуникальнымиКодами = СправочникиСНеуникальнымиКодами();
{ВнешняяОбработка.ИзменениеНеУникальныхКодовСправочников83.Форма.Форма.Форма(7)}:ПолучитьДеревоНеУникальныхКодов();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(2742, 10)}: Поле не найдено "Спр.Владелец"
ПО Спр.<<?>>Владелец = Спр1.Владелец


Файл приложен.
Прикрепленные файлы:
Ошибка_20240226144626.zip
10. kirabr 13 26.02.24 22:18 Сейчас в теме
(9) Добрый день!
Нужен доступ к вашей базе, чтобы воспроизвести и отладить ошибку.
Mord_ent; +1 Ответить
11. Mord_ent 4 27.02.24 11:42 Сейчас в теме
(10) Добрый день. Еще раз.
Разобрался. Стоит "надстройка" от БитФинанс. Видимо, с их справочниками какая-то беда была.
добавил условие в начало цикла в функции "СправочникиСНеуникальнымиКодами"
Если СтрНайти(мтдСправочник.Имя, "бит_") > 0 Тогда
			Продолжить;
		КонецЕсли;

теперь все ок.
спасибо.
12. kirabr 13 27.02.24 17:49 Сейчас в теме
(11) Интересно, что же там за "надстройка", что штатное поле "Владелец" прибили?
И надо понимать, что с таким решением вы пропускаете проверку справочников от БИТ_.
13. Mord_ent 4 28.02.24 09:33 Сейчас в теме
(12) без понятия) бухгалтерия использует.
я пробовал сперва отсекать связь по "владельцу". обработка отрабатывала и выводила бит-овские справочники с непонятными полями. как и что они там собрали - не было желания разбираться, поэтому просто отрезал их.
обработка нужна, в первую очередь, чтобы не вылезали предупреждения про "неуникальный код" во время обновления конфы)
14. Mord_ent 4 28.02.24 10:15 Сейчас в теме
(12) у меня вопрос возник.
при "исправлении кодов" из обработки как именно назначается код? я обратил внимание (на тестовой базе), что берется числовой (видимо ближайший свободный) без префикса.
не получится ли, что после переназначения Новые добавленные, например, банковские счета начнут задваиваться с "переназначенными"?

Спасибо.
15. kirabr 13 29.02.24 08:07 Сейчас в теме
(14)
как именно назначается код?
Обработка заменяет дублирующиеся коды свободными кодами, беря их "снизу". То есть, если для справочника заняты коды "001", "004", "005" - то дублирующиеся коды будут заменены на "002", "003", "006" и так далее.

не получится ли, что после переназначения Новые добавленные, например, банковские счета начнут задваиваться с "переназначенными"?
Зависит от того, какой логике назначаются новые коды. Вероятнее всего штатным образом - берётся максимальный из имеющихся кодов и назначается следющий за ним. В этом случае новых дублей не возникнет. Если логика назначения кодов новым элементам иная, то надо понимать её алгоритм и исходя из этого понимания делать вывод о возможности появления новых дублей по кодам.
Оставьте свое сообщение