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

14.10.19

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

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

Платные

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний за 2430 руб. в месяц

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

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

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

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

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

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

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

Когда приходится заглядывать в Конфигуратор конфигурации-приемника, метаданные располагаются далеко не в том порядке, в которых они описаны в правилах. А хотелось бы, например, чтобы в правилах переноса набора записей сначала шли свойства (период, активность, период действия, период регистрации, вид расчета), затем — измерения и ресурсы, и, наконец — реквизиты. Чтобы правила конвертации свойств, по которым может выполняться поиск стояли на первом месте. Чтобы при сортировке учитывалось имя  объекта и порядок следования в дереве метаданных. Чтобы правило можно было найти среди сотен других, зная только имя и не прибегая к волшебному сочетанию клавиш «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    195565    1085    405    

1006

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    32109    195    104    

186

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

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

22200 руб.

06.10.2023    22688    62    19    

90

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

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

15000 руб.

10.11.2023    15459    65    33    

83

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

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

9360 руб.

17.05.2024    32866    112    48    

155

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

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

20000 руб.

07.10.2021    20093    8    32    

44

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

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 руб.

22.11.2024    1337    1    0    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. fr18 23.04.19 12:16 Сейчас в теме
Судя по видео - зачетная штука.
2. tomvlad 3871 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 Ответить
Оставьте свое сообщение