INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Еникеев Марат | Руководитель проектов 1С | ГК «Комплексная автоматизация»

«Структурно-независимые базы данных в 1С»

В докладе расскажу об идеях построения гибких (содержащих в БД структуру данных) систем на платформе 1С. Рассмотрим: - варианты развития функциональности известных подсистем БСП "Дополнительные реквизиты/сведения"; - как они соотносятся с конфигурациями "Конвертация данных (2 и 3)" и "Система проектирования прикладных решений"; - причем здесь паттерн программирования Модель-Представление-Контроллер (MVC) и расширение “Характеристики” языка запросов СКД; - по-новому посмотрим на периодические независимые регистры сведений и возможности их использования. Коснемся вопросов интеграции такого рода систем с внешними, в частности использование пакетов\фабрик XDTO, проведём аналогии с пакетом EnterpriseData (универсальный формат обмена данными). Обозначим области применения таких систем и их ограничения, в частности возможные подходы к решению проблем версионирования, производительности, обеспечения целостности данных и специфику формирования отчетов. Рассмотрим практический опыт разработки/внедрения/сопровождения подобной структурно-независимой формации на примере запатентованного продукта учета ресурсов системы здравоохранения и его механизмов интеграции с федеральным сервисом Единой Государственной Информационной Системы Здравоохранения в разрезе Федерального Регистра Медицинских Работников и других регистров. Поговорим об использовании этих идей в целях: - прототипирования информационных систем на этапе сбора/анализа требований, - построения экспертных систем поддержки принятия решений (ЭСППР) на базе описанной архитектуры.

Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus v1.5.2

Администрирование - Оптимизация БД (HighLoad)

4
У пользователей системы AgentPlus (Агент Плюс) отчет 'Контроль передвижений агентов (онлайн-карты)' v1.5.2 вызывает восторг и разочарование одновременно. Восторг – потому, что позволяет увидеть маршрут передвижения пользователя системы с привязкой к карте и дорогам, разочарование – от длительности построения отчета. Отчет по 45 точкам маршрута у меня строится больше минуты. Тестировалось на "Управление торговым Предприятием" 1.2.45.2.

Анализ кода показал, что причиной задержек при построении отчёта является запрос в цикле.

За построение отчета отвечает обработка «кпкКонтрольПередвиженийАгентовОнлайн».

Непосредственно построение отчета начинается с вызова «ДеревоТрековВыбор».

Стек выглядит следующим образом:

ПолучитьДатуДокументаМУ

                ПолучитьДатуДокумента

                СформироватьМаркерыДокумента

…            

                ДеревоТрековВыбор

 

В процедуре «СформироватьМаркерыДокументов» есть цикл по элементам таблицы документов. В цикле вызывается функция ПолучитьОписаниеДокумента, а из нее функция ПолучитьДатуДокументаМУ.

 

Ниже текст функции ПолучитьДатуДокументаМУ

 


Функция ПолучитьДатуДокументаМУ(ТекДок)
                ДатыДокумента = Неопределено;
                
                //получим из регистра дату и время создания документа
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ
                               |             кпкСведенияДокумента.ДатаВремяСоздания,
                               |             кпкСведенияДокумента.Период
                               |ИЗ
                               |             РегистрСведений.кпкСведенияДокумента.СрезПоследних КАК кпкСведенияДокумента
                               |ГДЕ
                               |             кпкСведенияДокумента.КПКДокумент = &ТекДокумент";
                Запрос.УстановитьПараметр("ТекДокумент", ТекДок);
                
                Результат = Запрос.Выполнить();
                
                Если Не Результат.Пустой() Тогда
                                Выборка = Результат.Выбрать();
                                Выборка.Следующий();
                                ДатаВМУ = СокрЛП(Выборка.ДатаВремяСоздания);
                                ДатаЗагрузки = СокрЛП(Выборка.Период);
                                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                КонецЕсли;
                
                Возврат ДатыДокумента;
КонецФункции

Функция возвращает структуру ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки).

 

Есть два способа решения проблемы.

Первый. Годится для не слишком щепетильных, т.к. принимаем допущение, что

ДатаВМУ = ТекДок.Дата и

ДатаЗагрузки = ТекДок.Дата

 

Тогда функция ПолучитьДатуДокументаМУ примет вид
 

Функция ПолучитьДатуДокументаМУ(ТекДок)
                ДатыДокумента = Неопределено;
                ДатаВМУ = ТекДок.Дата; 
                ДатаЗагрузки = ТекДок.Дата;

                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                
                Возврат ДатыДокумента;
КонецФункции

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

 

Способ Второй.

При втором способе функция ПолучитьДатуДокументаМУ примет вид
 

Функция ПолучитьДатуДокументаМУ2(ТекДок)
                ДатыДокумента = Неопределено;
                
                Выборка = ТабДокументы.Найти(ТекДок,"Документ");
                Если Выборка = Неопределено Тогда
                                Возврат ДатыДокумента;
                КонецЕсли;        
                ДатаВМУ = СокрЛП(Выборка.ДатаСозданияВМУ);
                ДатаЗагрузки = СокрЛП(Выборка.Период);
                ДатыДокумента = Новый Структура("ДатаВМУ, ДатаЗагрузки", ДатаВМУ, ДатаЗагрузки);
                Возврат ДатыДокумента;
КонецФункции

Использовать функцию ПолучитьДатуДокументаМУ без изменения таблицы значений ТабДокументы нельзя.

Обработка со всеми внесенными изменениями в прикрепленном к статье файле. Изменения помечены маркером //Олег.

4

Скачать файлы

Наименование Файл Версия Размер
Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus.:
.epf 187,29Kb
02.05.18
3
.epf 187,29Kb 3 Скачать

См. также

Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение