Универсальная замена префиксов объектов

28.02.21

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

Универсальная обработка для массовой замены префиксов объектов (справочников и документов) в конфигурациях на управляемых формах. Предназначена как для конфигураций на базе БСП, так и для произвольных. Удобна при настройке обмена между конфигурациями, при переходе между версиями, наведении порядка, а также для устранения ошибок операторов.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Универсальная замена префиксов объектов (внешняя обработка для управляемых форм)
.epf 14,56Kb ver:1.0.0 (1036ccc)
86
86 Скачать (2 SM) Купить за 2 150 руб.

Назначение

В некоторых случаях, в конфигурации требуется массово заменить (либо назначить, удалить) префиксы справочников и документов. Например:

  • при переходе с предыдущего поколения конфигураций (например с БП 2.0, где использовались двузначные префиксы на БП 3.0, где используются обязательные четырехзначные), если хочется сохранить единообразие префиксов в архивном и рабочем периоде, или добавлять документы в архивный период;
  • при настройке обмена между двумя информационными базами (например, ЗУП 3.1 и БП 3.0), если ранее учет велся независимо, и префиксы информационных баз не были назначены (т.е., фактически, использовался 00), либо были назначены неправильно, либо у одной и той же организации в двух базах назначены разные префиксы;
  • при добавлении организации и необходимости назначить префикс уже существующей организации;
  • в иных случаях, связанных с наведением порядка.

Для решения такой задачи была создана данная внешняя обработка, которую я применяю почти у каждого клиента. Чаще всего приходится это делать, настраивая связку "БП 3.0 - ЗУП 3.1". Обработка позволяет массово отобрать объекты, префикс которых подлежит замене, а затем:

а) составить список, чтобы оценить масштаб проблем и возможные "подводные камни";

б) заменить исходный префикс на явно введенное значение;

в) заменить исходный префикс на префикс, генерируемый штатными механизмами информационной базы (т.е. для типовых конфигураций - составленный префиксом организации и/или префиксом информационной базы).

При этом, предусмотрена замена в тестовом режиме (когда действия в базе реально не выполняются), замена в режиме загрузки (для отключения контроля уникальности, дат запрета редактирования и т.п.). При выполнении действий ведется протоколирование обработанных объектов (в протоколе указывается представление объекта, старые и новые номера/коды).

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

Интерфейс

Все действия осуществляются в единственной форме, внешний вид которой представлен на рисунке (обработка запущена в конфигурации "Бухгалтерия предприятия 3.0"):

 

Внешний вид основной формы

 

В верхней части формы указывается искомый префикс, по которому будут отбираться объекты, подлежащие обработке.

В средней части формы имеется возможность отобрать типы обрабатываемых справочников и документов (при открытии формы эти списки будут заполнены теми видами объектов, для которых используется код (номер)). Документы, при этом, можно отобрать по периоду.

В нижней части формы размещены кнопки действий, которые возможно предпринять.

На закладке "Протокол" отображается результат выполнения команд в текстовом виде, доступным для копирования. Пример протокола замены префикса "БП-" на "00-" в тестовом режиме представлен на рисунке:

 

Образец протокола выполнения

 

Порядок использования

Для использования обработки, прежде всего, требуется осознать имеющиеся, с точки зрения пользователя, проблемы префиксов в информационной базе и наметить план и порядок обработки для каждой из них, т.к. порядок обработки может влиять на отборы следующего этапа. Неправильное применение обработки крайне опасно, т.к. можно необратимо испортить номера (коды) объектов в информационной базе, необратимо смешав, например, правильную нумерацию и неправильную.

Настоятельно рекомендуется предварительно сделать резервную копию базы, а в процессе использования обработки не допускать в нее других пользователей.

1. В первую очередь, требуется задаться шаблоном исходного (подлежащего замене) префикса для отбора объектов.

Шаблон, введенный в поле "маска искомого префикса" будет применяться "буквально", с левой стороны кода (номера) объекта.
Если, допустим, нужно найти и обработать объекты с кодом вида "0000000001", но в базе есть также объекты с кодом вида "0000-00001," которые обрабатывать не нужно, то в данном поле необходимо указать "00000", чтобы в выборку не попали объекты с "нормальным" префиксом "0000-". Справочники и документы рекомендуется обрабатывать отдельно, т.к. документы обычно имеют более широкий префикс, зависящий не только от префикса ИБ, но и организации.

Следует также отдельно отобрать и обработать зависящие от организации справочники (например, "Сотрудники"), у которых префикс тоже включает префикс организации, не зависящие от организации документы.

В маске можно использовать символ "_", который означает подстановку любого символа.

2. Затем следует отметить требуемые виды объектов.

Кнопка "Отметить префиксуемые" взводит флаг обработки на тех типах объектов, у которых предусмотрена процедура присвоения префикса при создании объекта или переносе его на другую дату (определяется по наличию подписки на событие вида "ПриУстановкеНовогоНомера", что рассчитано, прежде всего, на работу в конфигурациях, основанных на Библиотеке стандартных подсистем, но может сработать и в произвольных). Типы объектов, также, могут быть отмечены вручную.

Для документов дополнительно предусмотрен отбор по периоду.

3. Желательно использовать команду "Сформировать список", чтобы осмотреть пространство объектов, которые будут обработаны, их текущий код (номер), и убедиться, что отбор назначен верно.

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

В ходе обработки можно заменить искомый префикс на конкретный, заданный эксплуатантом (кнопка "Заменить на целевой префикс", ввести целевой префикс справа).

Можно задействовать штатный, предусмотренный разработчиком конфигурации, механизм назначения префикса (кнопка "Сформировать правильный префикс"), который сработает только в том случае, если он для данного типа объектов назначен через подписку на событие "ПриУстановкеНовогоНомера", или аналогичную функцию в модуле объекта.

В ряде случаев, при замене префикса, образуются объекты с одинаковым номером, в результате чего, записи очередного объекта не произойдет. Это может быть как следствием ошибочного применения обработки, так и запланированным поведением.

Так, при переходе с БП 2.0 на БП 3.0, все архивные объекты сохраняют старые префиксы, но списках некоторых видов документов создаются не проведенные "документы-заглушки", у которых префикс назначен в соответствии с новой системой, а числовое значение номера повторяет значение последнего архивного документа - для того, чтобы нумерация очередного введенного в новой базе документа продолжилась, хоть и с новым префиксом, а не началась с нуля.

РК-00000001 - из БП 2.0
РК-00000002 - из БП 2.0
РК-00000003 - из БП 2.0
0000-000003 - заведен процедурой перехода, чтобы "застолбить" нумерацию, не проведен
0000-000004 - введен оператором в новой базе

При замене префикса РК- на 0000- образуется два объекта с номером 0000-0000003, что приведет к ошибке записи.

В некоторых случаях, заменить префикс помешает дата запрета редактирования или иные контрольные механизмы.

Для уклонения от таких ошибок предусмотрен флаг "Режим загрузки при обмене данными", которой отключит большую часть проверок, включая проверку на уникальность номера. Возникшие "задвоения" можно устранить вручную, удалив лишние объекты или скорректировав номера.

Обработка большого количества объектов может занять длительное время. На время выполнения замены интерфейс будет заблокирован.

Примеры использования

1. После перехода с конфигурации "Бухгалтерия предприятия 2.0" на "3.0" в информационной базе образовался архив объектов без префиксов, при этом, новые объекты всегда будут иметь префиксы 00- (в объектах, не зависящих от организации) и 0000- (в объектах, зависящих от организации), или иные (в соответствии с заданными префиксами ИБ и организаций). Требуется привести архив объектов в соответствие с новой системой.

1) "Отметить все префиксуемые" справочники (и затем снять флаг с "Сотрудников"), указать маску префикса "000" и использовать кнопку "Сформировать правильный префикс". Затем снять отметки со справочников.

2) "Отметить все префиксуемые" документы, добавить справочник "Сотрудники", указать маску префикса 00000 и использовать кнопку "Сформировать правильный префикс".

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

Задвоенные номера также могут образоваться если пользователи, до применения обработки, начали вводить документы прошлых лет (нумерация которых начнется с №1 в новых префиксах, т.к. заглушки для прошлых лет процедурой перехода не вводятся) и не учли этот момент вручную, назначив номер для первого такого введенного документа каждого вида.

Что касается справочников, то их нумерация, после перехода, всегда начинается с №1 в новых префиксах, т.к. "заглушки" для них не предусмотрены, и если пользователи, до применения данной обработки, успели ввести элементы, то, после ее применения, образуются элементы с дублирующимися номерами (новые, введенные пользователями 00-0000001 и старые, которые пришли из исходной базы в виде 0000000001 и заменены на 00-0000001 данной обработкой).

Две последние ситуации нужно обработать:

а) ДО применения данной обработки (выведя номера новых объектов выше старых, т.е. если старый заканчивался на 0000000256, то заведенные в этой базе начать с 00-00000257, в чем может помочь обработка "Универсальная обработка справочников и документов" с ИТС, которая позволяет отобрать и перенумеровать объекты с произвольного номера),

б) после - вручную,

в) или смириться с дубликатными номерами, что, впрочем, может помешать пользователям редактировать карточки таких объектов в будущем.

2. Тоже самое, что в примере №1, но в исходной базе был какой-либо префикс без дефиса (допустим, "ЩФ"), или с таковым.

1) "Отметить все префиксуемые" справочники (и затем снять флаг с "Сотрудников"), указать маску префикса "ЩФ", или "ЩФ0" и выполнить команду "Сформировать правильный префикс". Затем снять отметки со справочников.

2) "Отметить все префиксуемые" документы, добавить справочник "Сотрудники", указать маску префикса "ЩФ", или "ЩФ0" и выполнить команду "Сформировать правильный префикс".

Если дефис был, то использовать маски "ЩФ-" или "ЩФ-0"

3. В "Бухгалтерии предприятия 3.0" используется префикс информационной базы "БП". В результате, в базе заводятся справочники с кодом вида "БП-000..." и документы вида "00БП-00...". Пользователь желает заменить "БП" на "00" (чтобы номера содержали только цифры). Или наоборот.

То же самое применимо к любой другой замене префикса ИБ (например, заменить префикс ИБ "00" на "01" в ЗУП при первоначальной настройке синхронизации с БП)

1) "Отметить все префиксуемые" справочники, кроме "Сотрудники", указать маску искомого префикса "БП-", и выполнить команду "Сформировать правильный префикс". Снять отметки со справочников.

2) "Отметить все префиксуемые" документы, вручную добавить справочник "Сотрудники", указать маску "00БП-" и выполнить команду "Сформировать правильный префикс".

После этого следует зайти в Администрирование - Синхронизация данных и назначить новый префикс ИБ.

Если, при этом, ранее уже была настроена синхронизация, то, в ряде случаев, может потребоваться замена префиксов ИБ в планах обмена этой и корреспондирующей баз, а также следует убедиться, что объекты с измененным префиксом пометились на выгрузку и корректно принялись корреспондирующей базой. Этот порядок действий находится за пределами данной статьи.

Аналогично можно произвести обратные замены, т.к предпочтения по назначению префиксов организаций и информационных баз у всех свои.

4. В "Бухгалтерии предприятия 3.0" требуется заменить префикс организации (или назначить его, что, фактически, подразумевает замену с префикса "00").

1) Открыть карточку организации и задать для нее новый префикс.

2) "Отметить все префиксуемые" документы, вручную добавить справочник "Сотрудники". Указать маску искомого префикса "__00-" (00- для примера назначения префикса, тут может быть старый префикс организации), и выполнить команду "Сформировать правильный префикс".

5. В информационной базе у какого-либо типа объектов вообще отсутствуют префиксы, номера начинаются с нулей без дефиса (например, после разовой загрузки данных из конфигураций на базе 1С 7.7 или других систем), требуется назначить префикс:

а) фиксированный, например, "01-".

Отметить нужный тип объекта. Указать маску "00000" (или меньшую по длине, в соответствии с этим замечанием). Выполнить команду "Заменить на целевой префикс", предварительно указав в поле напротив "01-".

б) в соответствии с правилами, принятыми для этой базы, вписав загруженные объекты в единый порядок нумерации.

1) Предварительно "отвести" нумерацию загруженных объектов с помощью "Универсальной обработки справочников и документов", перенумеровав их с последнего номера объекта, введенного в эту информационную базу, и получившего нормальный префикс (чтобы не возникло конфликта нумерации)

2) Отметить нужный тип объекта. Указать маску "00000" (или меньшую по длине, в соответствии с этим замечанием). Выполнить команду "Сформировать правильный префикс".

6. Требуется удалить префикс из объектов (оставить в начале номера нули без дефиса)

С учетом ранее указанных замечаний, указать шаблон исходного префикса. Выбрать объекты необходимых типов. Затем выполнить команду "Заменить на целевой префикс", предварительно очистив поле целевого префикса.

7. Прочее...

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

Совместимость

Обработка действует в типовых и самописных конфигурациях, разработанных на управляемых формах, вне зависимости от версии. Совместима с платформой от версии 8.3.12.

Примеры, представленные в статье, тестировались на конфигурациях "Бухгалтерия предприятия 3.0.88" и "Зарплата и управление персоналом 3.1.16".

замена нумерация префикс синхронизация обработка

См. также

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

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

14400 руб.

29.04.2020    32667    106    152    

73

SALE! 20%

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

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

3600 2880 руб.

10.02.2017    110501    662    174    

702

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

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

4800 руб.

27.10.2021    23918    241    35    

78

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

Обработка предназначена для корректировки входящего НДС при смене системы налогообложения индивидуального предпринимателя с УСН на ОСНО в 1С:Бухгалтерия предприятия 3.0

4000 руб.

18.07.2024    688    1    0    

1

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

Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.

3600 руб.

09.02.2024    1680    11    5    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. quazare 3800 28.02.21 08:17 Сейчас в теме
современные конфигурации на БСП используют подсистему "Префиксация объектов". Решить вашу задачу можно обычной обработкой перенумерация
2. stvorl 1047 28.02.21 12:56 Сейчас в теме
(1) Какой именно инструмент предлагается, если не секрет?
3. stvorl 1047 05.03.21 15:44 Сейчас в теме
(1) Не отвечаете. Прокомментирую сам.

Это, разумеется, хорошо, что есть подсистема "Префиксация объектов". Но иногда надо сменить префикс, иногда есть кривые загрузки, которые втягивают номера из баз, где такой подсистемы нет (префиксы не соответствуют ее стандартам, как при переходе с Бухгалтерии 7.7/4.5 или 2.0), или пользователи систематически портили префиксы. Во всех этих случаях нужна массовая замена, и по большей части, сами численные номера трогать не надо, достаточно подменить сами префиксы, или подравнять их по ширине, etc.

Что такое "обычная обработка перенумерации" тоже не совсем понятно. В БСП я такой не помню, но есть десятки сторонних решений, включая "универсальный подбор и обработку объектов", где есть классный перенумератор и замена префиксов. Но существенным недостатком большинства их них, обычно, является обработка только одного вида объектов за один проход. Что для задач, изложенных в примерах, крайне неудобно, т.к. потребует поклониться отдельно каждому виду документов и справочников, еще предварительно составив список префиксуемых.

(Кстати, я в некоторых примерах ссылался на необходимость сторонней обработки перенумерации, если отдельный вид объектов надо не только перепрефиксовать, но и предварительно перенумеровать)

Опубликованная же обработка позволяет обработать весь пул объектов сразу, что в разы ускоряет процесс. За прошлый год мне ее пришлось использовать примерно в 30 базах, я даже затрудняюсь предположить, сколько времени мне это сэкономило.

Если у Вас есть лучшее решение, я бы с удовольствием посмотрел.
4. mastakw 171 27.03.21 21:04 Сейчас в теме
5. GODCRM 10 22.06.21 17:58 Сейчас в теме
Привет! как раз искал ибо самому пилить некогда уже все дедлайны просраны :)))
кто может продать стартмани?
или каким другим путем могу получить эту обработку?
спасибо!
6. GODCRM 10 23.06.21 11:01 Сейчас в теме
7. folo 226 25.01.23 14:20 Сейчас в теме
поле рег.номер документа в регистре Данные первичных документов тоже меняется ?
8. stvorl 1047 25.01.23 23:04 Сейчас в теме
(7) Эта обработка такой самостоятельной логики не содержит.

Однако регистр этот заполняется, обычно, через подписку, которая вызывает функцию, которая пишет данные в этот регистр.
Если "Режим загрузки при обмене данными" не включен, эта подписка будет вызвана, и номер должен поменяться.
Сам я не тестировал.
9. folo 226 26.01.23 13:28 Сейчас в теме
(8) К счастью в БП регистр изменяется независимо от галки Обмен данными. Это плюс.
К несчастью все документы и справочники помечаются для обмена если используется синхронизация. А это уже беда.
Поэтому останавливаем обмен. Меняем префиксы и чистим содержимое списков к обмену. . Те же действия надо проделать в базе корреспонденте.
С учетом этих замечаний обработка сработала быстро и корректно. Спасибо.
Оставьте свое сообщение