Скрытие элементов работает автоматически для всех форм справочников и планов видов характеристик.
Примечание: Для форм, где есть вызов в ПриСозданииНаСервере() функционала подключаемых команд (в последних продуктах 1С практически везде подключаемые команды вызываются в формах, в часто используемых точно: Договоры, Номенклатура, Склады, Контрагенты, Банковские счета, Подразделения и т.д.).
Рис.1 Кнопка [Показать элементы находящиеся в архиве] в формах списка и выбора
Рис.2 Включение/Отключение секции с информацией об архивации (меню формы - Ещё - Изменить форму - группы "Данные в архиве")
Рис.3 Кнопка [Помещение элемента в архив] в формах элементов
Возможности расширения
- Поместить элемент в архив - открыть его форму и в командной панели нажать кнопку [Помещение элемента в архив], картинка изменится с на
- Возвратить элемент из архива - открыть его форму и в командной панели нажать кнопку [Помещение элемента в архив], картинка изменится с на
- Показать все элементы в списке - в форме списка в командной панели нажать кнопку [Показать элементы находящиеся в архиве], картинка изменится с на
- Скрыть архивные элементы в списке - в форме списка в командной панели нажать кнопку [Показать элементы находящиеся в архиве], картинка изменится с на
Права доступа
Возможность помещать/возвращать элементы из архива имеют пользователи с ролями: Полные права или Добавление изменение данных в архиве (Расширение: Данные в архиве).
Остальным пользователям должна быть назначена роль Чтение данных в архиве (Расширение: Данные в архиве).
Работоспособность расширения
Проверял на платформе 1С:Предприятие 8.3 (8.3.21.1607)
Режим совместимости расширения от версии платформы 8.3.14 и выше.
Работа проверялась в программах:
- 1С:ERP Управление предприятием 2 (2.5.6.290)
- 1С:Управление торговлей, редакция 11 (11.4.12.109)
- 1С:Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.17.171)
- 1С:Управление холдингом, редакция 3.2 (3.2.2.5)
- 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.116.27)
- 1С: Розница, редакция 2.3.13.30
- будет работать и на других продуктах 1С построенных на основе библиотеки стандартных подсистем. Во всех клиентах: тонкий, толстый, веб.
Работает и для форм, где список не на базе произвольного запроса, подменяя на произвольный запрос
Состав расширения
4 общих модуля, 4 картинки, 1 регистр сведений
Примечание
В версии платформы 8.3.22 есть возможность связи по УникальномуИдентификатору(...). Я такой код вставил, но он отключен, т.к. сам работаю на 8.3.21. Связь у меня по коду и наименованию (не супер решение, жду нормальную 8.3.22, чтобы по УИ связать)
Запрет выбора и ввода по строке, помещенных в архив элементов на примере справочника номенклатура
&Вместо("ОбработкаПолученияДанныхВыбора")
Процедура дава_ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
дава_НоменклатураОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка);
ПродолжитьВызов(ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
Процедура дава_НоменклатураОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Получим структуру возможных полей отбора справочника номенклатуры
СтруктураРеквизитов = ЗначениеНастроекПовтИсп.РеквизитыСправочника("Номенклатура");
Запрос = Новый Запрос;
СтрокаПоиска = Параметры.СтрокаПоиска;
УсловиеОтбора = "ИСТИНА";
Для Каждого КлючИЗначениеОтбора Из Параметры.Отбор Цикл
Если СтруктураРеквизитов.Свойство(КлючИЗначениеОтбора.Ключ) Тогда
УсловиеОтбора = УсловиеОтбора + "
| И СпрНоменклатура." + КлючИЗначениеОтбора.Ключ + " В (&" + КлючИЗначениеОтбора.Ключ + ")";
Запрос.УстановитьПараметр(КлючИЗначениеОтбора.Ключ,КлючИЗначениеОтбора.Значение);
КонецЕсли;
КонецЦикла;
Если НЕ Параметры.Отбор.Свойство("ЭтоГруппа") И Параметры.Свойство("ВыборГруппИЭлементов") Тогда
Если Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы Тогда
УсловиеОтбора = УсловиеОтбора + "
| И СпрНоменклатура.ЭтоГруппа";
ИначеЕсли Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Элементы Тогда
УсловиеОтбора = УсловиеОтбора + "
| И НЕ СпрНоменклатура.ЭтоГруппа";
КонецЕсли;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка,
| СпрНоменклатура.ПометкаУдаления КАК ПометкаУдаления,
| СпрНоменклатура.Наименование КАК ПредставлениеСовпадения,
| 0 КАК Порядок,
| СпрНоменклатура.Код КАК ПредставлениеНоменклатуры,
| СпрНоменклатура.ЭтоГруппа
|ПОМЕСТИТЬ НоменклатураПоиск
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
|ГДЕ
| СпрНоменклатура.Наименование ПОДОБНО &СтрокаПоиска
| И &УсловиеОтбора
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СпрНоменклатура.Ссылка,
| СпрНоменклатура.ПометкаУдаления,
| СпрНоменклатура.Код,
| 1,
| СпрНоменклатура.Наименование,
| NULL
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
|ГДЕ
| СпрНоменклатура.Код ПОДОБНО &СтрокаПоиска
| И &УсловиеОтбора
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СпрНоменклатура.Ссылка,
| СпрНоменклатура.ПометкаУдаления,
| СпрНоменклатура.Артикул,
| 2,
| СпрНоменклатура.Наименование,
| NULL
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
|ГДЕ
| СпрНоменклатура.Артикул ПОДОБНО &СтрокаПоиска
| И &УсловиеОтбора
|
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| НоменклатураПоиск.Ссылка,
| МИНИМУМ(НоменклатураПоиск.Порядок) КАК Порядок
|ПОМЕСТИТЬ НоменклатураПоПорядку
|ИЗ
| НоменклатураПоиск КАК НоменклатураПоиск
|
|СГРУППИРОВАТЬ ПО
| НоменклатураПоиск.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 50
| НоменклатураПоиск.ПометкаУдаления КАК ПометкаУдаления,
| НоменклатураПоиск.Ссылка КАК Ссылка,
| НоменклатураПоиск.Порядок КАК Порядок,
| НоменклатураПоиск.ПредставлениеСовпадения КАК ПредставлениеСовпадения,
| НоменклатураПоиск.ПредставлениеНоменклатуры КАК ПредставлениеНоменклатуры
|ИЗ
| НоменклатураПоПорядку КАК НоменклатураПоПорядку
| ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПоиск КАК НоменклатураПоиск
| ПО НоменклатураПоПорядку.Ссылка = НоменклатураПоиск.Ссылка
| И НоменклатураПоПорядку.Порядок = НоменклатураПоиск.Порядок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.дава_АрхивированныеДанные КАК дава_АрхивированныеДанные
| ПО УникальныйИдентификатор(НоменклатураПоПорядку.Ссылка) = дава_АрхивированныеДанные.УИОбъекта
|
| ГДЕ ЕстьNULL(дава_АрхивированныеДанные.Помещен, Ложь) = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| Порядок,
| ПредставлениеСовпадения,
| ПредставлениеНоменклатуры";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбора" ,УсловиеОтбора);
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска + "%");
ДанныеВыбора = Новый СписокЗначений;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТекстЗначения = СокрП(Выборка.ПредставлениеСовпадения) + " (" + Выборка.ПредставлениеНоменклатуры + ")";
ДанныеВыбора.Добавить(Выборка.Ссылка, ТекстЗначения);
КонецЦикла;
КонецПроцедуры
Версии
1. Добавил вывод для ЕРП для справочника номенклатура
2. Добавлена обработку группового помещения элементов в архив по произвольным отборам
e1cib/app/Обработка.дава_ГрупповоеПомещениеВАрхив
1) Добавлена возможность настройки списка типов объектов, для которых отображается функционал (кнопки, колонки). В предыдущих версия функционал подключался ко всем справочникам по умолчанию.
Настройка выполняется в регистре сведений "Подключение объектов (Расширение: Данные в архиве)", в который можно перейти из Функций технического специалиста либо по навигационной ссылке e1cib/list/РегистрСведений.дава_ПодключениеОбъектов
В регистре указываются типы справочников, для которых требуется отображать функционал архива.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.15.103
- 1С:Комплексная автоматизация 2, релизы 2.5.15.103
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.147.25
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.28.65
- Розница, редакция 2.3, релизы 2.3.17.19
- Управление торговлей, редакция 11, релизы 11.5.15.103