Всем доброго дня!
Есть документы установки цен по 4000строк. Даже при одной пользователе в базе открываются такие документы около 2 минут, но проводятся за 1-2 секунды. MS SQL 2012, Проц 3.2 * 16 ядер, память 128 ГБ. База свежая - 3.5 Гб. Дисковые массивы на аппаратном RAID10.
С чем может быть связано? Как решить?
Документ: "Регистрация цен поставщиков".
Сжатие убирал - не изменилось.
Сделал замер. Все время берет
СтрокаНоменклатура = Строка(ТекущиеДанные.Номенклатура)
+ ?(ИспользоватьХарактеристикиНоменклатуры,
?(ЗначениеЗаполнено(ТекущиеДанные.Характеристика), " (" + Строка(ТекущиеДанные.Характеристика) + ")", ""), "");
Очень странно, но замер не подсчитал время открытия. Реальное время открытия документа в этот раз: 1мин45сек
(3) Ну если разрабы 1ц двоечники, то кто тогда мы?!
Если я не ошибаюсь, то это стандартный код RLS - ограничение прав на уровне записи. Удивляться нечему, особенно тормозам.
Сделал замер. Все время берет
СтрокаНоменклатура = Строка(ТекущиеДанные.Номенклатура)
+ ?(ИспользоватьХарактеристикиНоменклатуры,
?(ЗначениеЗаполнено(ТекущиеДанные.Характеристика), " (" + Строка(ТекущиеДанные.Характеристика) + ")", ""), "");
ИМХО, вредно полагаться на встроенный в 1С механизм преобразования типов данных.
Конкретно: что вернет Строка(ТекущиеДанные.Номенклатура)? Наименование номенклатуры? Так и надо писать вместо него ТекущиеДанные.Номенклатура.Наименование, которое заведомо есть строка, а не грузить движок 1С преобразованием агрегатного типа в строку, тем более, что результат этого преобразования заведомо известен.
С ТекущиеДанные.Характеристика - аналогично.
P.S. А еще я бы разделил это выражение на 2 строки: в первой присваивал бы значение СтрокаНоменклатура, а во второй - добавлял бы к нему характеристику. И тогда повторил бы замер чтобы узнать - какой фрагмент этого выражения создает тормоза? Мерещатся мне тут некие сюрпризы...
(23) Согласен. Но если я не ошибаюсь такие тормоза не по этой причине - данный код отрабатывает один раз с временем менее 0.5 секунды. 10-15 минут отработки открытия формы даже не попадают в замер.
10-15 минут отработки открытия формы даже не попадают в замер.
Тогда это что-то "за пределами кода 1С". Например, антивирус, проверяющий временные файлы, которые 1С может создавать при загрузке в память такого объема данных.
И это не шутка: меня недавно попросили помочь разобраться с типовой "Розницей", которую ставил и настраивал не я. Проблема была в том, что чек ККМ печатался порядка 4 минут: сначала комп о чем-то долго думал, потом начиналась печать, но тоже с тормозами, напечатает строчку - и задумывается на несколько десятков секунд.
Смотрю в диспетчере задач - систему грузит Defender (Windows 10), загрузка начинается как раз во время печати и заканчивается с ее окончанием. Отключил - тормоза пропали, совсем.
Пробовал добавить в исключения папки с базой, с платформой 1С, с модулем УТМ - не помогает, что-то еще он проверяет долго и нудно. Заморачиваться не стал, правкой реестра отключил его нафиг и предупредил. чтобы с рабочего компа по Инету не лазили.
В-общем, я бы смотрел диспетчер процессов, ну и монитор производительности на всякий случай - может, какое железо загружено?
(25) Такое долгое открывание выявлено пока только с одним типом документов - "Регистрация цен поставщиков". "Установка цен" с значительно большим количество строк в документе открывается "легко" - 5-10сек.
(30) 1-совцы там перемудрили просто. Там есть табличная часть с реквизитами типа "номенклатура", "вид цены", "цена" и они эту таблицу в форме переворачивают так, что виды цен становятся столбцами. Ну и с логикой явно проблемы - вместо того, чтобы передать массив на сервер, там обработать и загрузить в форму долбятся на сервер построчно.
(31) по непроверенным данным, уже давно типовые не пишут в фирме 1С полностью. Им франчи пересылают свои доработки, которые затем выборочно внедряют в типовые. Судя по ляпам, очень на это похоже.
(9) В этой теме коллега столкнулся с похожей проблемой.
https://forum.infostart.ru/forum34/topic188990/ У него отключение сжатия похоже решило проблему. Мне же это не помогло. Платформа у меня 8.3.11.3034.
УТ 11.4.3.126
(11) Сделаны, работают. Документ "Установка цен" с 5000 строк, например, быстро открывается - в течении 5 сек. Проблема пока выявлена только у документа "Регистрация цен поставщиков".
(16) Так может проще уйти от этих 4000 строк? Их же явно не руками набивают пользователи. Скорее всего грузите из Excel. Провести документ можно из формы списка, не открывая. А движения - через отчет посмотреть.
Ну и наконец, не меняете же вы цены на все 4000 позиций единовременно. Оставляйте в документе только строки с измененными ценами.
Документы "Регистрации цен поставщиков", в которых строк более 8000, вообще не открываются. Проводятся так же быстро в течении 5-10сек. Попробую обновить платформу до 8.3.12.1412.
(17) Я не проверял, но там ведь небось в форме что-то неоптимально сделано, небось многократные обращения к серверу при выводе каждой строчки. Попробуйте сделать свою простенькую форму, которая не будет никуда обращаться из ПриСозданииНаСервере.
(17) Еще у меня 1 раз было такое, что простенькая форма открывалась очень долго на одной из баз. А на других открывалась нормально. Чистка кэша не помогала, зато помогло "установить стандартные настройки".
(33) Обычно это используют для того чтоб процессор всегда работал на максимальной частоте, а не понижал частоту при снижении нагрузки. И не "раскочегаривался" при росте нагрузки. И вообще для сервера 1с это рекомендуемая настройка.
Посмотрим поможет ли автору.
(34) а это я у Гилёва нашёл. там ещё надо в биосе поковырять все энерго-сберегалки выключить.
я сам удивился.у меня 1 запрос(типовой) отрабатывал по 30-40 секунд. фактор совпадения я тоже исключаю,стоит включить назад режим энерго сбережения,тормоза начинаются вновь.