Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Интегратор по 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 кабинеты
  • Разработки АКАМ
  • Интеграции и ИИ
  • Типовые решения 1C:CRM
Услуги
  • Разработка на 1С:Предприятие.Элемент
    • О технологии и разработке
    • Стоимость лицензий
    • Новое в версии 9
    • Новое в версии 8
    • Новое в версии 7.0
  • Обследование CRM-систем
  • Внедрение CRM-систем
  • Интеграция CRM
  • Корпоративное сопровождение 1C:CRM
  • Настройка Интеграции 1С-Рарус с телефонией
  • Сервис 1С:КП Отраслевой
Кейсы
Блог
Компания
  • Вакансии
  • Сертификаты
  • Новости
  • Цены
    • Услуги
    • Решения АКАМ
    • 1С:CRM
    • 1С:Предприятие, лицензии
  • Отзывы
  • Реквизиты
  • Контакты, офисы
Контакты
Интегратор по CRM решениям - АКАМ
Решения
  • АКАМ:Портал, B2B кабинеты
  • Разработки АКАМ
  • Интеграции и ИИ
  • Типовые решения 1C:CRM
Услуги
  • Разработка на 1С:Предприятие.Элемент
  • Обследование CRM-систем
  • Внедрение CRM-систем
  • Интеграция CRM
  • Корпоративное сопровождение 1C:CRM
  • Настройка Интеграции 1С-Рарус с телефонией
  • Сервис 1С:КП Отраслевой
Кейсы
Блог
Компания
  • Вакансии
  • Сертификаты
  • Новости
  • Цены
  • Отзывы
  • Реквизиты
  • Контакты, офисы
Контакты
    +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 кабинеты
    • Разработки АКАМ
    • Интеграции и ИИ
    • Типовые решения 1C:CRM
    Услуги
    • Разработка на 1С:Предприятие.Элемент
    • Обследование CRM-систем
    • Внедрение CRM-систем
    • Интеграция CRM
    • Корпоративное сопровождение 1C:CRM
    • Настройка Интеграции 1С-Рарус с телефонией
    • Сервис 1С:КП Отраслевой
    Кейсы
    Блог
    Компания
    • Вакансии
    • Сертификаты
    • Новости
    • Цены
    • Отзывы
    • Реквизиты
    • Контакты, офисы
    Контакты
      +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 кабинеты
        • Разработки АКАМ
        • Интеграции и ИИ
        • Типовые решения 1C:CRM
      • Услуги
        • Услуги
        • Разработка на 1С:Предприятие.Элемент
          • Разработка на 1С:Предприятие.Элемент
          • О технологии и разработке
          • Стоимость лицензий
          • Новое в версии 9
          • Новое в версии 8
          • Новое в версии 7.0
        • Обследование CRM-систем
        • Внедрение CRM-систем
        • Интеграция CRM
        • Корпоративное сопровождение 1C:CRM
        • Настройка Интеграции 1С-Рарус с телефонией
        • Сервис 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С:Предприятие.Элемент 14
      • Интеграции 9
      • Искусственный интеллект AI 3
      • Методики 25
      • Обучение 18
      • Отрасли 3
      • Переход на 1C:CRM 13
      • Программирование 14
      • Решения АКАМ 26
      • Юридические 3
      CRM Администрирование Оптимизация Печатные формы Проекты Торги Управление задолженностью Учёт
      Страницы, которые просматривают сейчас
      Кейс по внедрению 1С:CRM. Модуль для 1С:ERP и 1С:КА2 для ТД "ТУЛА-СТАЛЬ" Реализация комплексного проекта по импортозамещению иностранной CRM-системы на решение российского производства 1С:CRM. Кейс по внедрению CRM 2.0 + Управление торговлей 11.2 для Автопассаж премиум Кейс по внедрению 1С:CRM. Модуль для 1С:ERP и 1С:Комплексная автоматизация для ООО "Расоби" Кейс по внедрению 1С:CRM КОРП для ПожСтандарт
      Подписывайтесь
      на новости и акции
      О компании
      Вакансии
      Отзывы
      Сертификаты
      Новости
      Реквизиты
      Цены
      Контакты
      Типовые решения
      АКАМ:Портал
      1С:CRM ПРОФ
      1C:CRM КОРП
      АКАМ:Инвестиционные проекты
      АКАМ:Торги (TRM)
      АКАМ: Управление задолженностью
      Услуги
      Разработка на 1С:Предприятие.Элемент
      Обследование CRM-систем
      Внедрение CRM-систем
      Интеграция CRM
      Корпоративное сопровождение 1C:CRM
      Настройка Интеграции 1С-Рарус с телефонией
      Сервис 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. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой Ок