В процессе работы любой организации накапливается значительное количество позиций номенклатуры, которые больше не закупаются и не продаются. Просто пометить их на удаление и стереть из базы нельзя, так как они задействованы в прошлых первичных документах и движениях регистров. При этом отображение старых товаров в окне подбора и общем справочнике мешает оперативной работе сотрудников. Разберем основные способы скрытия архивных позиций в программе «1С:Бухгалтерия предприятия 3.0».
В современных релизах конфигурации «1С:Бухгалтерия 3.0» предусмотрен специальный встроенный механизм для вывода товаров из активного оборота. Рассмотрим, как им воспользоваться:
Номенклатура (раздел «Справочники» — «Номенклатура»).Обратите внимание: система выполняет автоматическую проверку остатков на складах. Если по позиции числится положительный или отрицательный остаток, программа выдаст предупреждение.
После установки флага скрытый элемент перестает отображаться в общих формах списка, формах выбора и подбора, а также исключается из поиска при вводе текста с клавиатуры в табличные части документов. Если потребуется просмотреть архивные товары, в меню «Еще» справочника можно активировать пункт «Показывать скрытые товары» — такие строки будут выделены серым цветом.
Если используется версия программы без встроенной кнопки скрытия, проанализируем простой пользовательский способ группировки устаревших данных:
Номенклатура создаем отдельную группу (папку) с названием «Архив» (или «_Архив (не использовать)»). Для удобства восстановления структуры внутри можно повторить иерархию рабочих папок.Наименование специальную метку, например: [АРХИВ] Товар или (не использовать) Товар.Важный нюанс: реквизит Наименование используется для быстрого поиска и отображения в интерфейсе программы. Для печатных форм первичных документов (УПД, ТОРГ-12, Счетов) конфигурация использует реквизит НаименованиеПолное. Если изменить только краткое рабочее наименование, печатные формы старых проведенных документов останутся юридически корректными.
При создании накладных, счетов покупателям или актов списания большинство ошибок возникает именно в момент ручного подбора строк. Разберем, как быстро отсечь нулевые позиции в документе:
Если старая номенклатура полностью списана или распродана, данный переключатель моментально скроет все неактуальные карточки без необходимости менять их реквизиты.
В конфигурациях на базе БСП (Библиотеки стандартных подсистем) можно настроить фильтрацию через типовые дополнительные реквизиты без внесения изменений в структуру метаданных:
Номенклатура создаем новый реквизит «Архив» с типом значения Булево.Архив (Номенклатура) Равно Нет.Настроенный отбор сохраняется для пользователя и скрывает элементы из видимости в окне выбора.
Для гарантированного запрета выбора архивных позиций (включая ввод по строке с клавиатуры) программист может создать расширение конфигурации без снятия базы с официальной поддержки. Рассмотрим ключевые точки доработки:
1. Добавляем в расширение реквизит НеИспользуется (тип Булево) для справочника Номенклатура.
2. Перехватываем событие автоподбора в модуле менеджера справочника, чтобы скрыть товары при наборе наименования или артикула в табличной части:
&Вместо("ОбработкаПолученияДанныхВыбора")
Процедура Расш1_ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
// Добавляем обязательный отбор по признаку активности
Параметры.Отбор.Вставить("НеИспользуется", Ложь);
ПродолжитьВызов(ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
3. В модулях документов (например, РеализацияТоваровУслуг) в событии ОбработкаПроверкиЗаполнения добавляем контроль, исключающий проведение документов с архивной номенклатурой, если пользователь скопировал старый документ целиком.
Проанализируем две распространенные ошибки при решении этой задачи:
<Объект не найден>. Кроме того, усложнение RLS создает дополнительную нагрузку на СУБД.