При изменении законодательства или смене налогового режима перед администраторами и разработчиками систем на базе 1С возникает задача массового обновления ключевых реквизитов. Одним из таких реквизитов является Основная ставка НДС, которая закреплена за каждым пользователем информационной базы. В конфигурации «1С:Управление торговлей 10.3» (УТ 10.3) эта настройка определяет значение по умолчанию при создании новых документов и справочников.
В этой статье мы подробно разберем, как решить эту задачу несколькими способами: с помощью написания собственной программной обработки, ручным методом через стандартный интерфейс, а также рассмотрим важные методологические нюансы, без которых изменение настроек пользователей не принесет желаемого результата.
Если в вашей базе данных зарегистрировано много пользователей, ручное редактирование параметров каждого из них займет слишком много времени. В таких случаях наиболее эффективным решением будет написание небольшой внешней обработки. Выясним, как устроена структура хранения этих параметров.
Настройки пользователей в конфигурации УТ 10.3 хранятся в периодическом регистре сведений НастройкиПользователей. Сами виды настроек определяются планом видов характеристик НастройкиПользователей. Чтобы изменить значение для всех пользователей сразу, нам потребуется программно считать записи этого регистра с отбором по конкретной настройке, перезаписать значение и сохранить набор записей.
Рассмотрим пример кода, который решает эту задачу. Вы можете разместить этот код в обработчике нажатия кнопки на форме вашей новой внешней обработки:
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Счетчик измененных настроек
Ном = 0;
// Создаем набор записей для работы с регистром сведений
Набор = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();
// Устанавливаем жесткий отбор по конкретному виду настройки — Основная ставка НДС
Набор.Отбор.Настройка.Установить(ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяСтавкаНДС);
// Читаем существующие в базе данных записи по нашему отбору
Набор.Прочитать();
// Перебираем полученные записи в цикле
Для каждого ЗаписьНабора Из Набор Цикл
// Переменные "Было" и "Стало" должны быть объявлены на форме как реквизиты
// со ссылками на значения справочника "СтавкиНДС" (например, 18% и 20%, либо 20% и 5%)
Если ЗаписьНабора.Значение = Было Тогда
ЗаписьНабора.Значение = Стало;
Ном = Ном + 1;
// Выводим в окно сообщений лог операции для контроля
Сообщить("Для пользователя: " + ЗаписьНабора.Пользователь + " установлена ставка: " + ЗаписьНабора.Значение);
КонецЕсли;
КонецЦикла;
// Записываем измененный набор записей обратно в базу данных
Набор.Записать();
Сообщить("Обработка завершена успешно! Всего изменено настроек: " + Ном);
КонецПроцедуры
Проанализируем этот алгоритм. Использование объекта НаборЗаписей с установленным отбором позволяет минимизировать нагрузку на базу данных, так как система считывает и блокирует только те строки регистра, которые соответствуют настройке ОсновнаяСтавкаНДС. Это исключает риск изменения других важных параметров пользователей, таких как основные склады, организации или подразделения.
Если в вашей базе работает небольшое количество сотрудников или у вас нет прав на запуск внешних обработок (например, в условиях жесткой политики безопасности), изменить настройки можно интерактивно. Разберем по шагам, как выполнить эту операцию штатными средствами платформы 1С:
Многие начинающие администраторы и бухгалтеры совершают критическую ошибку, считая, что изменение «Основной ставки НДС» в настройках пользователей полностью решает проблему перехода на новую ставку налога. Рассмотрим подробнее, почему это не так.
Параметр «Основная ставка НДС» в карточке настроек пользователя отвечает только за заполнение значений по умолчанию. Это значение подставляется:
Номенклатура;Однако в основных торговых документах, таких как РеализацияТоваровУслуг или ПоступлениеТоваровУслуг, ставка НДС заполняется непосредственно из карточки конкретной номенклатурной позиции. Если в карточке товара «Товар А» была указана ставка 18% или «Без НДС», то при выборе этого товара в табличную часть документа продажи подставится именно ставка из его карточки, проигнорировав любые индивидуальные настройки пользователя.
Таким образом, для корректного перехода на новую ставку НДС вам обязательно потребуется выполнить второй шаг — массово обновить ставки в справочнике Номенклатура.
Чтобы упростить процесс глобального изменения ставок в справочнике товаров, разработчики фирмы «1С» добавили в типовую конфигурацию УТ 10.3 специальный инструмент. Рассмотрим, как им воспользоваться:
Если ваша база сильно кастомизирована, находится на нетиповом или очень старом релизе, где такой помощник отсутствует, вам придется воспользоваться стандартной внешней обработкой «Групповая обработка справочников и документов» или обратиться к программисту для написания аналогичного скрипта по обновлению реквизитов справочника Номенклатура.
Описанные выше алгоритмы и подходы вновь стали чрезвычайно актуальными в связи с налоговой реформой, обязывающей многих налогоплательщиков на УСН исчислять и уплачивать НДС по ставкам 5% и 7%. Для корректной автоматической подстановки новых ставок в документы УТ 10.3 вам потребуется:
Своевременное проведение этих настроек позволит избежать ошибок при выписке первичных документов (УПД, счетов-фактур) и обеспечит корректное отражение операций в учетной системе.