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

Но, что делать в случае с 1С? Если в 1С Предприятие подобный функционал?

В 1С есть возможность выполнения кода при запуске и остановке приложения. Она реализована в виде специальных событий обработка которых доступна в модуле управляемого приложения.

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

Если в режиме конфигуратора щёлкнуть правой кнопкой мыши на корне конфигурации и выбрать в открывшемся меню пункт «Открыть модуль управляемого приложения», откроется стандартное окно для редактирования кода, в котором содержится код вышеназванного модуля.

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

1С (Код)

Процедура ПередНачаломРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриНачалеРаботыСистемы() // Делаем что-то КонецПроцедуры Процедура ПередЗавершениемРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриЗавершенииРаботыСистемы() // Делаем что-то КонецПроцедуры

Обратите внимание!

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

Процедура ПередЗавершениемРаботыСистемы принимает единственный параметр – «Отказ» (булево, значение по умолчанию «ложь»). Этот параметр определяет отмену завершения работы конфигурации. То есть, если перед завершением работы выполняются некоторые проверки и их результаты неудовлетворительны, можно отменить завершение работы просто присвоив параметру «Отказ» значение «истина».

Параметр «Отказ» в процедуре ПередНачаломРаботыСистемы, имеет аналогичное назначение. Если ему присвоить значение «истина», приложение просто не запустится.

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

Ограничения

  • Весь код размещённый в модуле управляемого приложения работает только на стороне клиента. Поэтому, если при обработке вышеперечисленных событий необходимо обратиться к серверу, то для этих целей следует создать отдельный общий модуль и установить в его настройках работу на стороне сервера и доступность для вызова сервера на стороне клиента (то есть в свойствах установить флажки «Сервер» и «Вызов сервера»).
  • Также не рекомендуется при запуске и завершении приложения выполнять громоздкие операции. И дело здесь не только в увеличении времени обработки событий вследствие больших объёмов данных или сложности алгоритмов. Модуль управляемого приложения компилируется при запуске программы. Поэтому, чем больше он загружен функционалом, тем дольше приложение будет запускаться.
    Подобные операции лучше выполнять по запросу во время работы или в регламентных заданиях.

Одной из самых неприятнейших встречающихся ошибок при работе с 1С 8.3 или 8.2 является «Ошибка формата потока». Причин ее появления может быть множество и их не всегда легко установить. При этом окно уведомления об ошибке далеко не эталон информативности.

Первым делом попробуйте подумать над тем, что же всё-таки могло привести к данной неполадке.

Наиболее распространенные причины

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

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

Как исправить ошибку формата потока

  1. Первым делом попробуйте . Если на одном компьютере программа работает нормально, а на другом появляется ошибка формата потока, то, скорее всего этот способ именно для вас.
  2. В том случае, если очистка кэша не помогла, попробуйте открыть информационную базу в режиме конфигуратора и запустите .
  3. Если вам не удалось зайти в конфигуратор, но база файловая – воспользуйтесь ChDBFl.exe. Данная утилита является аналогом тестирования и исправления ошибок в конфигураторе, но более простым.
  4. Убедитесь, что все текущие пользователи данной информационной базы используют одинаковую версию платформы. Если версии различаются, то установите всем актуальные.
  5. Если 1С запускается в режиме «Предприятие», то выгрузите все данные при помощи универсальной выгрузки/загрузки в новую базу.
  6. Отключите, а при необходимости удалите все фаерволы и антивирусы.
  7. Если данная информационная база клиент – серверная, то проверьте, хватает ли дискового пространства на сервере в папке для хранения временных данных.
  8. Удалите платформу 1С (через панель управления) и установите заново.
  9. Если информационная база открывается в конфигураторе, попробуйте выгрузить ее в файл *.dt и загрузить в пустую.
  10. Воспользоваться HEX-редактором, заменив содержимое чистой базы содержимым той, в которой произошла ошибка.

Если все эти способы вам не помогли, что маловероятно, то тут только бубен в помощь или квалифицированный специалист.

Причин возникновения таких ошибок может быть множество. Первое, что имеет смысл делать в случае возникновения таких ошибок — определиться с источником проблемы.

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

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

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

В дальнейшем, если вы не справитесь с ошибкой самостоятельно, вам надо будет объяснить природу её появления специалисту, соответственно, эти вопросы возникнут в любом случае.

Есть целый ряд ошибок, возникающих при использовании нелицензионного программного обеспечения (как продуктов «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С:Предприятие в любой конфигурации хотя бы раз видел перед глазами окно с ошибкой «Ошибка формата потока».

Данное окно входит в ТОП-3 самых распространенных ошибок 1С:Предприятие. Оно неприятно из-за своей не информативности. Непонятно: где, в чем ошибка? Естественной реакцией будет нажатие кнопки «Перезапустить», но с высокой вероятностью можно утверждать, что перезапуск проблему не устранит, и пользователь снова увидит данное окно.

В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.

Почему 1С 8 пишет «Ошибки формата потока»?

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

Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.

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

Виды ошибки формата потока

Условно ошибку формата потока 1С можно поделить на 2 вида:

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

В зависимости от вида ошибки можно выбрать наиболее подходящий вариант ее устранения. Но можно использовать и все способы по очереди, пока один из них не сработает. Способы не нанесут вреда вашей базе 1С 8. Впрочем, если действовать как настоящий профессионал – стоит сначала сделать бэкап, а уже потом бороться с “Ошибкой формата потока”.

Как устранить “Ошибку формата потока”?

Рассмотрим ТОП способов решения:

1. Почистить кэш 1С

Данный способ подробно был рассмотрен в нашей статье “ ”. Вкратце напомним. Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу C:\Users\Username\AppData\Roaming\1C и C:\Users\Username\AppData\Local\1C в папках, начинающихся с «1cv8». В Windows XP, в папке пользователя по адресу Local Settings\Application Data\1C\. Если папка AppData не видна – настройте видимость скрытых папок. Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами (в нашем случае файл всего один). Для очистки кэша нужно удалить эти папки.

Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.

2. Запустить тестирование и исправление 1С

В режиме конфигуратора нужно кликнуть по пункту меню “Администрирование” и затем “Тестирование и исправление”.

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

3. Запуск«chdbfl.exe»

Если нет возможности зайти в конфигуратор, тогда запустите программу «chdbfl.exe», которая находится: «C:\Program Files (x86)\1cv8\8.3……\bin» . Выберите файл Базы Данных, отметьте галочкой “Исправлять обнаруженные ошибки” и нажмите кнопку “Выполнить”. Дальше система все сделает за вас. Система сама проверит базу, найдет ошибки и исправит их. Во время работы программы «chdbfl.exe» не должно быть активных сеансов работы с 1С.

4. Выгрузить и загрузить информационную базу в.dt

В режиме конфигуратора выберите пункт меню “Администрирование” и кликните “Выгрузить информационную базу”. После этого выберите место куда хотите сохранить файл базы (.dt), задайте файлу имя и нажмите “Сохранить”.

После этого создайте новую пустую базу у себя на компьютере (либо на сервере). Зайдите в конфигуратор новой базы, нажмите “Администрирование”, затем “Загрузить информационную базу”. Выберите подготовленный ранее файл и нажмите “Открыть”.


5. Выгрузить и загрузить данные XML.

Данный способ может повлечь потерю данных, поэтому его рекомендуется использовать только опытным пользователям. Способ схож с предыдущим и заключается в том, что сначала база выгружается, (только не в.dt, как в предыдущем способе, а в специальный формат.XML). Затем база загружается обратно. Делается это с помощью встроенной обработки “Выгрузка и загрузка данных XML”.


6.Обновление 1С

Причиной рассматриваемой ошибки может стать наличие активных сеансов пользователей, работающих в разных версиях . Например, в базе есть активный сеанс пользователя с платформой 1С 8.3.5…., а пытается подключиться другой, с версией 8.3.4…. Если на компьютере установлены несколько версий – убедитесь, что в окне редактирования информационной базы выбрана нужная вам “правильная” версия.


7. Другие способы.

В 99% случаев вышеописанные способы борьбы с “Ошибкой формата потока” эффективно сделают свою работу и ошибка “уйдет”. В оставшемся 1% придется применять более сложную диагностику, иногда выходящую за рамки 1С, например: почистить временные файлы компьютера, а не только кэш 1С; проверить жесткий диск на битые сектора при помощи утилиты “chkdsk.exe”; проверить компьютер антивирусом. Можно даже попробовать запустить базу 1С на другом компьютере и таким образом локализовать проблему, убедившись, что ошибка кроется именно в информационной базе, а не в железе и не в Операционной Системе.

Данная статья создана в помощь столкнувшимся с ошибкой 1С “Ошибка формата потока”, здесь были рассмотрены и объяснены причины ее появления, её условные виды и способы устранения. Ошибка выглядит страшно и непонятно из-за своей неопределенности, но, как видим, устранить данную ошибку по силам каждому.