Массовое изменение реквизитов номенклатуры в 1С

· 9 мин

Содержание

Перезаписать реквизиты сразу у многих позиций номенклатуры в 1С позволяет штатная обработка Изменение выделенных объектов. Открывается она из любого списка справочника: выделяете нужные позиции и в командной панели нажимаете Ещё → Изменить выделенные. Отдельная конфигурация под это не нужна — обработка входит в состав типовых БП 3.0, УТ 11, ЗУП 3.1, ERP и Комплексной автоматизации.

Массовое изменение номенклатуры нужно, когда у десятков или тысяч карточек надо поменять одно и то же: подставить ставку НДС, сменить вид номенклатуры, проставить единицу измерения, перенести позиции в другую группу или заполнить пустой реквизит. Вручную это заняло бы часы — обработка делает за один проход.

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

Что сделать до массовой перезаписи

Массовое изменение необратимо штатными средствами: кнопки «отменить» у обработки нет. Поэтому до старта — резервная копия.

  • 🗄️ Выгрузите базу. В файловом варианте скопируйте файл 1Cv8.1CD, пока база закрыта. В клиент-серверном — через конфигуратор: Администрирование → Выгрузить информационную базу в файл .dt.
  • 🕐 Выберите время. Монопольный доступ обработке не нужен, но если менять тысячи позиций в разгар рабочего дня, пользователи будут натыкаться на блокировки записей. Лучше вечером или в обед.
  • 🔍 Проверьте отбор на выборке. Сначала примените изменение к 3–5 позициям, убедитесь, что результат верный, и только потом запускайте на весь список.
  • 👤 Нужны права. Обработка доступна пользователю с правом на изменение справочника. У роли «только просмотр» команды Изменить выделенные в меню не будет.

Без свежей резервной копии массовую перезапись не запускайте. Ошибка в формуле или неверный отбор испортят сразу всю номенклатуру, и откатывать придётся из копии.

Готовность к массовому изменению
Выполнено: 0 / 5

Где находится обработка «Изменение выделенных объектов»

Есть два пути открыть инструмент.

Из списка номенклатуры. Откройте Справочники → Номенклатура (в БП 3.0 — раздел Справочники, в УТ 11 — раздел НСИ и администрирование → Номенклатура). Выделите позиции мышью с зажатым Ctrl или весь список клавишами Ctrl + A. В командной панели нажмите Ещё и выберите пункт про изменение выделенных. Это самый быстрый способ.

Через «Все функции». Если команды в меню Ещё нет, включите служебное меню: Главное меню → Сервис → Параметры → поставьте флажок «Отображать команду Все функции». После этого Главное меню → Все функции → Стандартные → Изменение выделенных объектов. В открывшейся обработке вручную задаётся тип объекта и добавляются элементы.

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

Отбор позиций: меняем только то, что нужно

Главный риск массовой перезаписи — задеть лишние карточки. Поэтому сначала сузьте список, а уже потом выделяйте.

В списке номенклатуры используйте отбор: нажмите Ещё → Настроить список (или значок настройки над списком) и задайте условие — например, по группе, по виду номенклатуры, по значению реквизита. В списке останутся только подходящие позиции, тогда Ctrl + A выделит ровно их.

Пример. Нужно проставить ставку НДС только товарам одной группы, у которых она ещё пустая. Задаёте в отборе группу и условие «Ставка НДС = пусто». После применения в списке видно точное число таких позиций — счётчик внизу формы. Это число вы и сверяете с тем, что ожидали увидеть, прежде чем жать Ctrl + A. Если позиций оказалось заметно больше или меньше — сначала разберитесь почему, а потом меняйте.

Когда условие сложное (позиции без заполненной единицы измерения, с конкретной ставкой НДС и в нужной группе одновременно), удобно сначала проверить их число через консоль запросов. Консоль только читает данные — изменить ими ничего нельзя, но она точно покажет, сколько записей попадает под условие. Сверив число с тем, что вы ждёте, повторите тот же отбор в списке и запускайте обработку. Так вы страхуетесь от «поменяли не те 400 позиций».

Если консоли запросов в базе нет, её скелет берётся из комплекта внешних обработок на дисках ИТС. Для разовой сверки числа позиций хватает и обычного отбора в списке плюс счётчика внизу формы.

Пошагово: перезаписываем реквизиты номенклатуры

Разберём простой режим — когда всем выделенным позициям надо подставить одно значение.

  1. Выделите позиции в списке и откройте Ещё → Изменить выделенные.
  2. В обработке появится список выбранных объектов и перечень реквизитов номенклатуры.
  3. Найдите нужный реквизит (например, Ставка НДС или Единица измерения), поставьте у него флажок.
  4. В поле значения задайте то, что надо подставить. Значение можно выбрать из справочника или ввести вручную — зависит от типа реквизита.
  5. Нажмите Изменить реквизиты. Обработка пройдёт по всем позициям и запишет значение.
  6. По завершении покажется число обработанных объектов и список тех, что записать не удалось (если такие есть).

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

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

Режим алгоритма. В обработке есть вкладка для выполнения кода на встроенном языке 1С. Там для каждой позиции доступен объект Объект — это текущий элемент номенклатуры. Пример — проставить единицу измерения, только если она не заполнена:

Если Объект.ЕдиницаИзмерения.Пустая() Тогда
    Объект.ЕдиницаИзмерения = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию("шт");
КонецЕсли;

После строк кода обработка сама вызывает запись объекта. Режим алгоритма мощнее, но и опаснее: ошибка в коде применится ко всем позициям, поэтому его обязательно проверяют на нескольких карточках.

Какие реквизиты номенклатуры перезаписывают чаще всего

У каждого реквизита свои тонкости — от них зависит, простым режимом его менять или алгоритмом.

  • 🏷️ Ставка НДС. Частый случай при смене ставки или исправлении ошибки ввода. Меняется простой подстановкой. Новое значение попадёт в документы, оформленные после перезаписи; ранее проведённые реализации и поступления остаются с прежней ставкой.
  • 📦 Единица измерения. Тоже простая подстановка, но значение должно уже существовать в справочнике упаковок и единиц. Если позиций без единицы много, удобнее режим алгоритма с проверкой Пустая(), чтобы не перезатирать заполненные карточки.
  • 🗂️ Вид номенклатуры. Влияет на счета учёта и правила заполнения документов. Перед массовой сменой проверьте на одной карточке, как после этого подставляются счета, иначе придётся откатываться.
  • 📁 Перенос в другую группу. Если справочник иерархический, у номенклатуры есть реквизит-родитель (группа). Его тоже можно перезаписать массово — позиции переедут в выбранную папку. Отбор делайте по текущей группе.
  • 🔢 Артикул, код поставщика, дополнительные реквизиты. Для них чаще нужен режим алгоритма: значение вычисляется или собирается из других полей. Дополнительные реквизиты (из подсистемы свойств) в простом списке обработки могут не показываться — тогда только алгоритм.

Перед массовой сменой реквизита, влияющего на учёт (вид номенклатуры, ставка НДС, счета), оформите один пробный документ после изменения и посмотрите, как он заполнился. Это дешевле, чем откат всей базы.

Отдельно про режим алгоритма: он разбирает по одной позиции за раз, поэтому в коде опирайтесь только на поля текущего объекта. Второй частый пример — привести наименование к единому виду, убрав лишние пробелы:

Объект.Наименование = СокрЛП(Объект.Наименование);

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

Сравнение способов изменения номенклатуры

СпособКогда применятьЧто умеетРиск
Простая подстановка значенияОдно и то же значение на все позицииЗаполнить/перезаписать реквизит справочникаНизкий
Режим алгоритма (код)Значение зависит от других полей или условийЛюбая логика на встроенном языкеВыше: ошибка кода идёт на все позиции
Правка каждой карточки вручную5–20 позиций, разные значенияПолный контрольДолго, человеческий фактор
Программная обработка разработчикомНетиповые сценарии, связанные объектыМенять и справочники, и движенияТолько со специалистом и на копии

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

Типичные ошибки при массовой перезаписи

Разберём, что мешает записи и как это чинить.

Диагностика: выберите симптом

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

Проверка результата и контроль целостности

После массовой перезаписи убедитесь, что поменялось именно то, что планировали, и ничего лишнего.

  • ✅ Сверьте число. Отчёт обработки показывает, сколько объектов изменено. Оно должно совпасть с числом позиций, которые вы выделяли.
  • 🔎 Откройте выборочно. Проверьте 5–10 карточек из разных групп: стоит ли новое значение, не затронуты ли соседние реквизиты.
  • 📋 Проверьте отбором. Сделайте в списке отбор по новому значению реквизита — под него должны попасть ровно изменённые позиции.
  • 🧾 Контроль по движениям. Если меняли реквизит, влияющий на учёт (ставку НДС для будущих документов), оформите пробный документ с этой номенклатурой и посмотрите, корректно ли он заполняется.

Если проверка выявила лишние изменения — не правьте «обратно» второй массовой перезаписью по памяти. Восстановите базу из резервной копии, сделанной перед операцией, и повторите с точным отбором. Так вы не накопите ошибки слоями.

Когда всё сошлось, зафиксируйте для себя, что именно и по какому отбору меняли: при следующей похожей задаче вы повторите готовую последовательность, а не будете собирать условие заново. Для регулярных операций отбор в списке можно сохранить как настройку — тогда перед каждым массовым изменением вы будете получать одну и ту же выборку.

Нужен ли монопольный режим для массового изменения номенклатуры?
Нет. Обработка Изменение выделенных объектов работает в обычном режиме, другие пользователи могут быть в базе. Монопольный доступ нужен только для обновления конфигурации, загрузки .dt и тестирования базы.
Можно ли отменить массовую перезапись одной кнопкой?
Штатно — нет. Единственный надёжный откат — восстановление из резервной копии, сделанной до изменения. Поэтому копия обязательна.
Влияет ли смена реквизита номенклатуры на прошлые проводки и отчёты?
Нет. Изменение реквизита справочника (вид, группа, ставка НДС) задним числом ранее проведённые документы и сформированные движения не переписывает. Новое значение учитывается в документах, оформленных после изменения.
Как перезаписать реквизит из табличной части или характеристику?
Простой режим меняет только реквизиты шапки карточки. Для табличных частей, характеристик и подчинённых данных используйте режим алгоритма с кодом на встроенном языке либо обратитесь к разработчику.
Чем массовое изменение отличается от групповой обработки справочников?
Это один инструмент: в типовых конфигурациях на базе Библиотеки стандартных подсистем он называется «Изменение выделенных объектов» и открывается из списка через Ещё. Функционально он и есть групповое изменение реквизитов.