Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Интегратор по CRM решениям - АКАМ
Интегратор CRM систем
+7-495-481-60-08
+7-495-481-60-08
E-mail
sale@akam.ru
Адрес
Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
Режим работы
Пн. – Пт.: с 9:30 до 18:00
Решения
  • B2B кабинеты
  • Разработки АКАМ
  • Типовые решения
1С:Предприятие.Элемент
  • О технологии
  • Стоимость лицензий
  • Новое в версии 7.0
Услуги
  • Аудит CRM-систем
  • Внедрение CRM-систем
  • Корпоративное сопровождение CRM
  • Интеграция 1С-Рарус с телефонией
  • Обследование CRM-систем
  • Внедрение CRM-систем
  • Корпоративное сопровождение 1C:CRM
  • Настройка Интеграции 1С-Рарус с телефонией
Статьи
Клиенты и кейсы
О компании
  • Вакансии
  • Сертификаты
  • Новости
  • Цены
    • Услуги
    • Решения АКАМ
    • 1С:CRM
    • 1С:Предприятие, лицензии
  • Отзывы
  • Реквизиты
  • Контакты, офисы
Контакты
Интегратор по CRM решениям - АКАМ
Интегратор CRM систем
Разработка B2B-кабинетов
+7-495-481-60-08
+7-495-481-60-08
E-mail
sale@akam.ru
Адрес
Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
Режим работы
Пн. – Пт.: с 9:30 до 18:00
Решения
  • B2B кабинеты
  • Разработки АКАМ
  • Типовые решения
1С:Предприятие.Элемент
  • О технологии
  • Стоимость лицензий
  • Новое в версии 7.0
Услуги
  • Аудит CRM-систем
  • Внедрение CRM-систем
  • Корпоративное сопровождение CRM
  • Интеграция 1С-Рарус с телефонией
  • Обследование CRM-систем
  • Внедрение CRM-систем
  • Корпоративное сопровождение 1C:CRM
  • Настройка Интеграции 1С-Рарус с телефонией
Статьи
Клиенты и кейсы
О компании
  • Вакансии
  • Сертификаты
  • Новости
  • Цены
  • Отзывы
  • Реквизиты
  • Контакты, офисы
Контакты
    Интегратор по CRM решениям - АКАМ
    +7-495-481-60-08
    +7-495-481-60-08
    E-mail
    sale@akam.ru
    Адрес
    Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
    Режим работы
    Пн. – Пт.: с 9:30 до 18:00
    Интегратор по CRM решениям - АКАМ
    Разработка
    B2B-кабинетов
    Телефоны
    +7-495-481-60-08
    E-mail
    sale@akam.ru
    Адрес
    Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
    Режим работы
    Пн. – Пт.: с 9:30 до 18:00
    Интегратор по CRM решениям - АКАМ
    • Решения
      • Решения
      • B2B кабинеты
      • Разработки АКАМ
      • Типовые решения
    • 1С:Предприятие.Элемент
      • 1С:Предприятие.Элемент
      • О технологии
      • Стоимость лицензий
      • Новое в версии 7.0
    • Услуги
      • Услуги
      • Аудит CRM-систем
      • Внедрение CRM-систем
      • Корпоративное сопровождение CRM
      • Интеграция 1С-Рарус с телефонией
      • Обследование CRM-систем
      • Внедрение CRM-систем
      • Корпоративное сопровождение 1C:CRM
      • Настройка Интеграции 1С-Рарус с телефонией
    • Статьи
    • Клиенты и кейсы
    • О компании
      • О компании
      • Вакансии
      • Сертификаты
      • Новости
      • Цены
        • Цены
        • Услуги
        • Решения АКАМ
        • 1С:CRM
        • 1С:Предприятие, лицензии
      • Отзывы
      • Реквизиты
      • Контакты, офисы
    • Контакты
    • +7-495-481-60-08
      • Телефоны
      • +7-495-481-60-08
    • Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
    • sale@akam.ru
    • Пн. – Пт.: с 9:30 до 18:00

    Ускорение открытия форм (на примере 1С:CRM)

    Главная
    —
    Статьи
    —
    Программирование
    —Ускорение открытия форм (на примере 1С:CRM)
    Автор
    Елизавета Никишова
    Дата публикации:
    07.12.2023
    Время чтения:
    9 минут
    Ускорение открытия форм (на примере 1С:CRM)

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

    Содержание
    • Оптимизация кода
    • Использование модулей с повторным использованием возвращаемых значений
    • Отложенный вывод информации
    • Установка свойств “Получение представлений для невидимых полей”, “Динамическое считывание данных” для динамических списков
    Советы были выведены опытным путем на одном из наших проектов 1С:CRM. После доработки типовой формы документа Интерес время открытия данной формы увеличилось до 18 секунд при первом открытии и до 9 секунд при последующих, что негативно сказывалось на работе пользователей. После применения описанных рекомендаций удалось уменьшить время открытия до 8 секунд при первом открытии и до 4 секунд при последующих, и, тем не менее, остался потенциал для еще большего ускорения.

    Оптимизация кода

    Перед тем, как переходить к следующим пунктам статьи, важно понять, что на самом деле увеличивает время открытия формы. Для этого необходимо провести замер открытия данной формы, это позволит нам точно определить, вызовы каких процедур занимают наибольшее количество времени. Если есть строки кода, которые при открытии формы выполняются заметно дольше, чем все остальные, то следует понять причину и, по необходимости, провести рефакторинг. Чаще всего причиной долгого открытия формы являются сложные, неправильно построенные запросы, которые требуют оптимизации. 

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

    Использование модулей с повторным использованием возвращаемых значений

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

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

    Отложенный вывод информации

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

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

    Пример: 

    В обработчике события ПриСменеСтраницы запускаем обновление таблиц:

    Код из примера текстом:


    &НаКлиенте
    Процедура sc_АКАМ_СтраницыДанныеДокументаПриСменеСтраницы(Элемент, ТекущаяСтраница)
    
    	Если ТекущаяСтраница = Элементы.ГруппаРетро Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеТаблицыРетро();
    	ИначеЕсли ТекущаяСтраница = Элементы.ГруппаСкидки Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеТаблицыСкидки();
    	ИначеЕсли ТекущаяСтраница = Элементы.sc_АКАМ_ГруппаЗаказы Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеТаблицыЗаказы();
    	ИначеЕсли ТекущаяСтраница = Элементы.РасчетПоВариантам Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеДеревьевУслугПоВариантам();
    	ИначеЕсли ТекущаяСтраница = Элементы.sc_Работы Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеТаблицыРабота();	
    	ИначеЕсли ТекущаяСтраница = Элементы.ГруппаДоговоры Тогда
    		sc_АКАМ_ЗапуститьЗаполнениеТаблицДоговоры();
    КонецПроцедуры
    
    &НаКлиенте
    Процедура sc_АКАМ_ЗапуститьЗаполнениеТаблицыРетро()
    	ОбновитьТаблицуРетро();	
    КонецПроцедуры
    
    &НаСервере
    Процедура ОбновитьТаблицуРетро()
    	
    Если НЕ sc_АКАМ_ВыведенаТаблицаРетро Тогда
    		sc_АКАМ_ВывестиТаблицуЗначенийРетро();
    
    		sc_АКАМ_ВыведенаТаблицаРетро = Истина;
    	Иначе
    		ЭтотОбъект["sc_АКАМ_Ретро"].Очистить();
    	КонецЕсли;
    
    …
    
    КонецПроцедуры
    	
    Процедура sc_АКАМ_ВывестиТаблицуЗначенийРетро()
    	
    	Элементы.ДекорацияРетро.Видимость = Ложь;
    		
    	НовыйЭлемент = Элементы.Вставить("sc_АКАМ_Ретро", Тип("ТаблицаФормы"), Элементы.ГруппаРетро, Неопределено);
    	НовыйЭлемент.ПутьКДанным = "sc_АКАМ_Ретро";	
    	НовыйЭлемент.Высота = 10;
    	НовыйЭлемент.ИзменятьПорядокСтрок = Ложь;
    	НовыйЭлемент.ИзменятьСоставСтрок = Ложь;
    	НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
    	НовыйЭлемент.РастягиватьПоВертикали = Истина;
    	НовыйЭлемент.РастягиватьПоГоризонтали = Истина;
    	НовыйЭлемент.РежимВыделения = РежимВыделенияТаблицы.Множественный;	
    	НовыйЭлемент.ТолькоПросмотр = Истина;
    	
    	// ******   Поле формы "БизнесПроцесс"    ***********
    	
    	НовыйЭлемент = Элементы.Вставить("sc_АКАМ_РетроБизнесПроцесс", Тип("ПолеФормы"), Элементы.sc_АКАМ_Ретро, Неопределено);
    	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    	НовыйЭлемент.ПутьКДанным = "sc_АКАМ_Ретро.БизнесПроцесс"; 
    
        // ******   Поле формы "Услуга"    ***********
    	
    	НовыйЭлемент = Элементы.Вставить("sc_АКАМ_РетроУслуга", Тип("ПолеФормы"), Элементы.sc_АКАМ_Ретро, Неопределено);
    	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    	НовыйЭлемент.ПутьКДанным = "sc_АКАМ_Ретро.Услуга"; 
    	
    	НовыйЭлемент = Элементы.Вставить("sc_АКАМ_РетроСтатус", Тип("ПолеФормы"), Элементы.sc_АКАМ_Ретро, Неопределено);
    	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    	НовыйЭлемент.ПутьКДанным = "sc_АКАМ_Ретро.Статус"; 
    	
    	НовыйЭлемент = Элементы.Вставить("sc_АКАМ_РетроНаименование", Тип("ПолеФормы"), Элементы.sc_АКАМ_Ретро, Неопределено);
    	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    	НовыйЭлемент.ПутьКДанным = "sc_АКАМ_Ретро.Наименование"; 
    
    КонецПроцедуры
    

    3. Вывод элементов программно при открытии формы с помощью подключения обработчика ожидания. 

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

    Установка свойств “Получение представлений для невидимых полей”, “Динамическое считывание данных” для динамических списков

    Еще одна рекомендация для форм с несколькими динамическими списками - убедиться, что выбраны подходящие значения свойств “Получение представлений для невидимых полей” и “Динамическое считывание данных”. 

    Свойство динамического списка “Получение представлений для невидимых полей” влияет на получение представлений для полей, которые не отображаются на форме или связаны с фактически невидимыми элементами формы. Поэтому, если не предполагается вынесение невидимых полей на форму, то в свойстве можем установить значение Ложь для ускорения получения данных динамическим списком. Ссылка на описание свойства на портале ИТС.

    Свойство динамического списка “Динамическое считывание данных” (доступно, если свойство “Произвольный запрос” равно Истина и выбрана основная таблица) влияет на то, какими по размеру порциями будут считываться данные из БД. Если установлено значение Истина, то запрос будет забирать маленькие порции данных, при этом прокрутка списка может подвисать. Если установлено значение Ложь, то порции будут больше, запрос будет выполняться дольше, но прокрутка списка будет работать быстрее.

    При установке свойства "Динамическое считывание данных" в динамическом списке необходимо учитывать несколько общих рекомендаций:

    ● если запрос выполняется быстро и в выборке, с учетом отборов, обычно содержится большое количество строк, то рекомендуется установить значение свойства Ложь;

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

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

    Оптимизация
    Назад к списку
    • 1С:Предприятие.Элемент 10
    • Интеграции 8
    • Методики 22
    • Обучение 18
    • Отрасли 2
    • Переход на 1C:CRM 13
    • Программирование 14
    • Решения АКАМ 20
    • Юридические 3
    CRM Администрирование Оптимизация Печатные формы Проекты Торги Управление задолженностью Учёт
    Страницы, которые просматривают сейчас
    Кейс по внедрению 1С:CRM. Модуль для 1С:ERP и 1С:КА2 для ТД "ТУЛА-СТАЛЬ" Реализация комплексного проекта по импортозамещению иностранной CRM-системы на решение российского производства 1С:CRM. Продукт "АКАМ: Модуль ТОРГИ для 1С:CRM" включен в реестр российского ПО Кейс по внедрению 1С:Управление торговлей и взаимоотношениями с клиентами (CRM) для EMTG Кейс по внедрению 1С:CRM. Модуль для 1С:ERP и 1С:КА2 для КРАССА-КОСМЕТИКС
    Подписывайтесь
    на новости и акции
    О компании
    Вакансии
    Отзывы
    Сертификаты
    Новости
    Реквизиты
    Цены
    Контакты
    Типовые решения
    1С:CRM ПРОФ
    1C:CRM КОРП
    АКАМ:Инвестиционные проекты
    АКАМ:Торги (TRM)
    АКАМ: Управление задолженностью
    Услуги
    Аудит CRM-систем
    Внедрение CRM-систем
    Корпоративное сопровождение CRM
    Интеграция 1С-Рарус с телефонией
    Обследование CRM-систем
    Внедрение CRM-систем
    Корпоративное сопровождение 1C:CRM
    Настройка Интеграции 1С-Рарус с телефонией
    Обследование CRM систем
    Внедрение 1C:CRM
    Настройка Интеграции с телефонией
    Корпоративное сопровождение 1C:CRM
    Разработка корпоративных порталов
    Клиенты и кейсы
    Статьи
    Акции
    +7-495-481-60-08
    +7-495-481-60-08
    E-mail
    sale@akam.ru
    Адрес
    Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
    Режим работы
    Пн. – Пт.: с 9:30 до 18:00
    sale@akam.ru
    Москва, Дмитровское шоссе, д. 9, стр. 2, этаж 4, офис 458
    © 2026 Интегратор по CRM решениям - АКАМ
    Политика конфиденциальности
    Версия для слабовидящих
    Главная Каталог Услуги Клиенты и кейсы Компания Статьи
    Наш сайт использует cookies. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой Ок