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

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С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

14400 руб.

29.04.2020    33586    109    152    

74

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

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

28800 руб.

06.10.2023    4333    36    18    

45

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

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

3600 руб.

10.02.2017    111160    667    174    

706

Корректировка данных Программист Пользователь Платформа 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    52504    16    61    

55

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

Вы наконец разобрались с закрытием месяцев и пора начать контролировать сроки оплаты поставщикам и задолженности клиентов, но в базе расчеты не идут из-за развернутого сальдо? Не беда, есть решение!

12000 руб.

02.11.2020    7444    6    0    

8

Закрытие периода Корректировка данных Программист Пользователь Платформа 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    51285    174    29    

126

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

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

2880 руб.

05.05.2024    673    10    0    

6

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

Расширение предназначено для корректировки записей в книге доходов и расходов. Пока только для документов: Поступление на расчетный счет, Списание с расчетного счета, Поступление наличных (в народе ПКО) и Выдача наличных (РКО).

2400 руб.

19.11.2019    18870    35    24    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 1557 21.02.19 10:46 Сейчас в теме
Выпишите
Иногда, вследствие обменов

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

Какой в этом смысл?
Код элемента при обмене всегда формируется с префиксами:
ПрефиксБазы + ПрефиксОрганизации + "-" + ЧислоКода
В таком варианте работы алгоритм криво отработает?
5. kirabr 13 24.02.19 13:10 Сейчас в теме
(4) Здравствуйте!
Не всегда код обмена формируется по указанным правилам - не все правила обмена написаны одинаково. Особенно нетиповые правила. Где-то может встретится хардкод, где-то просто неучтённые нюансы. Что касается префиксов, то именно для справочников зачастую префикс организации вообще не имеет смысла, если не используется разделение данных по организациям.
6. Xershi 1557 24.02.19 13:49 Сейчас в теме
(5) как это не имеет: видно, кто и когда создавал элемент. Без анализа ЖР. Поэтому в типовых это актуально, а не в типовых и без этого алгоритма все поправят.
7. kirabr 13 04.03.19 12:40 Сейчас в теме
(6) Скажите пожалуйста, каким образом по номеру элемента справочника можно без анализа ЖР понять кто и когда его создавал?
8. Xershi 1557 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" и так далее.

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