Продвинутая сортировка ПКО, ПКС, ПКГС и ПКЗ

14.10.19

Разработка - Инструментарий разработчика

Поможет упорядочить правила конвертации (ПКО, ПКС, ПКГС и ПКЗ) для конфигурации 1С:Конвертация данных, ред. 2.1. Сортировка по классам, типам, значимости, порядку следования в дереве метаданных и именам приемников.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Продвинутая сортировка ПКО, ПКС, ПКГС и ПКЗ:
.epf 17,79Kb ver:1.3
7
7 Скачать (1 SM) Купить за 1 850 руб.

Работа с правилами

Правила обмена состоят из правил выгрузки данных, конвертации объектов, свойств и значений, правил очистки данных, алгоритмов и запросов. При этом большое время работы программисты обычно уделяют работе с ПКО и ПКС.

Как создаются правила? Обычно так — пишется и согласовывается ТЗ (иногда в очень примитивном виде), разрабатывается и отлаживается костяк правил, а потом, по мере усложнения обмена, развития конфигураций и появления пожеланий пользователей, в него добавляются новые правила.

Что происходит с конвертацией при этом? Разработчик определяет методику переноса одного объекта в другой (если их вообще можно сопоставить) или разрабатывает алгоритм более сложной трансформации. Результат — новые ПКО, ПКС, ПКГС, ПКЗ. Новые правила добавляются снизу к уже существующим. Важные правила — по которым идет поиск, правила передачи параметров, свойства движений могут располагаться где угодно, и очень велик риск их пропустить или не заметить.

День, когда правила стали большими

Когда приходится заглядывать в Конфигуратор конфигурации-приемника, метаданные располагаются далеко не в том порядке, в которых они описаны в правилах. А хотелось бы, например, чтобы в правилах переноса набора записей сначала шли свойства (период, активность, период действия, период регистрации, вид расчета), затем — измерения и ресурсы, и, наконец — реквизиты. Чтобы правила конвертации свойств, по которым может выполняться поиск стояли на первом месте. Чтобы при сортировке учитывалось имя  объекта и порядок следования в дереве метаданных. Чтобы правило можно было найти среди сотен других, зная только имя и не прибегая к волшебному сочетанию клавиш «Ctrl+F».

Обработка «Продвинутая сортировка ПКО, ПКС, ПКГС и ПКЗ» поможет упорядочить правила обмена. Предназначена она для работы в первую очередь со сложными правилами обмена, но может быть использована и для относительно простых. Обработка проанализирует состав правил и предложит варианты сортировки:

  • ПКО — по классу и имени приемника.
  • ПКС — по важности, признаку поиска, порядку следования в метаданных конфигурации-приемника и имени приемника.
  • ПКЗ — по порядку в метаданных.

Например, при определении порядка следования реквизитов документа предложенный будет таким: сперва ПКС параметров и полей поиска, далее — номер и дата, затем — вид операции, организация и подразделение, период регистрации (месяц начисления или месяц), потом — контрагент и договор. Потом — основной массив ПКС, отсортированный по имени и порядку следования в дереве метаданных. И в последнюю очередь — сумма документа и комментарий.

После нажатия кнопки «Выполнить» обработка обновит значение реквизита «Порядок» для выбранных ПКО, ПКС, ПКГС и ПКЗ. В результате вы получаете оптимально упорядоченные правила, работать с ними гораздо легче и проще.

Все и сразу

Обработка «Продвинутая сортировка ПКО, ПКС, ПКГС и ПКЗ» может работать как с одной конвертацией, так и сразу несколькими — для этого просто выберите группу. Открытый код и простота доработки.

Этот инструмент активно используется мной при разработке собственных правил. Обычно обрабатывается сразу пакет правил обмена (релиз, включает 21 конвертацию, около сотни ПКО и несколько тысяч ПКС в каждой).

Скачайте обработку и приведите свои правила в порядок.

Протестировано на релизе 2.1.8.2 конфигурации 1С:Конвертация данных, ред. 2.1

Небольшая подборка моих инструментов для 1С:Конвертация данных, ред. 2.1:

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

конвертация правила сортировка упорядочивание

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    180466    1001    403    

954

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    21791    146    82    

144

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    19478    50    19    

84

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    13210    54    33    

74

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29631    101    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18832    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1964    2    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. fr18 23.04.19 12:16 Сейчас в теме
Судя по видео - зачетная штука.
2. tomvlad 3868 23.04.19 12:17 Сейчас в теме
(1) Да, мне тоже нравится :)
3. Antoska 16 15.12.20 20:43 Сейчас в теме
А может эта обработка отсортировать ПВД по ПКО?
4. Antoska 16 16.12.20 14:29 Сейчас в теме
(3)Можно. Доработал конфигурацию КД 2.1.8.2. В Модуле обработки СозданиеПравилВыгрузкиДанных исправил код запроса в функции ВыполнитьСинхронизацию:
Функция ВыполнитьСинхронизацию(Конвертация) Экспорт

	Запрос = Новый Запрос;

	НедопустимыеТипы = Новый СписокЗначений();
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.Дата);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.Перечисление);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.Строка);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.ХранилищеЗначения);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.УникальныйИдентификатор);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.Число);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.Булево);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.ТочкаМаршрутаБизнесПроцесса);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.РегистрБухгалтерии);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.РегистрНакопления);
	НедопустимыеТипы.Добавить(Перечисления.ТипыОбъектов.РегистрРасчета);
			
	Запрос.УстановитьПараметр("Конвертация",  Конвертация);
	Запрос.УстановитьПараметр("НедопустимыеТипы", НедопустимыеТипы);
	Запрос.УстановитьПараметр("ПустойОбъект", Справочники.Объекты.ПустаяСсылка());
	Запрос.УстановитьПараметр("ПустаяСтрока", "");
	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПравилаКонвертацииОбъектов.Ссылка КАК ПКО,
	|	ВЫБОР
	|		КОГДА ПравилаКонвертацииОбъектов.ЭтоГруппа
	|			ТОГДА """"
	|		ИНАЧЕ ВЫБОР
	|				КОГДА ПравилаВыгрузкиДанных.Ссылка ЕСТЬ NULL
	|					ТОГДА ВЫБОР
	|							КОГДА ПравилаКонвертацииОбъектов.Источник = &ПустойОбъект
	|								ТОГДА ПравилаКонвертацииОбъектов.Код
	|							ИНАЧЕ ПравилаКонвертацииОбъектов.Источник.Имя
	|						КОНЕЦ
	|				ИНАЧЕ ПравилаВыгрузкиДанных.Ссылка
	|			КОНЕЦ
	|	КОНЕЦ КАК ПВД,
	|	ВЫБОР
	|		КОГДА ПравилаКонвертацииОбъектов.ЭтоГруппа
	|			ТОГДА 0
	|		ИНАЧЕ ВЫБОР
	|				КОГДА ПравилаВыгрузкиДанных.Ссылка ЕСТЬ NULL
	|					ТОГДА 1
	|				ИНАЧЕ 0
	|			КОНЕЦ
	|	КОНЕЦ КАК Пометка
	|ИЗ
	|	Справочник.ПравилаВыгрузкиДанных КАК ПравилаВыгрузкиДанных
	|		ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ПравилаКонвертацииОбъектов КАК ПравилаКонвертацииОбъектов
	|		ПО ПравилаВыгрузкиДанных.ПравилоКонвертации = ПравилаКонвертацииОбъектов.Ссылка
	|			И (ПравилаКонвертацииОбъектов.Владелец = &Конвертация)
	|			И (ПравилаВыгрузкиДанных.Владелец = &Конвертация)
	|ГДЕ
	|	(ПравилаКонвертацииОбъектов.Владелец = &Конвертация
	|			ИЛИ ПравилаВыгрузкиДанных.Владелец = &Конвертация)
	|	И НЕ ПравилаКонвертацииОбъектов.ЭтоГруппа
	|	И НЕ ПравилаКонвертацииОбъектов.Источник.Тип В (&НедопустимыеТипы)
	|	И ПравилаКонвертацииОбъектов.ПометкаУдаления = ЛОЖЬ
	|
	|УПОРЯДОЧИТЬ ПО
	//|	ПКО ИЕРАРХИЯ,//- Дилев А.Ю. 15122020
	|	ПравилаКонвертацииОбъектов.Порядок"//+ Дилев А.Ю. 15122020
	;

	РезЗапроса = Запрос.Выполнить();

	Возврат РезЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
	
КонецФункции
Показать


И в модуле формы процедуру ПриОткрытии:
Процедура ПриОткрытии()

	ТаблицаРезультат = ВыполнитьСинхронизацию(Конвертация);

	ЭлементыФормы.ТаблицаРезультата.Данные = "ТаблицаРезультат";
	ЭлементыФормы.ТаблицаРезультата.СоздатьКолонки();

	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("Булево"));
	ОписаниеТипов = Новый ОписаниеТипов(МассивТипов);

	ТаблицаРезультат.Колонки.Добавить("Предупреждение", ОписаниеТипов);

	ТабКолонки = ЭлементыФормы.ТаблицаРезультата.Колонки;

	Если ТабКолонки.Количество() Тогда

		ТабКолонки["ПКО"].КартинкиСтрок       = БиблиотекаКартинок.ГруппаИЭлемент;
		ТабКолонки["ПКО"].РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
		ТабКолонки["ПКО"].ДанныеФлажка        = "Пометка";
        ТабКолонки["ПКО"].ТекстШапки          = " Правило конвертации объекта";
        ТабКолонки["ПКО"].ИзменятьВидимость   = Ложь;
		ТабКолонки["ПКО"].Ширина   = 60;
		
		ТабКолонки["Пометка"].Видимость         = Ложь;
		ТабКолонки["Пометка"].ИзменятьВидимость = Ложь;

		ТабКолонки["ПВД"].ТекстШапки        = " Правило выгрузки данных/Имя нового правила выгрузки данных";
		ТабКолонки["ПВД"].ИзменятьВидимость = Ложь;

		Для каждого Строка из ТаблицаРезультат.Строки Цикл
            Строка.Пометка = Истина;
			глУстановитьПометки(Строка, мТекстАлгоритма);
		КонецЦикла;
		
	КонецЕсли;
	
	//ТаблицаРезультат.Строки.Сортировать("Пометка Убыв", Истина);//- Дилев А.Ю. 15122020
	
КонецПроцедуры // ПриОткрытии()
Показать


Теперь при создании ПВД, они будут отсортированы по порядку ПКО.
sergiobargio1; arven-bina; +2 Ответить
Оставьте свое сообщение