Методика оптимизации программного кода 1С: проведение документов

Публикация № 1014452

Администрирование - Администрирование данных 1С - Обработка документов

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

85
Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

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

Поэтому данная статья посвящена исключительно программной оптимизации. 

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

Во-вторых, при оценке программного кода необходимо руководствоваться здравым смыслом и не рассматривать его исключительно через призму рекомендаций 1С. В крупных информационных системах действуют свои законы и правила работы с данными. Очень часто, следуя рекомендациям 1С, мы достигаем противоположного эффекта. Для примера - использование временных таблиц. Из личного опыта: в 90% случаев причина зависаний и отказов 1С в клиент-серверном режиме - бездумное и необоснованное использование команды "Поместить" при построении запросов к базе данных. 

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

Рекомендую на этапе разработки использовать тестовую копию рабочей базы с тем же режимом работы (файл/сервер). Для приближения условий тестирования в тестовой базе к реальным условиям работы, в предлагаемой методике реализована возможность запуска нагрузочных сессий для имитации рабочего режима.

I. Подготовка конфигурации.

Выгружаем конфигурацию из демонстрационной базы и добавляем из нее в оптимизируемую конфигурацию новые объекты :
 - справочник "Дополнительные константы" для хранения настроек;
 - общий модуль "МодульОптимизация" с сервисными функциями и процедурами; 
 - параметр сеанса "ВклОптимизации" для переключения режима использования модулей (исходных/оптимизированных). Добавляем в модуль сеанса его  инициализацию; 
 - регистр "ОтложенноеПроведениеДокументов" для формирования очереди отложенного проведения документов. Используется для исключения конфликтов блокировок.
 - обработка "Регламент" для запуска регламентных заданий в файловом режиме работы (демонстрация отложенного проведения).
 - обработка "ТестПроведения" для анализа результатов оптимизации.
 - обработка "ТестоваяНагрузка" для дополнительной нагрузки системы во время теста.
Не забываем добавить права на новые объекты в общедоступную роль.

Подсистема реализует следующие возможности:

  1. Автоматический запуск указанного количества нагрузочных сессий для приближения условий теста в тестовой базе к реальным условиям работы.
  2. Включение/выключение использования оптимизированного кода "на лету" в режиме предприятия;
  3. Включение/выключение использования оптимизированного кода только для выбранных пользователей;
  4. Включение/выключение использования оптимизированного кода только для выбранных функций и процедур оптимизируемых модулей;
  5. Включение режима отложенного проведения документов. При этом выбранные документы выстраиваются в очередь и проводятся регламентом на сервере. Исключается длительное ожидание проведения документа пользователем. Исключаются блокировки за счет последовательного проведения.
  6. Автоматическая сверка движений документов, проведенных с вкл/выкл режимом оптимизации.

II. Определение проблемных зон кода 

1. Информацию о проблемах при проведении получаем от наших пользователей - они предоставляют ее в избытке.
2. Выбираем объект, работа которого наиболее критична для бизнеса.
3. В конфигураторе открываем модуль формы обработки "ТестПроведения".
4. Устанавливаем точки останова в процедуре "ВыполнитьТест" до и после основного цикла тестового проведения (в исходной обработке для обычных форм №стр 341 и 444).


5. Запускаем 1С в режиме отладки. 
- Открываем в сессии отладки обработку "ВыполнитьТест".


- Выбираем из списка выбора вид тестируемого документа.
- Устанавливаем количество тестовых проведений. Параметр используется для получения более точных средних показателей.
- Выбираем способ отбора тестируемых объектов: проведение выбранного документа или проведение выборки за период.


- Выполняем команду "Выполнить тестирование".

6. При остановке на первой точке останова включаем режим замера производительности и продолжаем отладку:

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

8. Продолжаем отладку. После завершения теста в окне сообщений отобразится результат замеров с временными показателями. Собственно уменьшение этих показателей и является нашей целью:

III. Анализ и исправление проблемных зон 
1. Переходим к найденным участкам кода, анализируем на возможность оптимизации. О методах оптимизации кода статей множество, поэтому кратко, на что обращаем внимание:
 - многократное выполнение одинаковых запросов к БД( к примеру, в цикле), с пониманием того, что получение через точку свойств ссылочных объектов, это так же запросы к БД;
 - Использование в тексте запросов инструкции "Поместить". Если есть возможность построить качественный запрос без использования временных таблиц, обязательно используйте эту возможность. Темповая база - это самое узкое место в массивных информационных системах. Проведение через нее потоков данных должно быть серьезно обосновано.
 - уровень использования принудительного кеширования для значений, часто используемых в коде (к примеру, ссылок на организацию, статью движения, номенклатуру и пр.). Методов кеширования множество - хранение этих значений в локальных или глобальных переменных типа таблица или структура, подключение функций общих модулей с повторным использованием значений и пр.

2. Если найден сомнительный код и появились идеи по его исправлению, добавляем в общий модуль "МодульОптимизация" копию найденой процедуры(функции) с именем, содержащим префикс <Вид оптимизируемого документа>. Объект документа передаем в параметре.


3. Оптимизируем код в новой процедуре(функции).
4. Добавляем в начало исходной процедуры(функции) переключение по значениям параметра сеанса на новую процедуру(функцию)
5. Повторяем алгоритм, описанный в п.II, но перед запуском команды "Выполнить тестирование" меняем настройки режима тестирования:
устанавливаем флаги "Автоматическое тестирование кода до/после оптимизации" и "Сверка проводок, сформированных до и после включения режима оптимизации":

6. После завершения теста в окне сообщений отобразится результат ваших стараний - показатели до и после использования оптимизированного кода. 

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

V. Если достичь желаемого результата не удается и проведение все равно занимает неприемлемо много времени, перенесите функционал проведения на сервер , используя алгоритм отложенного проведения. Упрощенная схема подобного алгоритма реализована в приложенной демонстрационной базе.


Центральным объектом метода оптимизации является обработка "ТестПроведения". Описание настроек:

 - "Количество тестовых попыток записи/проведения документов" определяет количество перепроведений выбранного документа в режиме темта по 1 документу. В режиме теста по выборке за период параметр определяет количество отбираемых документов. Особенность теста по выборке - при повторном тестировании при формировании выборки исключаются документы, участвовавшие в предыдущих тестах.
 - Флаг "Оптимизация включена для текущего пользователя" включает режим использования оптимизированных модулей для текещего пользователя.
 - Флаг "Оптимизация включена для всех пользователей" включает режим использования оптимизированных модулей для всех пользователей.
 - Флаг "Автоматическое тестирование кода до/после оптимизации" включает режим тестирования с  автоматическим переключением использования оптимизированных модулей. При этом объекты теста перепроводятся дважды: с использованием исходного кода и с использованием оптимизированных модулей;    
 - Флаг "Сверка проводок, сформированных до и после включения режима оптимизации" включает режим сверки проводок документа, сформированных оптимизированным и не оптимизированным кодом;
 - Флаг "Перезаписывать только проведенные" - для тестирования будут отбираться только проведенные документы;
 - Флаг "Режим записи без проведения" - при тестировании документы будут записываться без проведения;
 - Флаг "Автозапуск нагрузочных сессий" - перед началом тестирования будут запущены нагрузочные сессии 1С. После окончания теста нагрузочные сессии будут автоматически закрыты;
 - "Каталог сохранения лога тестирования" определяет путь к каталогу, в котором автоматически сохранится результат теста;
-  Команда "Выполнить тестовое проведение всех документов периода" запускает пакетное перепроведение всех документов выбранного периода. При этом документы перепроводятся партиями по 10, поочередно и в обычном режиме и в режиме оптимизации. Команда предназначена для анализа разультата оптимизации и сверки проводок в потоке. 
 - Флаг "Выполнить тест процедуры" - при тестировании будет выполнятся только код указанной процедуры;

Настройки нагрузочных сессий:
 - "Количество нагрузочных сессий" - количество сессий, которые будут запущены автоматически;
 - "Месяц отбора документов для нагрузки" - определение месяца, в пределах которого будут отбираться документы для перепроведения в нагрузочных сессиях;

VI. Запуск режима оптимизации для рабочей базы.

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

Включение и выключение режима оптимизации производится с помощью предопределенного элемента "ВключениеОптимизации" справочника "ДопКонстанты".

Включение и выключение режима для всех пользователей производится установкой поля "Значение" элемента "ВключениеОптимизации" в "Истина" или "Ложь" соответственно. Для этого можно использовать флаг "Оптимизация включена для всех пользователей" в обработке ТестПроведения.

Для включения оптимизированных обработчиков только для конкретного пользователя необходимо добавить в табличную часть "Значения" элемента "ВключениеОптимизации" строку, поместив в поле "Ключ" код пользователя, а в поле "Значение" - значение "Истина". 

Для включения/выключения использования определенной оптимизированной процедуры(функции), необходимо добавить в табличную часть "Значения" элемента "ВключениеОптимизации" строку, поместив в поле "Ключ" имя этой процедуры, а в поле "Значение" - значение "Истина" или "Ложь" соответственно. 

Все эти настройки реализованы в тестовой демонстрационной базе.

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

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

85

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

Наименование Файл Версия Размер
Методика оптимизации программного кода 1С - Обычные формы
.dt 108,29Kb
19.03.19
6
.dt 108,29Kb 6 Скачать
Методика оптимизации программного кода 1С - Управляемые формы
.dt 107,82Kb
19.03.19
8
.dt 107,82Kb 8 Скачать

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
1. vandalsvq 1131 19.03.19 12:02 Сейчас в теме
(0) правда и ДокументОбъект.Автор.Код тоже не самое оптимальное решение, в таком случае рекомендуется запросом получать значение конкретного поля. А то ведь обращение ДокументОбъект.Автор.(ЛюбойРеквизит) приведет к полному чтению данных ссылки "Автор" и помещению в память на какое-то время
Alex_vk; w.r.; CyberCerber; mysm; user-z99999; wowik; +6 Ответить
17. dmitrydemenew 413 19.03.19 14:36 Сейчас в теме
(1)Согласен, с точки зрения правильного кода - да, запрос более оптимальное решение. Еще более оптимальное решение - получение этого параметра, к примеру, функцией модуля с повторным использованием возвращаемых значений. Но в рамках демо-примера ни то ни другое не окажет существенного влияния на производительность, т.к. параметр находится за рамками проблемной зоны кода, за границей цикла. Код в примере - всего лишь тестовая нагрузка, не более.
46. w.r. 480 22.03.19 07:50 Сейчас в теме
(17)
(1)Согласен, с точки зрения правильного кода - да, запрос более оптимальное решение. Еще более оптимальное решение - получение этого параметра, к примеру, функцией модуля с повторным использованием возвращаемых значений. Но в рамках демо-примера ни то ни другое не окажет существенного влияния на производительность, т.к. параметр находится за рамками проблемной зоны кода, за границей цикла. Код в примере - всего лишь тестовая нагрузка, не более.

С модлями с повторным использованием лучше не играться. Если реквизит код или номер документа - еще можно использовать и то с опаской. Если это любой другой реквизит, который с высокой вероятностью может быть исправлен пользователем во время сеанса - то будут возвращаться устаревшие данные. Поэтому лучше всего - это запрос конкретных реквизитов
Aggressorak; for_sale; user811769; pm74; +4 Ответить
2. capitan 1340 19.03.19 12:11 Сейчас в теме
Очередная статья и очередной велосипед )
Без обид, методика интересная и имеет право на жизнь.

На мой взгляд, первопричина зависаний и плохой работы программы 1С - неправильное проектирование информационной системы, а потом уже некачественный программный код модулей этой самой 1С.
Оптимизировать программный код можно до опупения, но как правило в 90% есть решение выноса части функционала например на нерабочее время и т.п. в том числе и железячные.
Я конечно 15 лет не изучаю вопросы оптимизации, но загнав tempdb на RAM диск или на SSD если не помещается вы в разы ускорите вашу ситуацию
Поэтому (пишется вместе) в отрыве от реальных событий сложно сказать про данную методику, тем более она на обычных формах.
Alex_vk; Evil Beaver; PLAstic; Идальго; Irwin; fancy; wowik; +7 Ответить
3. user-z99999 22 19.03.19 12:35 Сейчас в теме
(2)
Складывается впечатление, что вы стараетесь кого-то обидеть своими комментариями.
Я конечно 15 лет не изучаю вопросы оптимизации, но загнав tempdb на RAM диск или на SSD если не помещается вы в разы ускорите вашу ситуацию

Очень мощный сервер может спрятать недостаток опыта плохого программиста, иногда.
CyberCerber; oleg-x; Rustig; +3 Ответить
8. capitan 1340 19.03.19 13:15 Сейчас в теме
(3)Я же написал - без обид.
И обидеть никого не хочу.
Просто мне например не хватает информации из публикации, а заявление что tempdb - зло я не принимаю.
Если не слишком удачно скрестить виртуальные таблицы то у вас оптимизатор БД выберет сканирование таблиц, что на базе 500 Гб будет фиаско.
Отсюда tempdb и вырос в 1С и во всех языках даже чистом SQL он есть
GOshaSaveiko; bulpi; GreenDragon; wowik; pavlov_dv; Vladimir Litvinenko; +6 Ответить
9. dmitrydemenew 413 19.03.19 13:37 Сейчас в теме
(8) Основные факторы, определяющие мое отношение к этой проблеме таковы:
1. Реально наблюдаемое огромное количество трудоемких физических операций с жестким диском, в разы превышающих число операций с БД хранения и вызванных обработкой временных данных (обоснование во вложении).
2. В результате выполнения этих трудоемких операций, что вполне логично при их критическом увеличении, "зависает" 1С и пользователи программы ощущают существенное неудобство.
3. Я, как специалист, отвечающий за отсутствие этого неудобства, недоволен источником этих неудобств, и был бы рад, если бы использование этого инструмента (ВТ) было всегда технически обоснованным.

Это исключительно мое личное мнение и я его никому не навязываю.
Прошу всех не обсуждать и не поднимать тему использования ВТ в рамках этой публикации.
Прикрепленные файлы:
14. capitan 1340 19.03.19 14:21 Сейчас в теме
(9)дело в том, что скорость работы 1С при правильном написании кода не зависит от размера базы, до тех пор пока не начинается сканирование таблиц разумеется.
В идеале 2 Гб и 2 Тб базы должны вам информацию с регистра остатков например поднять с одинаковой скоростью тем более с SSD
И если этого не происходит, то ни фига это не во ... таблицах дело
В принципе в ... таблице откуда взяться такому большому объему ? если вы предварительно фильтры накладываете разумеется
Т.е. надо брать профайлер и долго курить ваши запросы
Тогда может и не надо будет так скрупулезно замерять результат оптимизации - вы его услышите по крикам ура и брызгам шампанского из бухгалтерии )
ivv1970; PLAstic; +2 Ответить
62. dmurk 273 27.06.19 10:46 Сейчас в теме
(14) Не согласен с вами. Зависимость есть, хотя и нелинейная

1. Каждое увеличение размера индекса в два раза добавляет 1 шаг к поиску строки в бинарном индексе, что частично нивелируется статистикой
2. Увеличение размера индексов повышает скорость устаревания статистики после выполнения операции UPDATE STATISTICS
3. Ваше утверждение упирается в невозможность размещения индексов в ОЗУ после определенного объема базы
66. capitan 1340 27.06.19 11:07 Сейчас в теме
(62)А вы посчитайте эту нелинейность.
Индекс - это бинарное дерево, насколько оно вырастет при увеличении данных в 2 раза - на 1 шаг
Нормально построенный индекс - он небольшого размера, поэтому индексы и появились.
Т.е. если у вас индекс растет такими же темпами как и данные - у вас неправильные индексы
67. dmurk 273 27.06.19 12:15 Сейчас в теме
(66) Безусловно условно одинаковая производительность СУБД сохраняется какое-то время, но это не значит что так бдет на любом объеме данных
33. GreenDragon 20.03.19 17:47 Сейчас в теме
(9) Судя по вашему скрину, время ответа по вашим выделенным строкам 12 и 14 мс. Вы где-то увидели проблему? То, что длина очереди 5, практически ни о чём не говорит.

Процитирую статью с sqlcom.ru

Правило, по которому глубина очереди не должна для одного диска превышать 2 (и другие сопутствующие признаки) не соотносятся напрямую с глубиной очереди, определённой по счётчикам производительности операционной системы. Таким образом, получило распространение несколько иное правило, гласящие, что задержки при обращении к диску не должны превышать примерно 10 – 20 ms, что было вычислено из прежнего правила глубины очереди 2 на диск (вероятно, для дисков с 7200/10000 об/мин), причём, без учёта описанных выше дополнительных признаков.
34. dmitrydemenew 413 20.03.19 17:51 Сейчас в теме
(33)Вот только длина очереди не 5, а 50...
38. asved.ru 36 21.03.19 08:13 Сейчас в теме
(9)
Прошу всех не обсуждать и не поднимать тему использования ВТ в рамках этой публикации.


В таком случае не следовало рекомендовать отказ от использования временных таблиц. Сейчас же получается, что Вы даете откровенно вредную рекомендацию и просите ее не обсуждать. В джентльменском обществе за такое канделябром бьют :)
Somebody1; Wdivine; PLAstic; +3 Ответить
39. dmitrydemenew 413 21.03.19 08:21 Сейчас в теме
(38)В публикации нет рекомендаций отказа от временных таблиц, есть лишь рекомендация использовать этот инструмент обдумано и технически обосновано.
41. TODD22 18 21.03.19 10:12 Сейчас в теме
(39)
есть лишь рекомендация использовать этот инструмент обдумано и технически обосновано.

Но про техническое обоснование ни слова... про обдуманность то же...
43. dmitrydemenew 413 21.03.19 10:35 Сейчас в теме
(41) Повторюсь: предложенная методика дет возможность измерить обоснованность (с точки зрения производительности) использования любых способов построения программного кода в цифрах. Все мои выводы основаны исключительно на результатах этих измерений в информационных системах, которые мне приходилось оптимизировать.
64. dmurk 273 27.06.19 10:58 Сейчас в теме
(43) Дмитрий, дам совет.
- Не рассматривайте время в миллисекундах, получаемое средствами 1С как реальный показатель. На самом деле, существует дискретный шаг, внутри которого время выполнения в миллисекундах 1С не измеряет. Например, 56 миллисекунд. От встроенного таймера 1С вы вряд ли получите значение 0.008 секунды, так как данный показатель будет округлен вниз, до нуля, а, соответственно, значения близкие к первой ступени дискретности округляются вверх, завышая время измерения. Соответственно, чтение цифр в вашем примере - "минимальное время", "максимальное время" весьма условно. Я пробовал добиться более высокой точности измерений, изменяя настройку в БИОС High Precision Timer, но на 1С она не влияет, только на операционку. Следовательно, как минимум, требуется внешняя компонента замера таймингов, чтобы на подобные цифры обращать внимание.
- Кроме того, необходимо учитывать важность количества потоков в кластере 1С - достаточно просто проанализировать, крутится ваш тестовый стенд в изолированном потоке, или совместно с вашим тестом обрабатываются дополнительные. Серверный процесс в кластере поочередно исполняет команды из нескольких клиентских соединений, которые находятся на обслуживании у этого процесса, что вносит дополнительный разброс измерений
44. starik-2005 1979 21.03.19 10:45 Сейчас в теме
(41) так статья не ставит цель рассказать, что такое обоснованность и обдуманность - она для этого по формату не пройдет на сайт, ибо модератор не сможет дочитать произведение, в полной мере раскрывающее вышеописанное, до конца. Есть совершенный код Макконнелла, есть труды Дейкстры, Вирта, Кнута - не нужно тут про обоснованность и обдуманность, ибо читающие должны быть с приведенными литературными произведениями как минимум ознакомлены.

Другое дело, что автор статьи не привел список литературы, которая могла бы помочь обосновать и обдумать. В те времена, когда пионеры были большими, пруфы даже в школьных докладах были. Но в российской действительности указать ссылки на дополнительные или используемые материалы редко кто способен (видимо, кризис высшего образования), поэтому я современную русскую литературу по бизнесу и прочему стараюсь не читать.
71. strelec13 11 01.07.19 14:35 Сейчас в теме
(44)
я современную русскую литературу по бизнесу и прочему стараюсь не читать.

Надеюсь хотя бы русскую старую или советскую литературу по бизнесу читаете, если современную российскую избегаете. Есть большая перспектива не читать современную литературу по бизнесу из других стран, начиная со стран Африки, а не только российскую.
72. starik-2005 1979 01.07.19 14:51 Сейчас в теме
(71)
Надеюсь хотя бы русскую старую или советскую литературу по бизнесу читаете
А с чем связана Ваша "надежда"? Советская литература по "бизнесу" - это какая? Ну и старая, собственно, тоже... Про Остапа Бендера что-ли? )))

Я читаю западную литературу (если говорить о бизнесе и экономике). Она в данном вопросе куда качественнее. Из старой Адама Смита, Карла Маркса, Фридриха Энгельса, Эриха Фромма (не совсем о бизнесе, но тоже не зря написано) ну и многих других. Из современных тоже хватает талантливых авторов, если на вскидку, то, например, Джон Нэш, Теодор Шульц, - но это, конечно, нобелевские лауреаты. А из российского если только диссертации докторские по экономике читать, которые не являются плагиатом. Кто там у нас в РФ получил какую-нить престижную мировую премию по экономике за последнее время? Никто? Как жаль...
73. strelec13 11 01.07.19 17:23 Сейчас в теме
(72)
Советская литература по "бизнесу" - это какая? Ну и старая, собственно, тоже... Про Остапа Бендера что-ли? )))

Спасибо за идею. Надо будет почитать советскую или старую литературу про бизнес в лице Остапа Бендера. На западе поучится у наших Остапов ...
74. starik-2005 1979 01.07.19 17:36 Сейчас в теме
(73)
На западе поучится у наших Остапов
Мне, вот, в целом ответ не ясен. Кто "поучится" у наших Остапов на западе? Или имелось ввиду "поучиться у наших Остапов на Западе", т.е. поехать на Запад (в соответствующие страны, поэтому с большой буквы) и там взять Ильфа и Петрова, чтобы поучиться бизнесу? С какой целью?
75. strelec13 11 01.07.19 17:40 Сейчас в теме
(74)
поучиться

Подучу грамматику, чтобы потом Вам был ответ ясен.
76. starik-2005 1979 01.07.19 17:42 Сейчас в теме
(75)
чтобы потом Вам был ответ ясен
Тогда зачем сейчас его писать? Ведь можно потом это сделать! Кстати, с такими мыслями можно и самому написать что-нибудь про бизнес, чтобы за державу не было так обидно.Как Вы считаете, сможете? ;)
77. strelec13 11 01.07.19 17:47 Сейчас в теме
(76)
Как Вы считаете, сможете? ;)

Без ваших западных знаний и без нобелевского опыта нет. Разве что подглядеть ваши статьи со сносками на приличную литературу, если есть. Как Вы считаете? Глядишь и обоим нам не будет обидно за державу.
78. starik-2005 1979 01.07.19 18:32 Сейчас в теме
(77) предлагаете в соавторы? А тема какая? Есть уже план публикации?
82. strelec13 11 01.07.19 23:03 Сейчас в теме
(78)это вопрос ко мне чайнику? А Вам слабо? Знающему и опытному любитедю читать западную литературу по бизнесу. Вы меня разочаровываете. Я уже было поверил, что и в заправду разбираетесь в литературной теме о бизнесе. А Вы надеетесь и спрашиваете у чайника. Видать я не по адресу написал. Надеюсь у Вас хватит профессиональной гордости. Не связываться больше с неграмотный неучем.
83. starik-2005 1979 02.07.19 08:46 Сейчас в теме
(82) т.е. вот так сразу при первой сложности в кусты? Вам должно быть стыдно)))
Aggressorak; acanta; +2 Ответить
81. acanta 75 01.07.19 20:52 Сейчас в теме
Китайцы строят чайна-тауны в любом городе, а Остап раз убит подельником, два ограблен на границе. И вся история.
Красные приходят - грабят, белые приходят - грабят.
Может китайцы просто не жалуются, в отличие от индейцев ( они конечно в курсе что их проблемы шерифов не волнуют, но вот весь мир например, сочувствует...)
63. dmurk 273 27.06.19 10:48 Сейчас в теме
(38) Это зависит от того, кто был на прикупе ))
5. dmitrydemenew 413 19.03.19 12:40 Сейчас в теме
(2)На моем текущем месте работы не только tempdb, но и все рабочие базы расположены на SSD. Напоминаю, что все мои рассуждения и выводы относятся исключительно к крупным и высоконагруженным информационным системам. Лично мне сейчас приходится работать с базами, средний размер которых более 500 ГБ и расположены они на топовом серверном оборудовании.
"Поэтому" исправил, действительно глаза режет, спасибо. Представленная методика не зависит от режима запуска 1С. Во вложении демки для вариантов запуска как в режиме управляемых, так и обычных форм.
4. user-z99999 22 19.03.19 12:36 Сейчас в теме
Автор молодец, почти воспроизвел APDEX "Оценка производительности" из БСП.
PLAstic; Irwin; A_Max; +3 Ответить
6. VmvLer 19.03.19 12:58 Сейчас в теме
практическая ценность тестов в каких-то демо-базах сомнительна.

я не призываю светить тут учетные данные баз от 500 гб., но только выводов по результатам
тестирования недостаточно. Необходимы визуальные результаты(статистика) тестов именно по таким базам.
7. dmitrydemenew 413 19.03.19 13:13 Сейчас в теме
(6)Практическая ценность этих тестов не сомнительна - она отсутствует. Эти демо-базы только для того, чтобы перед принятием решения, использовать или нет описанную методику в рабочем режиме, опробовать ее в тесте и предварительно оценить результат ее работы.
10. user-z99999 22 19.03.19 13:58 Сейчас в теме
(7)
Может следующая статья будет про ошибки (время выполнения) в запросах 1с, оптимизация ?
Т.е. как было и как исправили. Например, самые частые ошибки.
11. dmitrydemenew 413 19.03.19 14:05 Сейчас в теме
12. capitan 1340 19.03.19 14:10 Сейчас в теме
(10)А вы бы не хотели то же самое почитать на ИТС ?
Так сказать из первоисточника
13. user-z99999 22 19.03.19 14:17 Сейчас в теме
(12)
Первоисточник -это хорошо.
Просто любопытно, какие ошибки самые частые у программистов 1с.

Например, ИТС рекомендует делать индексы на временные таблицы, а по факту - это замедляет работу запроса.
На ИТС не показано во что превращается запрос 1с на MS SQL сервере, когда поля составные.
Вот и хочется в жанре ужасы почитать ))

Ещё,
фирма 1с придумала объектную модель обращения к данным, чтобы программисты 1с использовали её, а не запросы.
Т.е. чтобы 1с работала не слишком быстро ))
ivv1970; alest; bulpi; sergathome; +4 Ответить
47. buganov 59 05.05.19 09:59 Сейчас в теме
(15)

При написании запросов не следует использовать соединения с подзапросами. Следует соединять друг с другом только объекты метаданных или временные таблицы. Если запрос использует соединения с подзапросами, то его следует переписать с использованием временных таблиц.


кэп, а Вы пробовали загнать несколько миллионов записей во временную таблицу? Или не так, а что будет, если сделать соединение с подзапросом, где на одном из уровней будет таблица данных? Что в таком случае покажет план запроса? Вот долго я ломал голову, а с чего это вендор, у которого есть экзамен Эксперт по технологическим вопросам такие советы дает. Оказалось просто. Постгре не умеет работать с подзапросами, потому и MS SQL досталось на орехи.

Временные таблицы не зло, это умеренное зло, если в конкретно данном случае, в конкретно данной задаче они обоснованы и производительнее, чем подзапрос.
51. capitan 1340 05.05.19 12:22 Сейчас в теме
(47)Честно скажу я с трудом могу представить задачу в которой нужно загнать несколько миллионов записей во временную таблицу.
План запроса вероятно покажет фулл скан с таблицей из которой у вас во временную с отборами набралось несколько миллионов записей
Не понял вопроса.
Что касается рекомендации - она намного раньше дружбы с постгри появилась.
Да и при таком масштабе задач опять же только по моему мнению уже не до экономии на лицензиях
53. buganov 59 05.05.19 14:54 Сейчас в теме
(51)Элементарно, Ватсон, продажи за месяц в нескольких разрезах дают огромный поток данных. И, если обороты загнать во временную, то пользовательский кеш сразу выталкивается наружу.

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

По поводу рекомендации, да, раньше, но и MS SQL раньше не очень дружил с подзапросами
56. capitan 1340 06.05.19 09:53 Сейчас в теме
(53)Я что то начал терять нить вашего возмущения.
Вы постом раньше были за подзапросы, а в этом посте вроде против.
Миллиона записей о продажах за месяц у меня нет
16. capitan 1340 19.03.19 14:28 Сейчас в теме
(13)И тут Остапа понесло...
Ещё, фирма 1с придумала язык 1С чтобы программисты 1с использовали его, а не ассемблер )
18. dmitrydemenew 413 19.03.19 15:28 Сейчас в теме
(16) Я считаю платформу 1С - лучшей средой разработки. А язык 1С - лучшим для решения задач по автоматизации любых процессов, и пока что не встречал ни одной задачи, которую бы нельзя было решить быстро, удобно и качественно доступными в 1С средствами .
20. user1180228 19.03.19 16:36 Сейчас в теме
(18) Изучаю 1С почти год, до этого был опыт в других языках. Насчет быстро и удобно, это не совсем правда. Нет наследования и классов, без чего практически линейное программирование в 1с. А это прошлый век!
30. A_Max 17 20.03.19 09:54 Сейчас в теме
(20) Всё как обычно 80/20 (А в нашем случае я думаю выйдет даже 90/10). Т.е. для реализации подавляющего большинства задач мощь ООП с наследованием и полиморфизмами не нужны. И, мало этого, при их наличии провоцировало бы неокрепшии умы на творческие экзерцисы которые было бы нетривиально сопровождать.

Частенько задумываюсь, что хотелось бы иметь полноценные свойства объектов с обработчиками get/set. Но опять таки это плюшки и "синтаксический сахар".
48. buganov 59 05.05.19 10:03 Сейчас в теме
(20) Вы тут лукавите, классы есть, достаточно взглянуть на дерево метаданных.
Про наследование. А для чего оно здесь? Что Вы собираетесь наследовать и для чего?
Плохо Вы изучаете 1С, если до сих пор не поняли, что этот "прошлый век" выполняет функции автоматизации бизнеса, и справляется в этом очень даже хорошо. И без наследования и смс.

Вот банальный пример. Нужно написать небольшую автоматизацию, скажем, киоска.
Даны два ЯП - 1С и любой тру на Ваш выбор. Как Вы думаете, кто быстрее автоматизирует киоск, тру или "парапрограммист" 1С? Ответ очевиден, и микроскопом можно гвоздь забить, но зачем?
vovan_victory; +1 Ответить
50. acanta 75 05.05.19 11:07 Сейчас в теме
(48) итак мы вернулись к тому с чего начали. Конкуренция за автоматизацию киосков это хорошо.
Вроде как раньше узким местом была стоимость компьютера с 256 мб памяти. Сегодня- наличие мобильной связи на телефоне с 5 Гб оперативки.
52. buganov 59 05.05.19 14:54 Сейчас в теме
(50) Я совсем не понял, что Вы хотели этим сказать
57. user1180228 07.05.19 08:25 Сейчас в теме
(48) Быстрее всего я напишу на BSScript, похожая на 1С система, только в разы продвинутая. 1С - это что? - Готовые объекты, которые заточены на выполнение каких то стандартных операций. Как только отступление - танцы с бубнами и никакой оптимизации. Да много COM приложений. А без COM и ни туды и ни сюды... Хотите нормальный функционал - пишите COM, а это очень увеличивает время разработки. 1С есть куда развиваться.

По поводу бизнеса также не согласен, бизнес стонет от "тормозов" 1C.
58. buganov 59 07.05.19 09:53 Сейчас в теме
(57)Ок, давайте представим, что Вы сделали свою шикарную систему автоматизации киоска. Все работает отлично и гораздо быстрее, чем 1С. И вот, в один прекрасный момент у Вашего заказчика наступил момент, когда бизнес вырос с этапа счетов до калькулятора. Вы будете пару месяцев дорабатывать свою систему и даже что то получится на выходе. Не ERP, конечно, но уже и не эксель. И тут Вы поняли, что жизнь проживается зря, а внутри рвется художник, и вообще, программирование для других, Ваше же дело жизни - руководить. Скажем, менеджером проектов где-нибудь в Италии, на берегу моря. И что делать Вашему заказчику? Правильно. Искать специалистов. Но, как Вы думаете, легко ему это будет сделать? Нет. Легко масштабировать свою систему? Тоже нет. Если из УТ можно довольно просто эволюционировать в комплексную, а там в ERP, то Вашими усилиями будет убита сама идея автоматизировать бизнес, который, к слову, далеко не глупый и выбирает 1С не просто, что где-то слышал, а как возможность сделать свою систему, при этом без слишком высоких трудозатрат на поиски программиста. Это так, лирика.

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

По поводу стонов бизнеса, то тут банально. Легкий вход в профессию плодит недоучек, которые не хотят разбираться, а как, собственно, все устроено и пишут крайне вредный для производительности код, который впоследствии и вызывает стоны.

Да, 1С есть куда развиваться, ИЧСХ она и делает.
alex_art; +1 Ответить
59. starik-2005 1979 07.05.19 10:00 Сейчас в теме
(58)
Правильно. Искать специалистов. Но, как Вы думаете, легко ему это будет сделать? Нет. Легко масштабировать свою систему? Тоже нет.
Вот! Золотые слова. Поэтому берете астрального питонщика или PHP-шника и не мучаетесь всякими БССкриптами или чем-там-еще. И никакого 1С, никаких лицензий, дешевые разработчики, которых в западном индостане девать некуда, масштабируемость отличная - хоть киоск, хоть фэйсбук (на пентиуме 1-м даже), ...
60. buganov 59 07.05.19 11:55 Сейчас в теме
(59)PHPшники ох как дорого стоят хорошие)
61. starik-2005 1979 07.05.19 13:31 Сейчас в теме
(60)
PHPшники ох как дорого стоят хорошие)
Индусы? Да они за тарелку супа готовы душу продать! )))
69. muskul 28.06.19 07:41 Сейчас в теме
(61)судя по типовым решениям они сейчас 1с и пилят
Aggressorak; +1 Ответить
79. dachnik 105 01.07.19 19:28 Сейчас в теме
(61)мне кажется, индусы уже давно подороже отечественных быдло-кодеров будут...
80. starik-2005 1979 01.07.19 20:10 Сейчас в теме
(79) индусы бывают разные. Не стоит путать брахмана и биндера кнопки "ок"...
28. GreenDragon 20.03.19 09:49 Сейчас в теме
(16) И на что только люди не пойдут, чтобы не набирать машинный код сразу...
ivv1970; dock; bulpi; capitan; acanta; +5 Ответить
32. capitan 1340 20.03.19 17:07 Сейчас в теме
(28)Это еще что. На что люди пошли чтобы безгранично коннектиться посредством блюпуп и вифи.
А как хорошо было раньше.

Один пpогpаммеp пpишел в гости к дpугому. Сидят, пиво попивают. Тут на кухню заваливает огpомный сеpый котяpа.
- Это мой кот. Зовут Модем.
- Почему Модем?
- Смотpи. - беpет веник, тычет в кота. - Модем! Коннект!
(Кот): - Шшшшшшшшш...
70. Артано 664 30.06.19 12:48 Сейчас в теме
(32) Зухелем кота звали.
65. dmurk 273 27.06.19 11:02 Сейчас в теме
(13) Индексация временных таблиц замедляет работу запроса:
- ровно настолько, насколько неправильно выбрана модель использования оборудования
- ровно настолько, насколько вы зря решили использовать индексы

Если, например, разместить tempdb на USB флэшке с интерфейсом USB 1.1, то безусловно индексирование ВТ не нужно никогда ))
19. VmvLer 19.03.19 16:23 Сейчас в теме
1. возьмите свою базу в 500 гиг
2. напишите отчет где есть интенсивное обращение к многим оборотным регистрам, регистрам сведений и пр. с количеством записей в таблицах 100-500КК.
3. Напишите вариант отчета из пункта 2 с грамотным использованием ВТ в фильтрах виртуальных таблиц
3.1. Предложите, чтобы 100 пользователей единовременно в течение часа формировали отчет из п.3 с одним и тем же набором "жирных" фильтров
3.2. Соберите статистику по "загрузке" дисков, памяти, процессора, замеры времени сколько работал SQL и сколько сервер приложений 1С "жевал" то, что отдал SQL и пр.
4. Напишите вариант отчета из пункта 2 БЕЗ использования ВТ
4.1. Предложите, чтобы 100 пользователей единовременно в течение другого часа формировали отчет из п.4 с одним и тем же набором "жирных" фильтров как в. 3.
4.2. Соберите статистику по "загрузке" дисков, памяти, процессора замеры времени сколько работал SQL и сколько сервер приложений 1С "жевал" то, что отдал SQL и пр.
5. Сделайте сравнительный анализ п.3.2 - 4.2.

Только после сверки можно делать выводы и пенять на код.
21. user1180228 19.03.19 16:54 Сейчас в теме
(19) Тема интересная но так "просто" не решаемая. Для оценки производительности нужно собирать стенд и там проводить исследование производительности. Я так понял, что никто этого еще не делал.
Согласен с автором статьи, что неоптимизированный код влияет на производительность.
22. dmitrydemenew 413 19.03.19 17:10 Сейчас в теме
(19)предложенная методика как раз содержит инструменты, позволяющие выполнить Ваш алгоритм без издевательств над нашими пользователями - достаточно запустить необходимое количество нагрузочных сессий с выполнением необходимых алгоритмов. Предлагаю Вам воспользоваться предложенными инструментами и поделиться результатами исследований - это будет лучшим доказательством Вашей правоты.
23. starik-2005 1979 19.03.19 21:58 Сейчас в теме
Результат = СтрШаблон("%1%2%3%4%5", Результат, СокрЛП(КодАвтора), Лев(КодАвтора,1), Сред(КодАвтора, 2, 1), Прав(КодАвтора,1));
A_Max; metmetmet; +2 Ответить
26. PerlAmutor 47 20.03.19 07:10 Сейчас в теме
(23) Тогда уж:

КодАвтора = СокрЛП(ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(ДокументОбъект.Автор, "Код"));
Шаблон = "%1%2%3%4%5";
ЛевКодАвтора = Лев(КодАвтора);
СредКодАвтора = Сред(КодАвтора, 2, 1);
ПравКодАвтора = Прав(КодАвтора, 1);
Для а = 1 По 1000 Цикл
    Результат = СтрШаблон(Шаблон, Результат, КодАвтора, ЛевКодАвтора, СредКодАвтора, ПравКодАвтора);
КонецЦикла;
Показать
29. starik-2005 1979 20.03.19 09:50 Сейчас в теме
(26) сам код как я понял у автора демонстрационный. Правильнокодавтора (или что иное) брать из результата запроса, а не из ссылки. Здесь автор не учел, что платформа ссылки кеширует. То, что он называет здесь оптимизацией - это просто придуманная проблема, которая красиво отобразилась в топе длительных операций. Статья о том, как искать проблему, а не о том, как ее решать. Ценность данного произведения отсюда ИМХО мала предельно
insurgut; +1 Ответить
45. TODD22 18 21.03.19 11:51 Сейчас в теме
(29)
Статья о том, как искать проблему, а не о том, как ее решать.

Как пользоваться замером производительности.
42. starik-2005 1979 21.03.19 10:33 Сейчас в теме
(26) тогда уж:
КодАвтора = СокрЛП(ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(ДокументОбъект.Автор, "Код"));
ЛевКодАвтора = Лев(КодАвтора);
СредКодАвтора = Сред(КодАвтора, 2, 1);
ПравКодАвтора = Прав(КодАвтора, 1);
ИтогоКодАвтора = СтрШаблон("%1%2%3%4", КодАвтора, ЛевКодАвтора, СредКодАвтора, ПравКодАвтора);
Для а = 1 По 1000 Цикл
    Результат = СтрШаблон("%1%2", Результат, ИтогоКодАвтора);
КонецЦикла;
31. A_Max 17 20.03.19 09:56 Сейчас в теме
(23) Да вообще когда уже полноценную форматную строку сделают printf :(
24. 3vs 20.03.19 06:50 Сейчас в теме
"К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033)."

А БП3 уже требует платформы
"Внимание! Текущая версия конфигурации "Бухгалтерия предприятия" предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.12.1685."
Не подустарела информация?

И, не пора ли уже предложить 1С добавить поддержку в сервере СУБД в оперативной памяти, таких как СУБД для данных в оперативной памяти, обеспечивающие их сохранность: Redis, Aerospike, Tarantool?
А то, с каждым обновлением платформы, базы работают всё медленней...
25. dmitrydemenew 413 20.03.19 07:03 Сейчас в теме
(24) В публикации описана методика, которую можно применить в любой конфигурации на любой платформе 1С V8.x.
27. 3vs 20.03.19 08:26 Сейчас в теме
35. Serg O. 180 20.03.19 23:29 Сейчас в теме
во многих конфигурациях - есть обработка "Групповая обработка справочников и документов"
простейшее "нагрузочное" тестирование можно аналогично сделать...

однако, это "чистое" движение (проведение) - не открывая формы документа !? и не возвращаясь в список документов... в котором может быть куча подзапросов и "авторасчетов", расцветки и т.п.

стандартный замер - прекрасная вещь
и в дополнение к нему можно использовать УниверсальныеПодборИОбработкаОбъектов.epf
с диска ИТС - в ней кроме отборов можно делать "произвольный алгоритм"... в том числе открывать и закрывать формы... и что угодно делать кроме этого

******* автору для его разработки (увидел в листинге) *****
1) Таймер() - скорее всего какая-то "своя" функция... лучше заменить на 1С-кую ТекущаяУниверсальнаяДатаВМиллисекундах() - даже в 8.2 есть (с 8.2.19.83 версии точно)

2) вывод...из просто сообщить()... лучше сделать запись в текстовую переменную
а потом её можно и сообщить() и в Текстовый / HTML-Файл (для красоты)... сохранять

3) хорошо оформлена статья, спасибо, удобно читать было
+
36. itmind 251 21.03.19 07:03 Сейчас в теме
Очередная статья, в которой говорится, что временные таблицы - зло. Но у меня другой пример.
Штатный отчет Валовая прибыль из УПП 1.3 (УТ 10.3). Простой запрос, где левым соединением выборка из таблицы себестоимости.
Вставляем этот запрос в СКД один в один, запускаем на базе > 600Гб и получаем зависания на 2-3 часа (при этом иногда выполняется быстро, за несколько секунд). При этом сам запрос, не в СКД, выполняется очень быстро.
Переписываем запрос в СКД на временные таблицы и все работает быстро, никаких зависаний. Предполагаю, что оптимизатор SQL лучше работает на временных таблицах.
Исходя из данной проблемы можно сказать, что вложенные запросы в соединениях еще большее зло, чем временные таблицы.
37. dmitrydemenew 413 21.03.19 07:50 Сейчас в теме
(36)В этой статье нет ни слова о том, что ВТ - зло. Единственное назначение публикации - описание одного из множества способов анализа и оценки оптимизации программного кода модулей проведения документов. С помощью предложенной методики вы можете сами объективно оценить ту роль (позитивную или негативную), которую играет использование ВТ в проблемных местах Вашей информационной системы.
55. dmurk 273 05.05.19 17:53 Сейчас в теме
(37) И вообще, индексация временных таблиц творит чудеса ))
40. ELInfinito 21.03.19 08:28 Сейчас в теме
(36) Запрос в СКД может работать иначе, чем исполнение в консоли запросов или просто кодом.
Причина проста - СКД трансформирует запрос по неким своим принципам и на сервер улетает совсем не то, что написали вы в наборе/наборах данных .
Далеко не факт, что применение временных таблиц поможет...но я не говорю, что это зло ) В контексте 1С их здравое применение решает. Если временные таблицы применяет неофит, натыкивая их везде где надо и не надо. да еще и индексируя все подряд...это конечно зло )
49. buganov 59 05.05.19 10:09 Сейчас в теме
(36) а этот запрос Вы берете прямо из СКД, который она сама развернула или то, что пишете в конструкторе?
СКД иногда пихает отборы так криво, что образуются дополнительные соединения с таблицами, отсюда и просадка.
68. vovan_victory 61 27.06.19 12:36 Сейчас в теме
(36)
получаем зависания на 2-3 часа (при этом иногда выполняется быстро, за несколько секунд).

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

(36)
Переписываем запрос в СКД на временные таблицы и все работает быстро, никаких зависаний.

ожидаемое поведение системы. Отказались от динамического списка в пользу конкретного набора данных, и , "результат, так сказать, на лице"
54. dmurk 273 05.05.19 17:50 Сейчас в теме
На текущем этапе развития (для меня) статья не актуальна. Пару замечаний
- Получение в коде временных отметок имеет крайне высокую гранулярность, на моем тестовом сервере это 43 миллисекунды, что делает неэффективным подобный механизм на измерениях оптимизированных запросов
- Погрешность отклонения в замерах производительности может составлять 200 миллисекунд
- Параллельные способы выполнения кода в кластере 1С могут не только снижать скорость выполнения отдельных строк кода, но и повышать скорость обмена данными между модулями объектов и общими модулями
Всем успехов!
Оставьте свое сообщение

См. также

Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2 14

Статья Системный администратор Архив с данными v8 Windows Абонемент ($m) Производительность и оптимизация (HighLoad)

Проработав 15 лет с MSSQL в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

1 стартмани

05.09.2019    5976    9    ogidni    84       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

Списание (корректировка) задолженности контрагентов УНФ 1.6 5

Инструменты и обработки Программист Бухгалтер Внешняя обработка (ert,epf) v8 УНФ Украина БУ Дебиторская и кредиторская задолженность Абонемент ($m) Закрытие периода Обработка документов

Обнуление задолженности контрагентов в конфигурации "Управление небольшой (нашей) фирмой" версии 1.6 с помощью документа "Корректировка регистров".

1 стартмани

24.07.2019    6168    4    DMon    1       

Модель объекта 10

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    4184    1    vadim1980    0       

1С:Предприятие через Интернет. 1С:Fresh Промо

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

Регистрация документов с измененной суммой 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Обработка документов

Обработка берет информацию из истории изменения документов. Удобна для администраторов, когда документы с измененной суммой по какой-то причине не регистрируются в плане обменов. Можно регистрировать не все документы, а только те, которые были изменены.

1 стартмани

20.04.2019    5785    1    ryan    0       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 559

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    30614    273    bonv    116       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

Редактор объектов информационной базы 8.3 42

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.35 от 25.11.2019

2 стартмани

23.01.2019    11575    153    ROL32    28       

Валовая прибыль для УПП 1.3, КА 1.1 в режиме РАУЗ (работа типового отчета без доработок конфигурации) 6

Инструменты и обработки Бухгалтер Пользователь Внешняя обработка (ert,epf) v8 КА1 УПП1 УУ Абонемент ($m) Обработка документов

Простое и мгновенное решение для использования типового отчета "Валовая прибыль" в конфигурациях "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1" (а также отраслевых решений на их базе) при включенном режиме РАУЗ (расширенная аналитика учета затрат). Не требует настройки или изменения конфигурации, либо может быть, для дополнительного удобства, интегрировано в нее с минимальными доработками.

2 стартмани

21.01.2019    7934    6    stvorl    3       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019) 178

Инструменты и обработки Программист Архив с данными v8 v8::Mobile БУ УУ Android Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Абонемент ($m) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    24521    225    informa1555    174       

Многопоточная обработка данных 47

Инструменты и обработки Системный администратор Программист Конфигурация (md, cf) v8 v8::УФ 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad) Администрирование данных 1С

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

1 стартмани

23.11.2018    12173    46    _ASZ_    14       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Навигатор по конфигурации базы 1С 8.3 106

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.47 от 25.11.2019

3 стартмани

28.10.2018    18113    198    ROL32    47       

Вакансия Программист, аналитик, эксперт 1С Промо

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

Помощник корректировки остатков ЕГАИС в небольшом магазине. Розница 2.2 12

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Розничная торговля Абонемент ($m) Обработка документов

Данная обработка упрощает корректировку остатков алкогольной продукции небольшого магазина, где предполагается передача всей продукции в торговый зал сразу после приемки.

5 стартмани

08.09.2018    16823    78    asdfgcom    45       

Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU с 27.11 по 04.12 Промо

Оформляете заказ на 1С лицензии или конфигурации. Получаете 35% от стоимости на счет в профиле INFOSTART.RU. Выбираете сервисы и продукты на сумму кэшбэка.

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 65

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    16966    23    informa1555    26       

Работа со схемой запроса 176

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, - лучше воспользоваться объектной моделью запроса и использовать объект "Схема запроса". В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом "Схема запроса".

1 стартмани

24.04.2018    30017    75    kalyaka    34       

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Регистры правил [Расширение] 14

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 v8::Права УТ11 Абонемент ($m) Инструментарий разработчика Информационная безопасность

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    11663    28    33lab    0       

Корректировка остатков ЕГАИС, возврат из регистра 2, загрузка ТТН из файлов, другое для УТ10.3 15

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 Россия БУ Розничная торговля Абонемент ($m) Обработка документов

Набор обработок для автоматизации работы с ЕГАИС: Обработка корректировки остатков ЕГАИС для УТ 10.3, аналогичная имеющимся в УТ 11, Рознице 2.2. Автоматически формирует документы "Передача в торговый зал", "Акт постановки на баланс в торговом зале", "Акт списания в торговом зале". Обработка возврата из регистра 2 с подбором справок Б. Обработка формирования ТТН из файлов xml.

1 стартмани

24.01.2018    19461    5    biz-intel    3       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1 35

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    27759    29    mvv1975    5       

Копирование меню в Трактир Management 2

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 1cv8.cf Рестораны, кафе и фаст-фуд Россия УУ Производство готовой продукции (работ, услуг) Абонемент ($m) Обработка документов

Механизм копирования меню в Трактир Management. Данная обработка расширяет функционал типового решения Трактир Management, позволяя быстро вводить в эксплуатацию новую точку путём создания нового меню на основании имеющегося.

1 стартмани

28.11.2017    15853    2    integrator1983    0       

Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

Программное формирование форматированной строки в стиле html+inline CSS 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Инструментарий разработчика

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    20926    25    bonv    6       

Помощник по закрытию месяца для УТ 11.3 26

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::ОУ УТ11 Россия УУ Закрытие периода Абонемент ($m) Закрытие периода Обработка документов

Помощник по закрытию месяца для УТ 11.3. Имеет две функции: обнуление товаров "К оформлению" в интеркампани и обнуление отрицательных остатков в регистре "Себестоимость товаров".

5 стартмани

10.11.2017    14862    Zalipaka    1       

Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо

Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.

29700 руб.

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 178

Статья Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad)

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

26.05.2017    40256    168    DarkAn    86       

Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо

Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).

от 11000 до 29000 рублей

Набор подсистем "Умные таблицы" 64

Инструменты и обработки Системный администратор Программист Архив с данными v8 Беларусь Россия Казахстан Абонемент ($m) Инструментарий разработчика

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    25154    99    Silenser    33       

Упрощение работы с актами сверки в УТ/КА/УПП - вывод номеров счетов в документе и печатной форме 3

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 КА1 УТ10 УПП1 БУ УУ Дебиторская и кредиторская задолженность Абонемент ($m) Обработка документов Печатные формы документов

Обычно акт сверки с клиентами содержат информацию о документах реализации товаров (накладных) и выполненных платежах. Но платежи делаются на основании счетов, номера которых отсутствуют в актах, что затрудняет собственно сверку. Данная обработка находит соответствующие расходным накладным счета/заказы, показывает их в форме документа и выводит в печатную форму акта.

2 стартмани

12.05.2017    14436    2    denmax    2