Не открывается форма 1с
Любое программное обеспечение время от времени может выдавать различные сбои. Не исключено, что при работе с программными продуктами линейки «1С:Предприятие 8.3» вы можете столкнуться с ошибками.
Ошибка в «1С» может быть следствием непредвиденного отключения питания, неправильного завершения сеанса, «кривого» кода самописной программы, нарушения логической целостности базы, нехватки памяти, человеческого фактора и других причин. После подобных сбоев программа может не открыться или запуститься в режиме «Конфигуратор», также возможны ошибки в ходе работы с определенными командами.
Для решения этих проблем вы можете обратиться в компанию, обслуживающую вашу систему «1С», или же попробовать разобраться самостоятельно, если это относительно простая ошибка «1С». Для этого нужно уметь правильно диагностировать причину сбоя и хотя бы немного понимать особенности работы системы «1С». Надеемся, что в этом вам поможет наша статья, посвященная разбору наиболее типичных ошибок в «1С» и способу их исправления.
Рассмотрим распространенные ошибки при работе с «1С» 8.3:
- Ошибка доступа
- Неверный формат хранилища
- С одного ПК заходит, с другого нет
- Внутренняя ошибка «1С» компоненты dbeng
- Неправильное отображение блоков формы
- База открывается в конфигураторе, не получается зайти в пользовательский режим
- При определенном действии система переключается на код в конфигуратор
- Система работает только при входе с определенного пользователя
- Ошибка «1С», связанная с таблицами SQL
Обращаем ваше внимание!Обращаем ваше внимание!
Перед любыми действиями с базой мы рекомендуем сделать архивную копию. Если база не открывается в режиме «Конфигуратор», скопируйте папку с базой и выполняйте все операции на копии.
При этом, конечно же, релиз вашей программы должен быть актуальным. Некоторые ошибки легко устраняются сразу после установки обновления программы.
Ошибка доступа
Подобная ошибка «1С» может возникнуть, если у вашей учетной записи недостаточно прав для доступа к определенному действию, которое доступно только ограниченному числу пользователей. Чтобы решить эту проблему, достаточно зайти в режим конфигуратора и изменить роль выбранного профиля во вкладке «Администрирование – Пользователи».
Неверный формат хранилища
С одного ПК заходит, с другого нет.
Для решения этой проблемы попробуйте выполнить следующие действия:
- для начала проверьте в «Проводнике» – видит ли он базу. Возможно, к папке с базой не предоставлен общий доступ;
- попробуйте очистить кэш. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше папка находится по адресу: C:\Users\Username\AppData\Local\1C. Для Windows ХP: Local Settings\Application Data\1C\ ;
- зайти под другим пользователем. Можно использовать любой доступный профиль (лучше всего администратора).
Внутренняя ошибка «1С» компоненты dbeng
Если у вас нет времени самостоятельно разбираться в технических особенностях системы и при этом вы хотите всегда быть уверенным в работоспособности ваших программ – мы готовы помочь! Поддержка «1С» и другие услуги по настройке «1С» доступны удаленно или с выездом специалиста в ваш офис.
Неправильное отображение блоков формы
Такая ошибка «1С» может быть следствием разных факторов. Чтобы вернуть программу к работоспособности, попробуйте последовательно выполнить несколько команд:
- очистить кэш. Для этого необходимо перейти в папку, где хранятся временные файлы (путь к папке описан в пункте 3). Зачастую такая процедура помогает вернуть работоспособность программы «1С»;
- войти под другим пользователем. Можно использовать любой доступный профиль (лучше всего администратора);
- зайти в базу данных с другого ПК. Это действие позволит исключить ошибку, связанную с работой системы на определенном оборудовании.
База открывается в конфигураторе, не получается зайти в пользовательский режим
При определенном действии система переключается на код в конфигуратор
Для проверки стоит по традиции сначала очистить кэш. Если это действие не помогло, то скорее всего ошибка в коде программы. Это особенно актуально для самописных и нетиповых программ, но иногда такая ошибка встречается и в типовых. Если ваша конфигурация нетиповая, то проблема может быть связана с неправильным обновлением системы.
Система работает только при входе с определенного пользователя
Для устранения неполадки попробуйте настроить права пользователя. Для этого потребуется зайти в режим конфигуратора и изменить роль выбранного профиля во вкладке «Администрирование – Пользователи». Затем не забудьте почистить кэш.
Ошибка «1С», связанная с таблицами SQL
Подобная ошибка «1С» может возникнуть на стороне сервера в момент, когда системе не удается считать данные таблицы SQL. Неполадка может быть связана с повреждением таблиц или с неправильной настройкой сервера. Если ситуация сложная, то есть риск потери данных из базы без возможности восстановления. Поэтому мы настоятельно рекомендуем пользователям своевременно создавать архивные копии базы данных.
Не стоит паниковать – достаточно позвонить в нашу компанию. Специалисты «1С-Архитектора бизнеса» всегда готовы помочь вам в решении любых вопросов по работе с программами «1С».
Подведем итоги
Ошибка в «1С» может произойти по самым разным причинам. В этой статье мы не смогли бы описать все возможные ошибки, но постарались рассмотреть наиболее типичные и распространенные среди пользователей.
Если вашу проблему не удалось решить, обращайтесь к нашим специалистам – мы проконсультируем по стоимости услуг и постараемся оперативно помочь в любой ситуации.
В типовую конфигурацию добавлена кнопка и должна открываться форма.
У двоих администраторов эта форма открывается, а у третьего нет. Настройки перепробовала.
Почему не открывается форма загрузки данный
При открытие формы загрузки данных открывается другое окно
Не открывается форма Т-2
В конфигурации ЗиК при просмотре сотрудника в справочнике Сотрудники при нажатии на кнопку Ввод.
Не открывается форма справочника
Подскажите пожалуйста. Есть ВПФ, при формировании ПФ надо выбрать Тип цен. В файловом режиме все.
Криво открывается форма документа
Здравствуйте. Нужна помощь с формой документа. Она криво открывается, т.е. не растягивается на.
Как отловить нужные роли? Какие роли нужны чтобы увидеть проведенные документы?
Где хранятся документы, которые проведены и они не отображаются(невидимые) в документе?
Где забиваются данные при успешном проведении документов? , т.к. потом не дал провести другие документы.
Здесь был случай провел документ и это была имитация, и он не отобразился в документах но зафиксирован в журнале как проведен.
Не дает менеджеру работать с доп.обработкой.
правый клик по корню конфигурации - все роли
выбираешь свой док, в правом верхнем окне скроллишь штобы узнать у кого есть доступ к твоему документу
документы хранятся в одном месте. убери настройку формы списка этому персонажу, чтобы он увидел то что скрыто
где забиваются данные? што? на стрелке?
чудес не бывает. не отобразился - значит не должен был. ещё - настроить список. ещё - изменить форму.
Вместо выбора открывается форма документа
Добрый день, такая проблема, делаю все по аналогии, только одно отличие, тут выбирается документ.
Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма
Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма Есть.
Не открывается 3-я форма
с первой формы 2-я и 3-я форма открываются, а со второй 3 форма не открывается просто отключается.
Не открывается форма
Раньше делал на одном компьютере все было нормально когда начал дальше делать на другом перестала.
Практически пустая база. Количество позиций номенклатуры = 40 тысяч. Количество документов штук 10. Ввод остатков, установка цен.
Открываю форму списка документа при этом количество документов в списке = 0.
Делаю замер времени.
Время ПЕРВОГО открытия 15 секунд. Если открываю второй раз то время открытия 0.2 секунды. Подобная картина повторяется со всеми формами.
Время ПЕРВОГО открытия формы отчета 20 сек. Потом открывается за 0.3 сек.
Да Intel Xenon CPU E3-1230 V2
Загрузка процессора 0% С памятью что-то не пойму
Доступно 7 Gb, Свободно 0.5
Можно ли указать местоположение файлов кэша Сервера 1С предприятия?
Хочется этот мусор разместить на быстром диске
(11) я переопределял переменные TMP, TEMP для каждого пользователя на терминальнике
заодно удобно удалять, когда у кого-то форма разъезжается
Я имею в виду кэш сервера 1с Предприятия. Именно он тормозит работу. Местоположение кэша: C:\Program Files\1cv8\srvinfo\reg_1541
чтобы при обновлениях это вдруг не слетело, можно домашний каталог полностью переопределить для пользователя, под которым запускается ragent
можно сделать ссылку на каталог с другого диска
в линупсах это ln -s, а ссылки ntfs я так и не осилил ):
рекомендую после теста на старом месте srvinfo сбэкапить и удалить (можно просто переименовать)
Это за гранью. Через несколько суток работы первое открытие любой формы занимает по 20-30 секунд.
Это же не правильно. Так не должно быть. Я так понимаю нужны постоянные танцы с бубнами вокруг Сервера1с предприятия.
А народ вообще-то работает на 8.3 вообще и с УТ11 в частности?
Нет не устанавливаю. Практически типовая УТ11. Немного переделано адресное хранение. Единственно в базу залито 40 тыс. номенклатуры.
Посмотрел, диски на сервере шустрые.
диск С на 80% процентов пустой. диск D - SSD . SQL данные хранит на SSD, файл транзакций на С
(16) у меня периодически начинают массово плодиться зависшие процессы с фоновым заданием обновление индекса ППД, точную зависимость от чего пока не установил
раньше ребутил все, а теперь чукча умный - один процесс грохнул и работаем дальше.
влияет на скорость открытия вообще всего, над каждой кнопкой думать начинает. База и все кэши - на ssd.
Все эти индексы ППД первым делом убивать надо. Если на сервере висят штук 5 баз, даже не работающих, индексы ППД положат любой сервер.
Нельзя ли узнать фамилию умника который придумал использовать полнотекстовый поиск в 1С ?
Когда начинает подвисать открытие форм, в базе никто не работает, даже фоновые процессы. Специально смотрел. В лучшем случае открыт конфигуратор и клиент. Загрузка сервера 0% память тоже свободна.
(0) > память тоже свободна
вот под виндой я б не стал так утверждать, она сама себе на уме по поводу реального распределения памяти и его отображения.
память может в резерве висеть под процесс, который никому не сдался, а 1с в это время в свопе барахтается
а диспетчер задач при этом показывает 95% свободно
(26) В этом что-то есть. В диспетчере задач видно, что Доступно 9.4 Гб
Свободно 0.7 Гб
Но как пишут умные люди, это вполне нормально. Как только потребуется память, она будет сразу освобождена. Как только у меня начнет виснуть я попробую освободить ее. Есть спец. утилита
(27) кроме процессов есть filesystem cache, который не виден ни в винде, ни в линуксе. Он ядреного уровня, к процессам не относится. На некоторое время работающей системе (т.е. не сразу после старта) обычно это весь свободный объем настоящей железной оперативки (без свопа).
в линупсе объем памяти, занятый под fs cache хотя бы увидеть можно, но повлиять - никак
в вантузе его и увидеть нельзя, будет рапортовать, что все свободно
а любимый 1с будет барахтаться в свопе, потому что кто-то файл открытым на чтение держит
(29) типичный коммент пользователя операционной системы, который не пытался разобраться в ее работе
оракл свой libaio вообще сделал, чтобы в этих приколах не разбираться, а работать напрямую с железом
(28)
Для win7 это 2 показатель группы "Физическая память" на вкладке "Быстродействие".
Как только физической памяти станет не хватать какому - то приложению - винда начнет сбрасывать кэш на диск.
Все достаточно прозрачно.
Правда сбрасывает она блоками и, если приложение начинает постоянно потреблять память - винда начинает постоянно сбрасывать блоками, поэтому иногда проще выдавить кэш вручную, запросив у Винды большой блок.
У меня утилитка есть самописная, которую запускаю, когда обработав долго в конфигураторе - (сборка комплекта, ТИИ, и.т.д) - знаю, что работать с ним уже не буду и файловый кэш бесполезен.
У меня файловый кэш был максимальным в 13 гигобайт, больше винда отказывалась забирать, несмотря на все старания.
Есть утилитка RamMap она показывает какие процессы/файлы занимают память системы, эта же утилита позволяет очищать кэш в памяти.
processexplorer fs cache не показывает, поэтому я склонен думать, что этот параметр пользователям винды недоступен
в линуксе обычный top не показывает, htop может показать, если попросить
простая задачка:
предположим, 5 разных пользователей зашли по RDP через канал GPRS
каждый из них решил скопировать к себе кино весом по 5GB (разные) и начал процесс копирования, т.е. открыл файл на чтение
в это время админ решил заменить все фильмы бинарным мусором и перезаписал их, т.е. открыл на запись. Уже начатый процесс копирования должен отдать тот файл, который пользователь начал читать. Т.е., операционная система должна где-то хранить исходные 5х5 = 25 GB кино, которые раздолбаи через GPRS уже начали копировать. Да, такая фунцкция есть у всех современных файловых систем. Однако, программа должна уметь ее использовать. Что-то мне подсказывает, делается это редко. MS SQL сервер умеет это делать. Насчет остальных сильно не уверен.
Вот какое наблюдение есть. Только за сегодня размер кеша Сервера1С (C:\Program Files\1cv8\srvinfo\reg_1541\)предприятия составил 0.7 Гб. В SQL размер данных составляет 1.2 Гб.
Они чего в кэш вытаскивают всю базу?
(41) Ничего особенного в кэше не лежит. При ручной остановке и запуске Сервера1С эта папка очищается. Если у вас настроено автоматический перезапуск процесса rphost, то ничего не чиститься.
А теперь смотрите последние наблюдения:
Объем данных, которые ЧИТАЕТ "тонкий" клиент с диска (процесс 1cv8c.exe). Конфигурация УТ11, SQL, управляемые формы. Сервер1С х64. Данные получены с помощью системного монитора ресурсов.
1. Сразу после перезагрузки сервера 1СПредприятия. Размер кеша 60 кб. Все летает. База запускается за 30 сек. Все формы открываются за 1 сек.
Такое ощущение, что после первого открытия формы, данные кеша попадают в кеш (память) Windows и открытие форм несколько ускоряется.
А теперь к знатокам. Что же лежит в папке C:\Program Files\1cv8\srvinfo\reg_1541\. И как отключить такое кривое кеширование в Сервере1С.
2. Каталог непонятно чего. С файлами "snccntx.0000000A.dat" размерами по 54 мб. После перезапуска Сервер1С предприятия там один такой файл. Через двое суток интенсивной работы с конфигуратором и базой, таких файлов становится более 10 штук. И база начинает тормозить. Более того Сервер1С предприятия процессы ragent.exe и rmngr.exe начинают жрать ресурсы по 50% ресурсов одного ядра процессора каждыйю
Сеансовые данные - данные, которые могут мигрировать между процессами rphost при переключении сеанса с одного процесса на другой.
временных хранилищ
и.т.д.
Сеансовые данные - данные, которые могут мигрировать между процессами rphost при переключении сеанса с одного процесса на другой
(62) как успехи? У меня такая же фигня. Все формы открываются пусть не 20-30 секунд, но по 5-8, а это тоже не допустимо
Перезапустил ручками сервер 1СПредприятия. Работает 18 часов. Формы и программа открываются на Ура.
Однако сегодня утром обнаружил, что Сервер1С предприятия (ragent.exe) и диспетчер кластера (rmngr.exe) на двоих полностью загружают одно ядро процессора.
Все фоновые задания отключены. Сеансов к Сервер1С нет. Одно подключение к Сервер1с - планировщик. Системный монитор не показывает никакой активности по диску, памяти, сети. SQL профилер не показывает никакой активности с базой.
Я думаю - это БАГ платформы. При этом платформа ведет себя подобным образом стабильно. Через 10 часов эти два процесса начинают жрать процессорное время.
На таких глюкавых платформах работать нельзя.
Вот сегодя заметил, что первое открытие любой формы занимает где-то 5 секунд. Повторное открытие - 1-2 секунды. Вчера, после перезагрузки Сервер1с, все открывалось за 1-2 секунды
(75) А там скорее всего все болтается. Из принципа "купим монстра за бабаблобло, за 100500 нефти", а чтобы не простаивал - накатим туда от 1С, до файл-принт-мэйл-сервера.
(74) Можно. Нельзя клиент-серверную восьмерку пускать в терминал. Особенно Тонкий клиент. Она не для этого разрабатывала 3-х звенку.
Ну и в 8.2 у Тонких форм была градиентная заливка, которая через терминалку жестко отрисовывалась. В 8.3 - не знаю, не проверял, может пофиксили.
Ничего там на этом сервере не болтается кроме 1С. А с терминалом удобно держать одну версию из всего зоопарка платформ и быстро обновлять если надо.
На предыдущем месте я пробовал работать в режиме тонкого клиента через rdp и по сети. По сети немного медленнее получалось.
(80) Освой для себя административную установку 1С.
Давай, развивайся, думай! Это тебе не про курс рубля ерунду нести!
Нет не такси. Практически типовая УТ11. Если вы такой умный, то объясните, чем занимается Сервер1с и кластер предприятия см (64) , съедая ресурсы одного ядра. Не обращаясь к другим ресурсам системы? Может вы знаете способ остановить потребление ресурсов не перегружая Сервер1С?
(81) я про то что в 8.3 тормоза с градиентом не фиксили, а что у автора не знаю.
Такси, кстати, и на клиентском десктопе быстрее чем обычные УФ работает.
Я тоже проходил через эти самые тормоза. Вешались по полной. Я не знал куда щемиться, что происходит. Периодически перегружал сервер приложений. Народ до УТ 11.1 в 7.7 работал. Привыкли, что все летает. Но летало только у менеджеров. Потом по выходным бух-ша что-то там шаманила для себя. А закрытие делалось, вообще, 3 дня.
Сейчас в УТ 11.1 тормоза с открытием форм(особенно, первоначальным), народ чуток попривык. Зато все, что сам дописываю, работает, вроде, шустро.
(88) Нельзя же всю УТ11 переписать. Хотя приходится. УТ11 оптимизировано под ларек. А у нас 40 тыс. номенклатуры. Простейшие операции длятся:
1. Удаление помеченных объектов без ссылок - 18 часов. После переписи 30 мин.
2. Открытие документа установка цен номенклатуры на 28 тыс. позиций - 3 минуты, ручное изменение цены в каждой позиции - 2 мин. Чтобы ввести цены вручную требуется 30 суток :)
3. Убогие отчеты.
(89) Вот тут идеально Чистов нужен, чтобы показать, на что способен пользователь. А то "зачем нужна ТЗ на 9000 строк на клиенте. 1С сама знает как надо".
Тут ребята 28тыс. строк в док загоняют без лишней скромности.
Нудаладно, вводначальныхостатков.
Но потом правят. Руками.
1С к такому не готовили :-)
(90) А как вы прикажете работать с большими базами? Конечно если бы разработчики платформы на управляемых формах написали, что " НЕ НАДО ИСПОЛЬЗОВАТЬ управляемые формы" их если количество позиций в справочнике или строк больше 1000.
Мы бы и не рыпались
Продолжаем пляску с бубнами. Пока вырисовывается следующая картина.
В 1С83 очень кривой механизм кеширования на клиенте. Первое открытие ЛЮБОЙ формы вызывает чтение файла кеша на клиенте. При запуске программы файл кеша читается до 10 раз. Первое открытие ЛЮБОЙ формы после изменения конфигурации увеличивает файл кеша на 200 кб. После чистки кеша пользователя и первого запуска программы размер файла кеша становится 1.5 мб. Потом он постоянно увеличивается. У меня в процессе активной разработки конфигурации за несколько дней он выростал до 65 мб. После этого время открытия программы составляло до 1 минуты, а время открытия любой формы до 20 сек. После чистки кеша все приходило в норму.
При этом самое интересное, что при использовании SQL и быстрого канала при отсутствии кеширования формы открываются существенно быстрее, чем при кешировании.
О каком быстродействии можно говорить, если при нажатии любой кнопки на клиенте читается и анализируется файл размером 60 мб?
(98) Кеширование, к сожалению, отключить не возможно. Но можно выходить из программы каждые 10 мин, а в это время специально обученный человек будет ручками чистить кеш :)
В финансовых решениях консолидационного класса или класса ERP предлагается функциональность, связанная с составлением оперативных или мастер-бюджетов, например, работа с бюджетом доходов и расходов.
Экземпляр бюджета — это хрестоматийный пример сложной формы, где есть:
- данные в разрезе каждого месяца года (в колонках);
- группировка по настраиваемой структуре разделов и статей (в строках);
- возможность внесения изменений онлайн;
- автоматический пересчет сумм зависимых формул;
- отрисовка плана и факта рядом на пересечении месяца и статьи;
- вывод в будущих месяцах плановых значений в ячейках факта.
Как видно, логика работы достаточно нагруженная и, как следствие, данных на форме много.
Руководитель подразделения открывает форму экземпляра бюджета и долго ждет ее открытия. Если время ожидания слишком велико, то в конечном итоге менеджер переходит для осуществления процесса бюджетирования в табличный инструмент класса Excel.
После разработки и включения в рабочую базу оказалось, что открытие формы бюджета в терминах структур разделов и статей компании занимает 1,5 минуты и более. Это неприемлемо, тем более что основные пользователи системы — руководители подразделений, и без того сталкивающиеся с нехваткой времени.
Мы поставили перед собой задачу сократить открытие такой формы до времени
Программная и аппаратная инфраструктура
- Нетиповая конфигурация собственной разработки.
Замечание: подобные проблемы могут также быть актуальны для иных систем класса ERP, например:
Используется трехзвенная клиент-серверная архитектура с доступом тонкого клиента через веб-сервер. Сервер СУБД и Сервер 1С:Предприятия совмещены на одной машине.
Сервер СУБД
- Процессор: Intel Xeon CPU E5-2637 v2, 2 процессора 3,5 Ghz.
- Память: 96 GB (разрешено потреблять СУБД не более 73728 MB).
- Жесткий диск SSD.
- MSSQLServer 2014 (12.0.4237.0).
- MS Windows NT 6.1 (7601).
Сервер «1С:Предприятие»
- Тот же сервер, что и сервер СУБД.
- Память: доступна вся свободная память, то есть, не менее 24576 MB.
Веб-сервер
- Процессор: Intel core 2 DUO E7500 2,93 GHz.
- Память: 4 GB.
- MS Internet Information Services 8.5.96.
- MS Windows Server 2012 R2.
Тонкий клиент
- Процессор: Intel Core i5.
- Память: 16 GB.
- Диск SSD.
- 1С 8.3.14.1694 — тонкий клиент.
- MS Windows 10.
Ищем причину медленного открытия формы и устраняем ее в «1С»
1. Для начала расследования снимаем замер производительности в «1С» процесса открытия формы
В замере видно, что лидер по абсолютному времени выполнения — метод «ОткрытьФорму».
Из 104 секунд открытия 64 приходятся на этот метод.
При этом сделать вывод о причинах медленного открытия из этого замера невозможно.
2. Соберем технологический журнал для анализа медленного открытия
Какие события собираем
Собираем события CALL и SCALL.
Выдержка из документации по платформе:
- SCALL — исходящий удаленный вызов (исходящий вызов на стороне источника вызова).
- CALL — входящий удаленный вызов (удаленный вызов на стороне приемника вызова).
Эти события возникают при клиент-серверном взаимодействии.
Бытует мнение, что SCALL всегда возникает при обращении с клиента на сервер, а CALL — при приходе этого обращения на сервер.
Нередко это так и есть, например, когда клиент обращается к серверу.
Однако это не всегда так. Например, могут быть обращения внутри сервера между менеджером кластера и рабочим процессом, между сервером и клиентом и так далее.
Пример иного случая возникновения событий CALL и SCALL.
Цели сбора
Преследуем 2 цели:
- посмотреть длинные по времени вызовы;
- найти «лаги» в технологическом журнале.
С длинными вызовами вопросов не возникает: есть оператор программы, который длится слишком долго, и это можно в явном виде обнаружить в ТЖ. По сути, хотим увидеть то же, что в замере производительности.
Что такое «лаг технологического журнала»? Под ним понимается ситуация, когда в явном виде событий с большим временем исполнения в журнале нет, но косвенно об этом догадываемся за счет присутствия большой паузы между двумя соседними событиями в журнале по одной сессии.
Метод сбора
Метод сбора технологического журнала (далее — ТЖ) — обычный:
- в папке C:\Program Files\1cv8\conf создаем файл logcfg.xml (структура файла ниже);
- ждем, пока в папке с логами, указанной в logcfg, появятся подпапки с именами процессов сервера;
- выполняем открытие формы;
- убираем файл logcfg.xml из папки;
- ждем не более 5 минут, пока система завершит запись файлов журнала;
- забираем файлы технологического журнала из подпапки rphost_.
В нем настроено:
- папка для сбора логов C:\logs;
- отбор по событиям CALL и SCALL;
- отбор по имени базы rarus_fb.
Анализируем данные собранного лога технологического журнала. Нехитрым скриптом посмотрим наиболее долгие вызовы.
Примечание по скрипту
По сути, скрипт отбирает из ТЖ события, с длительностью от 2 знаков (с 10 секунд и более). Т. к. время в ТЖ 8.3 — в микросекундах, то нам нужен отбор по времени > 8 разрядов; чтобы не писать много букв в регулярном выражении, используем синтаксис расширенных регулярных выражений: , который включается ключом -E.
Видим, что существует долгое событие CALL длительностью 85 секунд, на котором происходит большое потребление памяти 554 Мб, а в пике 701 Мб и оно возникает на методе ПолучитьФорму.
Соберем лаги ТЖ.
Сделаем это более сложным скриптом, суть которого в том, чтобы сравнить по времени 2 соседних события ТЖ и найти среди них наибольшие паузы.
- в скрипте делаем отбор по t:clientID, равному ID нашего клиента, чтобы учесть только события по текущему пользователю.
В результате получаем:
В первой колонке — время лага в микросекундах, далее — время старта двух соседних событий.
Видно, что первым номером идет лаг, сопоставимый по времени с временем открытия формы.
Делаем предположение, о том, что тяжелая форма долго загружается с сервера на клиент.
3. Посмотрим на форму в конфигураторе
Что же такое разработчик заложил на форме? Может быть данные формы перегружены избыточной информацией?
Важный элемент расследования — просто посмотреть на творение рук разработчика глазами в конфигураторе «1С».
Видим несколько таблиц значений на форме. Отладчиком посмотрим для реального бюджета, какое количество строк в них.
А строк совсем немало. И всё это при открытии перегружается с сервера на клиент.
Убедимся в этом тезисе.
4. Используем Fiddler в режиме ReverseProxy
Чтобы окончательно убедиться в том, что медленная работа обусловлена «большими» данными формы и понять, что именно это за данные, перехватим их.
Режим Reverse proxy позволяет «вставить Fiddler в разрыв» между веб-сервером и клиентом и проанализировать пакеты обмена.
Настройка Fiddler в режиме ReverseProxy
Настройку будем производить на копии рабочей базы, которая развернута в той же инфраструктуре.
Настройка режима состоит на верхнем уровне из двух этапов:
- настроить на веб-сервере переадресацию url-rewrite на сервер с Fiddler’ом;
- настроить сам Fiddler.
Для настройки веб-сервера вводим правило url-rewrite на сервер finsrv, порт 8888, на котором будет слушать Fiddler.
Устанавливаем на отдельный сервер наш Fiddler и настраиваем в режиме Reverse proxy, как описано здесь.
-
Проверяем в опциях, что установлен флаг «Allow remote computers to connect».
-
if (oSession.host.toLowerCase() == "webserver:8888") oSession.host = "webserver:80";
Отслеживаем взаимодействие между веб-сервером и клиентом «1С»
Зайдем в копию базы и дойдем до открытия формы экземпляра бюджета, но открывать не будем. Перейдем в Fiddler, посмотрим, пакет с каким номером был получен последним, и запомним его номер. Теперь откроем форму бюджета, дождемся окончания открытия и посмотрим все пакеты от запомненного до самого последнего.
Видим входящий запрос с большим объемом данных.
Предполагаем, что это и есть данные формы. Смотрим подробности данных в правом окне:
Обращаем внимание, что прочитать можно только заголовки, а данные, похоже, сжаты, о чем также свидетельствует надпись 1C‑SDCversion и далее — MZ, что соответствует началу сжатой части.
- По 1C-SDCversion — ищем на партнерском форуме «1С» и встречаем упоминание о том, что это метод сжатия deflate.
Вспоминаем, что по умолчанию клиент «1С» запрашивает работу со сжатием данных между клиентом и сервером.
С помощью запуска тонкого клиента со специальным параметром отключаем этот режим.
Делаем повторное открытие формы и видим в Fiddler’е уже вполне читаемую картину.
Обращаем внимание, что без сжатия данные формы весят более 1 Мб, что немало.
Наконец справа видим данные формы:
Переходим на представление «TextView», копируем в буфер и сохраняем как xml.
Обращаем внимание на наличие больших блоков в ветке props c внушительным количеством строк, которое сопоставимо с числом строк таблиц значений на форме:
а также со свойством fullChanged="true". Последнее скорее всего означает разрешение на изменение строк объекта на клиенте.
Выдвигаем предположение о том, что в данных формы на клиента приходят с сервера служебные таблицы значений.
С точки зрения функционирования алгоритма они не требуются на клиенте. Принимаем решение избавиться от таблиц значений на клиенте.
5. Разгружаем форму в «1С»
Что тяжелее всего?
- На форме есть таблицы значений с большим числом строк.
- Обработка объект содержит табличные части с большим числом строк.
Отказываемся от использования таблиц значений на форме и табличных частей в пользу такого подхода:
- на сервере создаем таблицы значений;
- при переходе на клиента помещаем их во временное хранилище, а на форме храним только его адрес;
- после возврата на сервер получаем таблицы значений из временного хранилища.
6. Смотрим в Fiddler результат «разгрузки» формы
Видно, что объем данных формы сократился более чем в 5 раз.
7. Делаем повторный замер производительности и смотрим потребление памяти и лаги в ТЖ
Накатываем изменения на рабочую базу, собираем замер производительности «1С».
Видим, что теперь открытие формы экземпляра бюджета составляет 25 секунд, а метод ОткрытьФорму — всего 2,1 секунды.
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
- Недостаточно памяти.
- Ошибка доступа.
- Ошибка формата потока.
- Ошибка СУБД: Файл базы данных поврежден.
- Неправильное отображение блоков формы.
- Внутренняя ошибка компоненты dbeng.
- Dump при запуске.
- Неверный формат хранилища.
- Ничего не работает.
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.
Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.
Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.
Ошибка доступа
Она возникает, если учетная запись не имеет достаточно прав. Проявляется при выполнении определенного действия, которое доступно только ограниченному кругу пользователей. Для исправления ситуации достаточно изменить роль выбранного профиля в конфигураторе (вкладка «Администрирование – Пользователи»). В некоторых случаях это увеличивает безопасность базы данных, если необходимо защитить файлы от изменения сторонними людьми.
Ошибка формата потока
Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.
Устранение подобной ошибки 1С выполняется простой чисткой кэша. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше она находится по адресу C:\Users\Username\AppData\Local\1C или C:\Users\Username\AppData\Roaming\1C. Для Windows ХР другой путь – Local Settings\Application Data\1C\. Все файлы, начинающиеся на 1cv8, кроме «1Cv8.1CD» полностью удаляются.
Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.
Ошибка СУБД: Файл базы данных поврежден
Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:
- Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
- Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
- чистится кэш;
- открывается файл chdbfl.exe из папки установки приложения и выполняется исправление;
- выполняется запуск «Конфигуратора» для тестирования и исправления сбоев;
- обновление «1С».
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Читайте также: