Архив элементов в 1С

11.08.25

Задачи пользователя - Подбор и обработка объектов

В архив помещаются неактуальные элементы справочников. Тем самым появляется возможность выводить в справочнике для просмотра и выбора только актуальные в данный момент данные. Работает для всех справочников.

Файлы

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

Наименование Скачано Купить файл
Архив элементов в 1С
.cfe 57,21Kb
5 3 400 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Скрытие элементов работает автоматически для всех форм справочников и планов видов характеристик.

Примечание: Для форм, где есть вызов в ПриСозданииНаСервере() функционала подключаемых команд (в последних продуктах 1С практически везде подключаемые команды вызываются в формах, в часто используемых точно: Договоры, Номенклатура, Склады, Контрагенты, Банковские счета, Подразделения и т.д.).

 

Рис.1 Кнопка [Показать элементы находящиеся в архиве] в формах списка и выбора 

 

Рис.2 Включение/Отключение секции с информацией об архивации (меню формы - Ещё - Изменить форму - группы "Данные в архиве")

 

Рис.3 Кнопка [Помещение элемента в архив] в формах элементов

 

Возможности расширения

  • Поместить элемент в архив - открыть его форму и в командной панели нажать кнопку [Помещение элемента в архив], картинка изменится с  на 
  • Возвратить элемент из архива - открыть его форму и в командной панели нажать кнопку [Помещение элемента в архив], картинка изменится с  на 
  • Показать все элементы в списке - в форме списка в командной панели нажать кнопку [Показать элементы находящиеся в архиве], картинка изменится с  на 
  • Скрыть архивные элементы в списке - в форме списка в командной панели нажать кнопку [Показать элементы находящиеся в архиве], картинка изменится с  на  

Права доступа

Возможность помещать/возвращать элементы из архива имеют пользователи с ролями: Полные права или Добавление изменение данных в архиве (Расширение: Данные в архиве).

Остальным пользователям должна быть назначена роль Чтение данных в архиве (Расширение: Данные в архиве).

Работоспособность расширения

Создавалось и тестировалось решение на платформе 1С:Предприятие 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С
 
 
 Расширение: Архив элементов (версия 16.04.2023)

 

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.23.64
  • 1С:Комплексная автоматизация 2, релизы 2.5.23.64
  • 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.10.34
  • Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.181.10
  • Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.34.57
  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.34.57
  • Управление торговлей, редакция 11, релизы 11.5.23.64

Вступайте в нашу телеграмм-группу Инфостарт

архив скрытие невидимость ограничение выбор

См. также

Перенос данных 1C Учет документов Подбор и обработка объектов Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка «Сравнение документов» — это мощный инструмент для синхронизации и контроля данных между базами 1С:УНФ – 1С:БП, 1С:УТ – 1С:БП. Она позволяет сравнивать документы в двух базах, выявлять расхождения и загружать недостающие документы из одной базы в другую.

12000 руб.

06.08.2025    1736    3    0    

4

Подбор и обработка объектов Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.05.2025    2416    67    Rafael-87    18    

7

Подбор и обработка объектов Программист Бухгалтер Пользователь 1С:Предприятие 8 Абонемент ($m)

Горыныч - универсальная внешняя обработка группового многопоточного проведения. Работает в одном потоке в любой конфигурации, многопоточный режим доступен при наличии справочника «Склады».

10 стартмани

29.04.2025    4983    7    DmitryKSL    12    

17

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    1876    1    1    

1

Подбор и обработка объектов Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Управленческий учет Абонемент ($m)

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

1 стартмани

21.02.2025    1953    5    andrey7617    0    

4

Зарплата Подбор и обработка объектов Бухгалтер 1С:Предприятие 8 1С:Управление производственным предприятием Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Обработка позволяет выполнить последовательное (по датам получения дохода) распроведение и проведение документов по НДФЛ в конфигурации УПП 1.3.

1 стартмани

17.02.2025    3941    70    alexbur    19    

4

Журналы и реестры данных Подбор и обработка объектов Бухгалтер Пользователь 1С:Предприятие 8 Абонемент ($m)

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

10 стартмани

07.02.2025    5617    73    Marat1c8    40    

10

Подбор и обработка объектов Программист 1С:Предприятие 8 Россия Абонемент ($m)

Массовая работа с объектами типовыми методами платформы 1С.

10 стартмани

13.12.2024    2090    8    nomad_irk    7    

4
Отзывы
13. sapervodichka 7419 07.11.22 11:27 Сейчас в теме
(10) Да, тоже все есть. Если вдруг для какой-то формы не заработает (а это реально, т.к. в расширении универсальный код, который может частные случаи не учитывать ), то напиши, я добавлю в код расширения нужное уточнение и вышлю тебе через Яндекс.Диск.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. JohnyDeath 302 07.11.22 10:00 Сейчас в теме
А почему сделал через "Ложь" для версии 8.3.22, а не через СистемнаяИнформация.ВерсияПриложения ?
sapervodichka; +1 Ответить
3. starik-2005 3209 07.11.22 10:19 Сейчас в теме
(1)
Ложь
Из архива с памятью...
- Из-за чего вы развелись?
- Из-за лжи.
- И как было дело?
- Она спросила, буду ли я чай с сахаром. Я ответил: "ложь".

Оригинал:
- Что стало причиной вашего расставания?
- Ложь.
- А именно?
- Я его спросила: "Тебе сахар в кофе положить?", а он ответил: "Ложь".
Oronda; FoxSPb2012; Jeka44; Andreeei; awk; m_aster; Ankare; rusmil; sapervodichka; fatman78; JohnyDeath; user705522_constantin_h; ZOMI; +13 Ответить
5. sapervodichka 7419 07.11.22 10:44 Сейчас в теме
(1) Евгений, привет. Спасибо за коммент. Я не подключал условие под версию, потому что часть кода с методом УниверсальныйИдентификатор(...), появившимся в запросах платформы 8.3.22, написал на глаз, т.к. на серваке у меня 8.3.21 стоит (8.3.22 считаю пока не стабильна и не ставлю). По итогу когда попробую под 8.3.22 выложу с такой вилкой СистемнаяИнформация.ВерсияПриложения.
2. ybatiaev 59 07.11.22 10:01 Сейчас в теме
Добрый день! Очень актуально
4. lifeforeve 07.11.22 10:32 Сейчас в теме
привет
Для розницы 2.3 такое реально?
9. sapervodichka 7419 07.11.22 11:10 Сейчас в теме
(4) привет, да будет работать, сейчас посмотрел на рознице 2.3.13.30 (есть ОбщийМодуль.ПодключаемыеКоманды, есть его вызов в формах)
6. fatman78 21 07.11.22 10:49 Сейчас в теме
Хорошая идея и реализация. Есть нюанс формами, где:
Работает и для форм, где список не на базе произвольного запроса, подменяя на произвольный запрос
Если в элементах справочника много "тяжелых" реквизитов, особенно реквизиты с типом "хранилище значения",
то запрос через .* может давать сильную деградацию производительности при открытии формы и скроллинге списка. По хорошему нужно генерировать запрос индивидуально под каждый список. Я в расширении Блокировка изменения объектов через обмен данными (EnterpriseData) именно по этой причине не стал такую-же конструкцию в расширение вживлять и ограничился только перехватом произвольных запросов. Для списков документов это не так актуально было, там как правило все на запросах по умолчанию. Надо будет доделать генератор запроса для таких-же случаев.
sapervodichka; +1 Ответить
7. sapervodichka 7419 07.11.22 10:57 Сейчас в теме
(6) Рома, спасибо, да, проблема универсальности. Могу только сказать, что в основных справочниках (номенклатура, контрагенты, договоры и т.п.) произвольные запросы включены изначально в типовой форме, по остальным справочникам где не произвольный запрос, с чем пересекся, не столкнулся с тормозами. По итогу если такое прилетит, то буду в код расширения (он открыт) по имени формы вставлять конкретный запрос для проблемного справочника (ограничивая поля как ты указал).
8. fatman78 21 07.11.22 11:01 Сейчас в теме
(7)Странно, на каких конфигурациях смотрел? Я помню когда анализировал масштабы применения произвольного запроса для самых крупных справочников, то для себя отметил, что как правило в популярных типовых даже номенклатура без запроса сделана.
14. dhurricane 07.11.22 11:27 Сейчас в теме
(6)
Если в элементах справочника много "тяжелых" реквизитов, особенно реквизиты с типом "хранилище значения",
то запрос через .* может давать сильную деградацию производительности при открытии формы и скроллинге списка.
Кажется, что Вы заблуждаетесь. Что с произвольным запросом как в посте, что без, выбираются не все поля таблицы, а лишь видимые пользователю и отмеченные как "Использовать всегда". Т.е. здесь платформа оптимизирует запрос аналогично тому, как это можно наблюдать в отчетах на СКД, и никакой дополнительной нагрузки появиться не должно.
sapervodichka; dandykry; +2 Ответить
10. lifeforeve 07.11.22 11:15 Сейчас в теме
(9)
(9)а для Розница, редакция 2.3 (2.3.8.22)
можете посмотреть?
13. sapervodichka 7419 07.11.22 11:27 Сейчас в теме
(10) Да, тоже все есть. Если вдруг для какой-то формы не заработает (а это реально, т.к. в расширении универсальный код, который может частные случаи не учитывать ), то напиши, я добавлю в код расширения нужное уточнение и вышлю тебе через Яндекс.Диск.
11. sapervodichka 7419 07.11.22 11:18 Сейчас в теме
(4) Номенклатура в УХ, ERP, УТ с произвольным запросом список, в Бух без произвольного
12. lifeforeve 07.11.22 11:26 Сейчас в теме
Мне необходимо это скрыть номенклатуру в подборе РМК,и реализации
там работает?
15. lifeforeve 07.11.22 11:28 Сейчас в теме
а если стармани закончились
как получить ваш уникальный и нужный продукт?
19. Rafaraf 38 07.11.22 13:08 Сейчас в теме
(15) на бирже закончились ?
16. sapervodichka 7419 07.11.22 12:16 Сейчас в теме
(15) *))) договориться с кем-нибудь скачать (не со мной)
17. lifeforeve 07.11.22 12:17 Сейчас в теме
на самом деле глупый вопрос написал )
написал в состоянии аффекта
sapervodichka; +1 Ответить
18. 1cprogr_nsk 112 07.11.22 13:05 Сейчас в теме
А чем не устраивает стандартный механизм плана видов характеристик? Можно же общее свойство создать "В архиве", и при открытии формы списка или формы выбора, устанавливать отбор по нему...
20. Rafaraf 38 07.11.22 13:10 Сейчас в теме
(18)
А чем не устраивает стандартный механизм плана видов характеристик? Можно же общее свойство создать "В архиве", и при открытии формы списка или формы выбора, устанавливать отбор по нему...

может потому, что можно посмотреть кто и когда поместил ?
21. sapervodichka 7419 07.11.22 13:26 Сейчас в теме
(18) Если речь про доп реквизиты, то он не устроил, т.к. у этого механизма небольшое покрытие НСИ, например, в УХ нет допреквизитов у справочников, в ЕРП и Бух у 95 % справочников его нет. И да нельзя посмотреть кто и когда поменял или достал из архива.
35. 1cprogr_nsk 112 08.11.22 08:09 Сейчас в теме
(20)
(21)
Ну да, кто поместил и кто достал и когда этого нет, согласен. Зато механизм есть на старых конфигурациях (обычные формы) например УПП )))
22. Darklight 37 07.11.22 15:54 Сейчас в теме
Как я понял Вы меняете настройку динамического списка, и по регистру просто смотрите флаг - показывать не показывать - т.е. отбирать или не отбирать в результат динамического списка?
То есть - все элементы остаются на месте. И нагрузку на таблицу это никак не меняет (наоборот - утяжелает доп. подзапросом к регистру сведений, когда, например, общий реквизит на ту же тему был бы несколько эффективнее, но не на много - без перестроения всех основных индексов таблицы в СУБД что уже выходит за рамки лицензии 1С). Вы пишите про отсутствие покрытия - ну... это же решаемо!
А через RLS разве не удобнее было бы сделать тоже самое (да, пришлось бы роль менять/или подменять - но это всё автоуправляемо, да и работало бы не только с динамическими списками - правда тут уже решение обоюдоострое, но я не говорю о безусловном отсечении данных для сеанса пользователя, ведь можно ещё и динамическое управление через параметр сеанса замутить)
23. sapervodichka 7419 07.11.22 16:08 Сейчас в теме
(22) Павел, привет
1) Я не знаю как добавить общие реквизиты (3 шт. флаг, ответственного и дату) не меняя конфигурацию
2) Отсутствие покрытия функционалом доп. реквизитов 95 % справочников - если "решаемо!", то хочется увидеть как
3) Про RLS я лучше промолчу, с таким заявками к RLS в типовой конфе можно легко зарыть себя в могилу.

По факту, то хоть один пример "живой" приведи, я его к себе встрою в демку гляну
uriy; Kolesonik; +2 Ответить
25. Darklight 37 07.11.22 16:14 Сейчас в теме
(23)Про общие реквизиты в расширении может и немного погорячился - пока не поддерживаются - но я лишь говорил об эффективности, а не об удобстве. Править угниверсальными алгоритмами кастомные запросы динамических списков - то ещё занятие - баги там поймать как нефиг делать!
А чем Вам там так RLS не угодил?
26. sapervodichka 7419 07.11.22 16:17 Сейчас в теме
(25)
БАГИ: Как нефиг делать НЕ поймать, т.к. у запроса есть стандартная структура, где есть псевдоним основной таблицы и установка с ним связей. Всегда в тексте запроса есть задание псевдонима таблицы, всегда после псевдонима можно добавить левое соединение. Надеюсь это понятно.

RLS: Всё просто, я хорошо знаю что такое RLS. Против самого механизма RLS я ничего не имею против. Я против твоего предложения его использования в данной задаче: 1) Ты предлагаешь его включить, без понимания какую просадку по производительности понесет вся база (она предположительно ляжет); 2) Я не понимаю как ты предлагаешь его зашить в 1000 ролей на 1000 разных справочников, например ERP (и тд. в других объектах и других продуктах), как сохранить обновляемость конфы и дальнейшую поддержку вести этого RLS; 3) Принципиально не понимаю зачем он нужен для задачи скрыть элемент в выборе.
27. Darklight 37 07.11.22 16:32 Сейчас в теме
(26)В 1000 ролей на 1000 разных справочников я не предлагал зашивать RLS. По хорошему в системе должна быть только одна роль RLS на все справочник (это в идеале, на практике - это около 10 ролей, не пересекающихся по метаданным). Тогда ничего не ляжет. Но реально такое ограничено RLS действительно будет работать чаще чем требуется - и эффективность просядет в другом месте - так что да, признаю - эта идея не лучше. Но неплохо, что эта тема нашла своё обсуждение и итог. Просто пришла в голову альтернатива - она оказалась не лучше.
В отличии от другого предложения - про доп. реквизиты, но там да - тоже свои закавыки - но и свои преимущества - например по доп. реквизитам не просто удобнее и эффективнее фильтровать. Но можно легко организовать и секционирование таблтицы (пусть это и нарушает лиц. соглашение - но у кого большие справочники им иначе вообще труба в 1С8) - и вывести архив даже на отдельное файловое хранилище - вот тут и начинается самая большая эффективность для тех у кого таблицы справочников исчисляются миллионами строк. Правда тут ещё и с табличными частями придётся заморочиться...
Другое дело - это то, что доп. реквизитов нет в расширениях. Но, может, оно и "к лучшему" - можно скриптом задеплойдить автогенерируемое расширение - которое автоматически расширит все необходимые (в настройке) справочники доп. реквизитами. Останется только запускать скрипт после каждого обновления конфигурации, или при вводе новых кастомных справочников.
Ну или размещать доп. реквизиты в основной конфигурации - всё-таки новые объекты - это не изменение существующих - это будет работать и не в управляемых конфигурациях тоже
28. sapervodichka 7419 07.11.22 16:35 Сейчас в теме
(27) в любом случае спасибо за контраргументы, люблю побадаться, тоже ума набираюсь, частенько меня tormozit причёсывает
24. sapervodichka 7419 07.11.22 16:13 Сейчас в теме
(22) по поводу динамического списка: 1) Перехватываю ПодключаемыеКоманды.ПриСозданииНаСервере, где модифицирую текст запроса списка 2) Вывожу динамически группу колоно; 3) Вывожу динамически и цепляю кнопку к подключаемой команде со сменой картинок и изменением отбора динамического списка. По формам элементов: 1) Вывожу динамически и цепляю кнопку к подключаемой команде со сменой картинок и изменением регистрации в РС и сменой подсказки у кнопки (всплывает с инфо кто и когда изменил)
29. dhurricane 07.11.22 17:11 Сейчас в теме
1) Правильно же я понял, что сокрытие архивных данных работает только в формах со дин. списком? При вводе по строке архивные элементы справочников по-прежнему отображаются?

2) Судя по видео при архивировании объектов обновление списков происходит не мгновенно, потребовалось нажать "Обновить", чтобы увидеть результат. Я бы здесь рекомендовал использовать "ОповеститьОбИзменении" с указанием ссылки на заархивированный объект (или его тип), дабы платформа сама и сразу обновила отображение объекта в открытых формах.
sapervodichka; +1 Ответить
30. sapervodichka 7419 07.11.22 17:17 Сейчас в теме
(29)
1) Да, ввод по строке не ограничивается
2) Не видел в этом необходимости для пользователя, который настраивает, сам элемент кстати не меняется.
31. dhurricane 07.11.22 17:40 Сейчас в теме
(30)
1) Да, ввод по строке не ограничивается
Не планировалось сделать? В расширениях можно добавить подписки на события, кажется только с большей версией совместимости, что указано в публикации.

2) Не видел в этом необходимости для пользователя, который настраивает, сам элемент кстати не меняется.
Как по мне, так увидеть результат своих действий сразу же пользователю было бы удобнее. В т.ч. и при выполнении команд архивирования непосредственно в форме списка. Ну и понятно, что объект не меняется. "ОповеситьОбИзменении" лишь дает команду дин. спискам с подходящей основной таблицей обновиться, да кэш форм обновляется, также связанный с указанным объектом (или его типом).
sapervodichka; +1 Ответить
32. sapervodichka 7419 07.11.22 17:50 Сейчас в теме
(31) замечания все чёткие, спс, в ближайшие дни точно не поменяю, жду пока ещё накидают, в следующей версии постараюсь учесть
dhurricane; +1 Ответить
33. dhurricane 08.11.22 03:24 Сейчас в теме
Еще пара мыслей:
1) Судя по тем фрагментам кода, что есть в публикации, в регистре архива для идентификации объекта используется его код и наименование. Если всегда так, то код не сработает на справочниках банковских счетов в ERP (УТ, КА). Там нет кода.
2) Планы видов характеристик тоже стоило бы учесть. В ERP (УТ, КА) - это статьи доходов и расходов, довольно популярный ПВХ, который также порой пересматривается, от каких-то статей отказываются.
3) К сожалению проверить не могу, но начиная с 20-ой платформы расширения стали поддерживать "ЛюбаяСсылка". Возможно с уникальными идентификаторами в запросе можно было бы и не заморачиваться.
37. sapervodichka 7419 08.11.22 09:59 Сейчас в теме
(33) 1) Тогда код пустой и будет работать по наименованию (либо по УИ для 8.3.22 надо включить), 2) ПВХ там есть "СправочникСсылка" это псевдоним таблицы не конкретно к спраочникам, 3) Любая ссылка в расширении нет такого 8.3.21.1607
34. Alfn 62 08.11.22 06:47 Сейчас в теме
идея для оптимизации... для обработки ДС без произвольного запроса можно немного усложнить расширение.
Добавить РС (измерение: ИмяФормы, ресурс: ТекстЗапроса) и в процедуре изменения запроса брать текст оттуда.
Формировать и записывать текст запроса при первом обращении к форме, перебрав все реквизиты объекта, исключая "лишние".
38. sapervodichka 7419 08.11.22 10:06 Сейчас в теме
(34) см ответ (14) вроде это не имеет смысла т.к. платформа оптимизирует состав под видимые поля на форме
36. Serg O. 315 08.11.22 08:49 Сейчас в теме
есть ещё простой и быстрый способ (особенно у кого обычные формы)
- помечать неактуальные элемента на удаление ...
и не показывать их в списке, добавив фильтр на ПометкаУдаления
39. sapervodichka 7419 08.11.22 10:15 Сейчас в теме
(36) да, норм, если не надо видеть инфу кто и когда поместил видеть, и без доработок, то самое подходящее решение.
42. sapervodichka 7419 08.11.22 10:54 Сейчас в теме
(39) Ошибся, универсально не "норм" смотри ответ (40), удаление объектов будет перегружаться элементами. С оговоркой если на удалении нет заморочек, то можно сказать что "норм", но это единичные случаи, т.к. в общем и целом люди удаление делают и его зас..ть неправильно.
40. Darklight 37 08.11.22 10:39 Сейчас в теме
(36)Это плохое решение. Не помечайте на удаление то - что не хотите, чтобы было удалено безвозвратно. Не замусоривайте "корзину" с помеченными на удаление элементами, которые не удалятся никогда.
sapervodichka; +1 Ответить
41. sapervodichka 7419 08.11.22 10:50 Сейчас в теме
(40) Точно, верно, говоришь. Потом удаление превратиться в адские муки. Не "норм" использовать пометку на удаление для скрытия (беру слова про норм обратно, не подумал).
45. Serg O. 315 09.11.22 08:26 Сейчас в теме
(40) контрагенты (партнеры) или номенклатура, по которой были движения - по-любому нельзя удалять, но если по ним уже нет движений больше 1-2 лет, и они "мешаются" в общем списке - то пометка на удаление самое то, что надо.
Более того можно сделать папку, например, Старое (или OLD кому как нравится)
и сразу всю папку пометить на удаление (со всеми вложенными элементами).

И можно сделать "невидимость" помеченных на удаление даже по ролям пользователей.
А "кому надо" - настройкой пользователей - включать видимость всего.

Так что решение использовать стандартный "флажок", ПометкаУдаления - имеет смысл именно для старого и ненужного.
А про окончательное удаление - стандартное удаление помеченных на удаление элементов
и так не дадут их "случайно" удалить, потому что есть "связанные элементы" в базе.
46. sapervodichka 7419 09.11.22 08:42 Сейчас в теме
(45) речь про то что есть реальные вещи которые надо удалить, но до них просто удаление не дойдет, т.к. это не позволят сделать длительные контроли проверки ссылок на данные у скрытых через пометку на удаление, так и за ночь удаление не пройдет. Или есть способ чтобы например регламентное задание удаления отделяла скрытые от тех которые реально надо удалить?
47. Serg O. 315 09.11.22 09:10 Сейчас в теме
(46) у вас каждую ночь удаление происходит?
тогда да, придётся сделать ещё список папок (может даже регистр сведений)
для исключения всех папок всех типов справочников.
и игнорировать их при удалении.
Возможно свою обработку для удаления (здесь на Инфостарте вроде есть такие обработки)
и сделать исключение при отборе по Родителю ... НЕ Элемент.Родитель В (&СписокПапок)

Помеченные на удаление - всегда могут "заново" понадобиться.
и у многих (особенно в базах с регл.учётом) ничего не чистится ... вообще никогда.
или крайне редко - раз в год в новогодние праздники... например.
49. Darklight 37 09.11.22 09:47 Сейчас в теме
(45)
они "мешаются" в общем списке - то пометка на удаление самое то, что надо.

То что они мешаются в общем списке как раз и решается задачами "архивирования" (и плохо, что это не встроено ни в платформу, ни типовые конфигурации изначально). Чаще всего, без доработок, просто это делают перемещением таких элементов в отдельную группу а-ля "Архив" и установкой отбора по умолчанию (не в группе "Архив"), хотя на втором месте будет да - скрытие через пометку на удаление и это плохо.
Пометка удаления будет мешать потом удалению нужных элементов. Когда объёмы помеченных превысят все мыслимые и не мыслимые объёмы - например я встречал десятки помеченных на удаление элементов - из которых почти ничего не удалялось - но сам процесс окончательно удаления нужных элементов занимал больше суток - а разбираться там, что надо удалять, что пока не надо - вообще не реально!

А по поводу случайно удалить - встречал и такое - удаляли удаляли! Потом по бэкапу базы приходилось восстанавливать! Причём если оно сейчас не удаляется - не факт, что потом, что-то не изменится.

Было ещё пара-тройка случаев (правда не про 1С, но очень поучительных), когда человек хранили "получается что важные" документы в Корзине ОС - а потом она очистилась - и документы пропали! Вывод - не храните в мусорке то, что Вам ещё дорого! А пометка на удаление - по сути это и есть хранение в мусорке!

Но всё-таки лично для меня - "архивирование" данных в ИБ - это больше именно процесс переноса не актуальных данных, условно, из условного OLTP контура (и даже из OLAP) контура - в отдельное хранилище, где эти данные не будут мешать работе с актуальными, снижать производительность и расходовать дорогие ресурсы оборудования. Но тут, конечно, в первую очередь желательная поддержка со стороны платформы. Но и без неё, ограничено можно это организовать, например, через сегментирование таблиц в СУБД (хоть это и нарушает лиц. соглашение 1С) - просто это нужно не для скрытия сотен и сотен тысяч элементов - это принципиально важно для скрытия миллионов и сотен миллионов элементов, в очень крупных базах данных - но если с ссылочными типами это боле-менее просто, то с записями регистров всё куда сложнее)
43. HanterVol 9 08.11.22 15:56 Сейчас в теме
Неплохое решение, но из опыта - после скрытия неиспользуемых элементов возникает новая задача - "Запретить ввод дублей".. но через пол-года
Altez50; Darklight; sapervodichka; +3 Ответить
44. sapervodichka 7419 08.11.22 22:35 Сейчас в теме
(43) спасибо, это аргумент (реально сложно не ввести повторно, то что скрыто) Новая идея - реализовать запреты дублей другим расширением.
GorkyGorod; Serg O.; +2 Ответить
50. cypoc 09.11.22 13:39 Сейчас в теме
(44)
Здравствуйте. Напишите мне в личку пожалуйста, хочу попросить совета.
48. Darklight 37 09.11.22 09:29 Сейчас в теме
(43)Ну, на ввод дублей должна быть отдельная проверка (не зависимо - скрыты они или нет).
А так, как бы да - неплохо, хотя бы при "стандартном" поиске по подстроке делать ещё и поиск по скрытым элементам - и если там что-то находится - то хотя бы просто в каком-то интерфейсной элементе (например, в текстовой декорации, ярко выделенной) выводить информацию о том, что найдено ещё и в скрытых элементах (и желательно количество) - а по нажатии на этот GUI-элемент - показывать отдельно что нашлось в скрытых.
Крайне жаль что такие важные вещи не умеет делать сама платформа!
GorkyGorod; Altez50; +2 Ответить
51. sapervodichka 7419 15.11.22 01:45 Сейчас в теме
Расширение: Архив элементов (версия 15.11.2022)
1. Исправлены права роли Чтение данных в архиве (вызывала ошибку)
52. julia-dev 20 21.12.22 05:45 Сейчас в теме
(51) Добрый день, применили ваше расширение на ERP 2.5.7.269. Решение интересное, планируем применение в работе. Но возникло несколько проблем.
При открытии формы списка справочника Сотрудники возникает ошибка

Параметры Отбора, Сортировки, Группировки или список отображаемых полей заданы неверно. Не найдено поле отбора ДанныеВАрхиве_ВАрхиве
.
В самом запросе псевдоним у справочника Сотрудники - "Сотрудники", здесь добавили псевдоним в модуль дава_Сервер.ПриСозданииНаСервере, но при установки отбора динамического списка возникает ошибка.

Исправили самостоятельно, но если интересно, то возникли проблемы:
1. Так же расширение не отрабатывает на ПВХ Статьи доходов и расходов, т.к. на форме ИмяЭлементаСписка = "СтатьиРасходов" или "СтатьиДоходов" плюс при выборе статей в документах открывается "ОбщаяФорма.ФормаВыбораСтатьи"
2. Справочник Номенклатура, форма списка. А в документах при подборе открывается форма Обработка.ПодборТоваровВДокументПродажи.Форма.Форма
3. При выборе Партнера в документах, т.к. форма выбора: Справочник.Партнеры.Форма.ФормаВыбораБезПолнотекстовогоПоиска
Прикрепленные файлы:
sapervodichka; +1 Ответить
53. sapervodichka 7419 21.12.22 09:32 Сейчас в теме
(52) Юлия, спасибо за комментарий. Вы правы в том, что не везде универсально прокатывает, надо подправлять. Я так понял что "мы сами с усами" и уже поправили?
54. julia-dev 20 21.12.22 11:44 Сейчас в теме
(53) Да, сами исправили, кроме сотрудников. Там пока не разобралась. Почему-то при создании на сервере формы списка Сотрудников, группа колонок Архив создается, а вот сами колонки не добавляются, поэтому и ошибка при открытии, отбором пытаемся отобрать по полю, которого нет
55. zaogorizont 13.02.23 02:28 Сейчас в теме
1С:ERP Управление предприятием 2 (2.5.10.93) в справочнике номенклатуры данный функционал не работает
56. sapervodichka 7419 13.02.23 09:13 Сейчас в теме
58. sapervodichka 7419 14.02.23 10:27 Сейчас в теме
(55) Выслал в личку модифицированный
59. zaogorizont 14.02.23 23:25 Сейчас в теме
(58)спасибо проверяем
60. zaogorizont 14.02.23 23:33 Сейчас в теме
(59) командной строке нет пиктограммы
61. sapervodichka 7419 14.02.23 23:54 Сейчас в теме
(60) У меня на демке ЕРП есть, посмотри может в меню Ещё сползла из-за большого количества кнопок.
Прикрепленные файлы:
57. sapervodichka 7419 14.02.23 10:26 Сейчас в теме
Добавлена новая версия
Расширение: Архив элементов (версия 13.02.2023)
1. Добавил вывод для ЕРП для справочника номенклатура
2. Добавлена обработку группового помещения элементов в архив по произвольным отборам
e1cib/app/Обработка.дава_ГрупповоеПомещениеВАрхив
3. В описание статьи добавлен пример кода как ограничить ввод по строке для элементов в архиве
62. OOORTZ 31.03.23 15:06 Сейчас в теме
В ERP в справочнике номенклатура выходит ошибка

Ошибка инициализации модуля: Расширение_ДанныеВАрхиве Справочник.Номенклатура.МодульМенеджера
по причине:
{Расширение_ДанныеВАрхиве Справочник.Номенклатура.МодульМенеджера(15,24)}: Переменная не определена (ЗначениеНастроекПовтИсп)
СтруктураРеквизитов = <<?>>ЗначениеНастроекПовтИсп.РеквизитыСправочника("Номенклатура");
63. sapervodichka 7419 31.03.23 15:21 Сейчас в теме
а какой релиз ЕРП используете я посмотрю почему не определяется общий модуль ЗначениеНастроекПовтИсп?

Пока я смотрю можете в расширении в Справочники.Номенклатура.МодульМенеджера заменить вызов ЗначениеНастроекПовтИсп.РеквизитыСправочника() на РеквизитыСправочника().
Саму функцию добавьте в модуль менеджера.

Функция РеквизитыСправочника(ИмяСправочника)
	
	СтруктураРеквизитов   = Новый Структура;
	МетаданныеСправочника = Метаданные.Справочники[ИмяСправочника];
	
	Для Каждого Реквизит Из МетаданныеСправочника.СтандартныеРеквизиты Цикл
		СтруктураРеквизитов.Вставить(Реквизит.Имя, Реквизит.Синоним);
	КонецЦикла;
	
	Для Каждого Реквизит Из МетаданныеСправочника.Реквизиты Цикл
		СтруктураРеквизитов.Вставить(Реквизит.Имя, Реквизит.Синоним);
	КонецЦикла;
	
	Возврат СтруктураРеквизитов;
	
КонецФункции
Показать
64. OOORTZ 31.03.23 16:51 Сейчас в теме
"Запрет выбора и ввода по строке, помещенных в архив элементов на примере справочника номенклатура"

данный код должен блокировать ручной ввод при наборе в ТЧ документа?

если по коду и наименованию, так делаю?

|	НоменклатураПоПорядку КАК НоменклатураПоПорядку
	|		ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПоиск КАК НоменклатураПоиск
	|		ПО НоменклатураПоПорядку.Ссылка = НоменклатураПоиск.Ссылка
	|			И НоменклатураПоПорядку.Порядок = НоменклатураПоиск.Порядок	
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.дава_АрхивированныеДанные КАК дава_АрхивированныеДанные
	|		ПО НоменклатураПоПорядку.Код = дава_АрхивированныеДанные._КодЭлемента
	|			И НоменклатураПоПорядку.Наименование = дава_АрхивированныеДанные._НаименованиеЭлемента
67. sapervodichka 7419 05.04.23 22:58 Сейчас в теме
(64) вроде так, можно просто 1 условие по коду оставить (без наименования)
65. user1198184 05.04.23 22:10 Сейчас в теме
Добрый день

Подскажите, с помощью расширения убрал в архив не нужную номенклатуру. В самом справочнике номенклатура не отображается.
Но при создании заказа клиента если добавлять построчно или через Подбор - все-равно эта номенклатура показывается и предлагается.
Это корректно?
смысл тогда Архива как-то слегка ограниченный...
66. sapervodichka 7419 05.04.23 22:56 Сейчас в теме
(65) в самой статье посмотрите вот этот код по ограничению ввода по строке, нужно перехватить номенклатуру в расширение и в модуль менеджера вставить
Прикрепленные файлы:
68. user1198184 06.04.23 12:06 Сейчас в теме
(66) Понятно... будем допиливать. Спасибо.
sapervodichka; +1 Ответить
69. muzikant 19.04.24 10:17 Сейчас в теме
Будет работать на 8.3.24.1467 и апрельском релизе БП 3.0.151.27?
70. user1527410 19.04.24 14:03 Сейчас в теме
При входе пользователей с правами ЧТЕНИЕ выходит такая ошибка

Расширение_ДанныеВАрхиве: Обычная: Ошибка применения модуля "Расширение_ДанныеВАрхиве ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль". Список параметров метода "дава_НачатьВыполнениеКоманды" не соответствует методу "НачатьВыполнениеКоманды".
71. virs 23.05.24 21:24 Сейчас в теме
скрывает, или нет архивную номенклатуру без допиливания этого расширения в конфе бухгалтерии при подборе товара в счетах и реализациях?
72. Vinzor 118 24.06.24 11:32 Сейчас в теме
При помещении элемента в архив выскакивает ошибка "Сведения о команде дава_ПомещениеВАрхив не существуют".
Функция "ОписаниеКоманды" в общем модуле "ПодключаемыеКоманды"
ЗУП КОРП 3.1 3.1.29.62, платформа 8.3.23.2157
73. Vinzor 118 06.07.24 09:38 Сейчас в теме
В ЗУПе много возни с этим.
Есть формы без этих общих процедур типа "Подключаемые команды".
И часто нет форм выбора, вместо них формы списка, в параметрах которых свойство "РежимВыбора" с флагом "истина".
Приходится всё это перекручивать...
74. finofficer777 12.03.25 16:32 Сейчас в теме
У меня не работает
ERP УХ
75. native-api 28 24.04.25 18:26 Сейчас в теме
В версии платформы 8.3.22 есть возможность связи по УникальномуИдентификатору(...). Я такой код вставил, но он отключен, т.к. сам работаю на 8.3.21.

Разве нельзя использовать для дава_АрхивированныеДанные.УИОбъекта тип "ЛюбаяСсылка"?
И хранить и сравнивать сами ссылки, не заморачиваясь с их УИДами.

Сейчас попробовал, вроде работает (дифф с версией 16.04.2023 вложен).
Прикрепленные файлы:
ЛюбаяСсылка.diff
Для отправки сообщения требуется регистрация/авторизация