При написании программ нередко возникает необходимость выполнить какие-либо действия при запуске или завершении работы программы. С «обычными» программами в этом случае всё просто. Необходимо обработать соответствующие события или поместить необходимый код перед загрузкой главного окна или отображением консольного «интерфейса».
Но, что делать в случае с 1С? Если в 1С Предприятие подобный функционал?
В 1С есть возможность выполнения кода при запуске и остановке приложения. Она реализована в виде специальных событий обработка которых доступна в модуле управляемого приложения.
Если в режиме конфигуратора щёлкнуть правой кнопкой мыши на корне конфигурации и выбрать в открывшемся меню пункт «Открыть модуль управляемого приложения», откроется стандартное окно для редактирования кода, в котором содержится код вышеназванного модуля.
Для обработки требуемых событий в модуле управляемого приложения нужно описать соответствующие процедуры, как это показано в примере ниже:
1С (Код)
Процедура ПередНачаломРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриНачалеРаботыСистемы() // Делаем что-то КонецПроцедуры Процедура ПередЗавершениемРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриЗавершенииРаботыСистемы() // Делаем что-то КонецПроцедуры
Обратите внимание!
Имена процедур должны строго соответствовать названиям тех событий, которые они обрабатывают.
Процедура ПередЗавершениемРаботыСистемы принимает единственный параметр – «Отказ» (булево, значение по умолчанию «ложь»). Этот параметр определяет отмену завершения работы конфигурации. То есть, если перед завершением работы выполняются некоторые проверки и их результаты неудовлетворительны, можно отменить завершение работы просто присвоив параметру «Отказ» значение «истина».
Параметр «Отказ» в процедуре ПередНачаломРаботыСистемы, имеет аналогичное назначение. Если ему присвоить значение «истина», приложение просто не запустится.
Таким образом можно не только выполнять нужные действия, но и управлять самим процессом запуска и завершения работы.
Ограничения
В этой статье будут объяснены причины возникновения, разновидности и способы устранения
«Ошибки формата потока» 1С.
Каждый, кто работает с 1С:Предприятие в любой конфигурации хотя бы раз видел перед глазами окно с ошибкой «Ошибка формата потока».
Данное окно входит в ТОП-3 самых распространенных ошибок 1С:Предприятие. Оно неприятно из-за своей не информативности. Непонятно: где, в чем ошибка? Естественной реакцией будет нажатие кнопки «Перезапустить», но с высокой вероятностью можно утверждать, что перезапуск проблему не устранит, и пользователь снова увидит данное окно.
В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.
Программа 1С:Предприятие создана таким образом, что в процессе работы постоянно стремится оптимизировать скорость выполнения операций. С этой целью на компьютере пользователя создается «кэш», в котором хранится часто используемая информация, например: расположение и формы окон, служебные данные пользователя, настройки отборов, шрифтов и т.д. Кэширование позволяет сократить количество обращений к серверу и, тем самым, повысить скорость работы 1С:Предприятие.
Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.
Кроме некорректно записанного кэша могут быть также некорректно записаны документы (или справочники, или любой другой объект) в информационную базу и это тоже может стать причиной возникновения рассматриваемой в данной статье ошибки.
Условно ошибку формата потока 1С можно поделить на 2 вида:
В зависимости от вида ошибки можно выбрать наиболее подходящий вариант ее устранения. Но можно использовать и все способы по очереди, пока один из них не сработает. Способы не нанесут вреда вашей базе 1С 8. Впрочем, если действовать как настоящий профессионал – стоит сначала сделать бэкап, а уже потом бороться с “Ошибкой формата потока”.
Рассмотрим ТОП способов решения:
Данный способ подробно был рассмотрен в нашей статье “ ”. Вкратце напомним. Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу C:\Users\Username\AppData\Roaming\1C и C:\Users\Username\AppData\Local\1C в папках, начинающихся с «1cv8». В Windows XP, в папке пользователя по адресу Local Settings\Application Data\1C\. Если папка AppData не видна – настройте видимость скрытых папок. Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами (в нашем случае файл всего один). Для очистки кэша нужно удалить эти папки.
Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.
В режиме конфигуратора нужно кликнуть по пункту меню “Администрирование” и затем “Тестирование и исправление”.
Должны быть отмечены первые два пункта “реиндексация таблиц информационной базы” и “проверка логической целостности информационной базы”. Нажмите кнопку “Выполнить”. Система сама проверит базу, найдет ошибки, исправит их и предоставим вам отчет о проделанной работе. При необходимости отметьте также третий пункт “проверка ссылочной целостности информационной базы”.
Если нет возможности зайти в конфигуратор, тогда запустите программу «chdbfl.exe», которая находится: «C:\Program Files (x86)\1cv8\8.3……\bin» . Выберите файл Базы Данных, отметьте галочкой “Исправлять обнаруженные ошибки” и нажмите кнопку “Выполнить”. Дальше система все сделает за вас. Система сама проверит базу, найдет ошибки и исправит их. Во время работы программы «chdbfl.exe» не должно быть активных сеансов работы с 1С.
В режиме конфигуратора выберите пункт меню “Администрирование” и кликните “Выгрузить информационную базу”. После этого выберите место куда хотите сохранить файл базы (.dt), задайте файлу имя и нажмите “Сохранить”.
После этого создайте новую пустую базу у себя на компьютере (либо на сервере). Зайдите в конфигуратор новой базы, нажмите “Администрирование”, затем “Загрузить информационную базу”. Выберите подготовленный ранее файл и нажмите “Открыть”.
Данный способ может повлечь потерю данных, поэтому его рекомендуется использовать только опытным пользователям. Способ схож с предыдущим и заключается в том, что сначала база выгружается, (только не в.dt, как в предыдущем способе, а в специальный формат.XML). Затем база загружается обратно. Делается это с помощью встроенной обработки “Выгрузка и загрузка данных XML”.
Причиной рассматриваемой ошибки может стать наличие активных сеансов пользователей, работающих в разных версиях . Например, в базе есть активный сеанс пользователя с платформой 1С 8.3.5…., а пытается подключиться другой, с версией 8.3.4…. Если на компьютере установлены несколько версий – убедитесь, что в окне редактирования информационной базы выбрана нужная вам “правильная” версия.
В 99% случаев вышеописанные способы борьбы с “Ошибкой формата потока” эффективно сделают свою работу и ошибка “уйдет”. В оставшемся 1% придется применять более сложную диагностику, иногда выходящую за рамки 1С, например: почистить временные файлы компьютера, а не только кэш 1С; проверить жесткий диск на битые сектора при помощи утилиты “chkdsk.exe”; проверить компьютер антивирусом. Можно даже попробовать запустить базу 1С на другом компьютере и таким образом локализовать проблему, убедившись, что ошибка кроется именно в информационной базе, а не в железе и не в Операционной Системе.
Данная статья создана в помощь столкнувшимся с ошибкой 1С “Ошибка формата потока”, здесь были рассмотрены и объяснены причины ее появления, её условные виды и способы устранения. Ошибка выглядит страшно и непонятно из-за своей неопределенности, но, как видим, устранить данную ошибку по силам каждому.
Такая проблема, как Ошибка формата потока, в 1С 8.3 встречается достаточно часто. Рассмотрим, как исправить данную ошибку.
Такое происходит в следующих ситуациях:
Получите 267 видеоуроков по 1С бесплатно:
Если это не помогло — есть более изощренные способы решения данной проблемы. Например, с помощью HEX-редактора. Если Вам необходима квалифицированная помощь программистов 1С, обратитесь к нам! Подробности на странице
Причин возникновения таких ошибок может быть множество. Первое, что имеет смысл делать в случае возникновения таких ошибок — определиться с источником проблемы.
Уточнить обстоятельства и сроки появления ошибки: неисправность, которая не может быть воспроизведена, возможно, является просто случайностью, сбоем.
Проверить работу программы с другого компьютера и от другой учётной записи пользователя.
Проверить релизы платформы и конфигурации: соответствует ли текущая версия последней официальной.
В дальнейшем, если вы не справитесь с ошибкой самостоятельно, вам надо будет объяснить природу её появления специалисту, соответственно, эти вопросы возникнут в любом случае.
Есть целый ряд ошибок, возникающих при использовании нелицензионного программного обеспечения (как продуктов «1 °C» , так и, например, операционной системы «Windows»). Характерный пример в случае «ломаной» платформы «1С»: патч, взламывающий конкретную версию платформы, перестаёт работать после установки новой версии платформы, вход в базу в этом случае приведёт к появлению сообщения «Не обнаружено свободной лицензии».
Важно! Не забывайте делать резервную копию ваших баз прежде чем изменять что бы то ни было в конфигурации. В случае когда база не открывается с помощью конфигуратора, следует скопировать папку с базой средствами операционной системы и далее выполнять все операции с этой копией.
Версии конфигураций должны быть актуальны (это особенно важно в случае конфигураций, на основе которых создаётся регламентированная отчетность). Обновление до текущей версии будет первым шагом всех без исключения специалистов-разработчиков, в случае если вы обратитесь к ним. После проверки актуальности версий конфигураций следует проверить актуальность релиза платформы (здесь следует учитывать рекомендации «1С»: не все релизы конфигураций соответствуют релизам платформы).
Ошибка | Методы исправления |
---|---|
База не открывается |
Обновление платформы. Очистка временных (cash) файлов: удалить базу из списка и подключить её же заново. Вход в базу от другой учётной записи. |
Ничего не работает без видимых причин |
Обновление платформы. Поиск причины сбоя в журнале регистрации. |
Dump базы при запуске |
Отключение аппаратное ускорения видеокарты средствами Windows, перезагрузка системы. |
База открывается в конфигураторе, но не в пользовательском режиме |
Обновление платформы. Очистка временных (cash) файлов. Вход в базу от другой учётной записи (и/или от записи администратора). Вход в базу с другого компьютера (чтобы исключить общую неисправность текущего). Тестирование тестирования физической целостности базы с помощью утилиты «chdbfl» (папка C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe) или, в случае базы-SQL , — тестирование средствами SQL. Тестирование и исправление ИБ средствами конфигуратора. |
Программа без предупреждения открывает код конфигуратора |
Обновление платформы. Очистка временных (cash) файлов. Проверка кода в отладчике. Как правило, такая ситуация возникает из-за ошибок в изменённом коде, чаще всего — в случае нетиповых конфигураций. |
Программа работает по-разному для разных пользователей |
Обновление платформы. Очистка временных (cash) файлов. Настройка прав групп. Настройка прав пользователя. |
Неправильное отображение блоков формы |
Обновление платформы. Очистка временных (cash) файлов. Вход в базу от другой учётной записи (и/или от записи администратора). Вход в базу с другого компьютера (чтобы исключить общую неисправность текущего). |
Программа не работает на каком-то компьютере в работающей сети, но работает на остальных |
Проверка сетевых прав данного компьютера (средствами Windows). Обновление платформы. В том числе следует проверить соответствие релизов конфигураций и платформы в пределах сети. Очистка временных (cash) файлов. Вход в базу от другой учётной записи (и/или от записи администратора). |
Недостаточно памяти |
Обновление платформы. Очистка временных (cash) файлов. Вход в базу от другой учётной записи (и/или от записи администратора). Вход в базу с другого компьютера (чтобы исключить общую неисправность текущего). Оптимизация проблемных запросов. Аппаратное увеличение объёма памяти. Увеличение размера файла подкачки. Управление выделенной памятью через командную строку Windows. Строка: «bcdedit /set increaseuserva 3072», где 3072 — размер желаемой адресной памяти. |
Ошибка СУБД, внутренняя ошибка компоненты dbeng8 |
Обновление платформы на всех компьютерах сети. Тестирование тестирования физической целостности базы с помощью утилиты «chdbfl"ю. Эта ошибка характерна для сетей без сервера «1С» и связана с различием кода разных версий платформы на различных точках доступа. |
В информационных базах на платформе 1С могут возникнуть множество различных ошибок: нарушение логической/физической целостности базы, ошибки пользователей, «кривой» код разработчика и многое другое. Причин может быть множество: отключили свет, и не было источника бесперебойного питания, или вечер пятницы удался, и пользователь уже и не может вспомнить в понедельник, что он натворил такого. Во-первых, стоит задать несколько уточняющих вопросов пользователю: 1) Релизы платформы/конфигурации. 2) Полный текст сообщения об ошибке. Пользователи имеют досадное свойство не читать целиком такие сообщения, а возможно в нем содержится рекомендация к устранению неисправности. 3) Как давно возникла и при каких обстоятельствах появляется. Не воспроизводимые ошибки, которых мы ранее не встречали, мы наврядли сможем исправить. 4) Возникает ли если запустить 1с с другого компьютера/от другого пользователя? Это даст нам пищу для размышлений - сможет ли помочь очистка кэша, настройка прав, или очистка настроек пользователя. Теперь немного о самих ошибках и том как их решать. Общее: Распространенный пример - ломаная платформа. Один из патчей взламывает конкретную версию платформы, поэтому после установки новой версии платформы и попытке зайти в базу можно увидеть окно «Не обнаружено свободной лицензии». Если Вы встретили ошибку в первый раз - возможно, кто-то уже ее встречал - поищите в google, возможно кто-то уже с этим сталкивался и решил проблему, и Вы не потратите лишних пару часов своего времени. Релиз конфигураций должен быть актуальным (в первую очередь для конфигураций из которых сдается регламентированная отчетность), неспроста на линии консультаций практически всегда предлагают вначале обновиться, а потом уже смотреть дальше. Актуальный релиз платформы - у каждой конфигурации написано, какой релиз платформы рекомендован для работы с этой конфигурацией. Технологический журнал позволяет протоколировать все события 1С:Предприятия (или часть, используя фильтр). !!!ВАЖНО Перед любыми действиями с базой - сделать архивную копию! Если база не открывается в конфигураторе - скопировать папку с базой и выполнять все операции на копии! 1) База вообще не открывается ни в пользовательском режиме, ни в конфигураторе.
2) Если база при запуске уходит в дамп.
В Windows 7 в некоторых случаях кнопка «Изменить параметры» будет неактивна. В этом случае отключить аппаратное ускорение невозможно, так как видеокарта и ее драйвер не поддерживают манипуляции аппаратным ускорением.
3) База открывается в конфигураторе, но не хочет заходить в пользовательский режим.
4) При каком-то действии выкидывает на код в конфигуратор.
Если конфигурация нетиповая, то тут либо обновление прошло некорректно или разработчик дорабатывавший конфигурацию не предусмотрел все возможности пользовательских ошибок - защита от дурака (если это возможно!). Если типовая, то возможно ошибка в релизе. В любом случае стоит пробежать в отладчике и посмотреть что не так. 5) Под одним пользователем дает что-то сделать, под другим нет.
6) С одного ПК заходит, с другого нет.
7) Я ничего не делал/делала но у меня все сломалось
8) Недостаточно памяти. Был у меня случай, пришел клиент, говорит, при закрытии месяца вылетает ошибка "Недостаточно памяти". Взялся я за эту проблему. Думал, что легко, сначала добавил оперативки - ошибка. Было 2 гигабайта, стало 4, а все равно 1с-ке мало. Размер файла подкачки менял - ошибка, переустановка системы (поставил Windows 7) дало только временный результат, где-то на неделю. Перепробовал все. Спустя некоторое время решение было найдено. Решение На клиентском компе запустить командную строку от имени администратора, прописать там следующее: BCDEdit /set increaseuserva xxxx - вместо хххх пишите объем виртуального адресного пространства в мегабайтах, т.е. сколько нужно памяти под работу приложений. По умолчанию 2 гига. Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС. Я выбрал 3000 (т.е. CDEdit /set increaseuserva 3000 ). Однако система может подглючивать. Особенно, если у вас 2 гига оперативки, как у меня. Это для ОС семейства Windows Vista, 7, Windows 2008. Для Windows XP \ Windows 2003 пишем 9) Элементы форм налезают друг на друга и имеют неправильное расположение.
10) Ошибка СУБД Внутренняя ошибка компоненты dbeng8
Решение: обновиться до актуального релиза на всех рабочих местах. Если не помогло, тогда делаем следующее:
11) Ошибка в платформе 8.3.4.428
12) Конфликт блокировок при выполнении транзакции:
"Как проверить (восстановить) базу на MS SQL Server средствами сервера Конечно список далеко не полный, так что буду рад, если его дополнят в комментариях. Предыдущая статья: Как разделить жесткий диск на разделы Как разбить на разделы в биосе Следующая статья: Перезаправляемые картриджи для струйных принтеров CANON, EPSON, HP Цветной лазерный мфу с перезаправляемыми картриджами О сайте | Контакты |