Меню

Что такое поток ошибок

Понятие об ошибках. Поток ошибок

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

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

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

Поскольку импульсы
на выходе регистрирующего устройства
имеют идеальный вид понять, что данный
импульс «ошибочный» по его виду
невозможно. Выявить наличие ошибок
можно только поэлементным сравнением
переданной и принятой кодовых комбинаций.
Результат этого сравнения обычно
представляют в виде двоичной
последовательности, называемой потоком
ошибок
,
которая определяется как поэлементная
сумма по модулю 2 сравниваемых двоичных
последовательностей. Например, передано
четырехбуквенное сообщение, закодированное
кодом МТК-2 (простой пятиэлементный код,
одна буква кодируется пятью двоичными
символами), содержащее 20 элементов
(рисунок а) ниже):

На рисунке б) –
сообщение, принятое приемником.

В данном примере
поток ошибок изображен на рисунке в),
он показывает наличие семи ошибок
(число ошибок определяется числом единиц
в потоке ошибок) в принятой комбинации.
На рисунке д) показано распределение
ошибок по переданным комбинациям.

Классификация ошибок

Поток ошибок
позволяет провести классификацию
ошибок.

  1. Ошибки делятся
    по виду на

— ошибки перехода
1 → 0 (на рисунке позиции №№8, 10, 11, 14);

— ошибки перехода
0 → 1 (на рисунке позиции №№12, 13, 18).

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

  1. Ошибки делятся
    по взаимному расположению ошибок в
    потоке на:

— одиночные ошибки
– ошибочный разряд, до и после которого
имеется хотя бы по одному правильно
принятому разряду. В рассматриваемом
примере это ошибочные разряды на позициях
№8 и №18;

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

смежное (
).
В приведенном примере смежная ошибка
занимает позиции с №10 по №14;

;

— пакеты
ошибок – участок потока ошибок, на
котором встречаются ошибочные и
правильные элементы, и ошибочные элементы
отделены друг от друга не более чем

(
заданное)
правильными элементами. Длиной пакета

считают число элементов от первой до
последней ошибки включительно.

3.
Ошибки делятся по их количеству в группе
на:

— кратные ошибки–
количество ошибок в комбинации
определенной длины без учета их вида.
Количественно кратная ошибка определяется
параметром

.
В рассматриваемом примере комбинация
№2 имеет ошибки кратности 2 (
),
комбинация №3 имеет ошибки кратности
4 (
)
и комбинация №4 имеют ошибки кратности
один (
);

— кратная транспозиция
– количество пар ошибок разного вида
(1 → 0 и 0 → 1) в комбинации определенной
длины. Количественно кратная транспозиция
оценивается параметром

.
В рассматриваемом примере в комбинации
№3 имеется кратная транспозиция с
параметром

.
В комбинации №2 имеется одна пара ошибок,
но обе они одинакового вида (1 → 0). Это
не кратная транспозиция.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

From Wikipedia, the free encyclopedia

This article is about standard I/O file descriptors. For System V streams, see STREAMS.

In computer programming, standard streams are interconnected input and output communication channels[1] between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console (input via keyboard, output via monitor), but standard streams abstract this. When a command is executed via an interactive shell, the streams are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline. More generally, a child process inherits the standard streams of its parent process.

Application[edit]

The standard streams for input, output, and error

Users generally know standard streams as input and output channels that handle data coming from an input device, or that write data from the application. The data may be text with any encoding, or binary data.
In many modern systems, the standard error stream of a program is redirected into a log file, typically for error analysis purposes.

Streams may be used to chain applications, meaning that the output stream of one program can be redirected to be the input stream to another application. In many operating systems this is expressed by listing the application names, separated by the vertical bar character, for this reason often called the pipeline character. A well-known example is the use of a pagination application, such as more, providing the user control over the display of the output stream on the display.

Background[edit]

In most operating systems predating Unix, programs had to explicitly connect to the appropriate input and output devices. OS-specific intricacies caused this to be a tedious programming task. On many systems it was necessary to obtain control of environment settings, access a local file table, determine the intended data set, and handle hardware correctly in the case of a punch card reader, magnetic tape drive, disk drive, line printer, card punch, or interactive terminal.

One of Unix’s several groundbreaking advances was abstract devices, which removed the need for a program to know or care what kind of devices it was communicating with[citation needed]. Older operating systems forced upon the programmer a record structure and frequently non-orthogonal data semantics and device control. Unix eliminated this complexity with the concept of a data stream: an ordered sequence of data bytes which can be read until the end of file. A program may also write bytes as desired and need not, and cannot easily declare their count or grouping.

Another Unix breakthrough was to automatically associate input and output to terminal keyboard and terminal display, respectively, by default[citation needed] — the program (and programmer) did absolutely nothing to establish input and output for a typical input-process-output program (unless it chose a different paradigm). In contrast, previous operating systems usually required some—often complex—job control language to establish connections, or the equivalent burden had to be orchestrated by the program.[citation needed]

Since Unix provided standard streams, the Unix C runtime environment was obliged to support it as well. As a result, most C runtime environments (and C’s descendants), regardless of the operating system, provide equivalent functionality.

Standard input (stdin)[edit]

Standard input is a stream from which a program reads its input data. The program requests data transfers by use of the read operation. Not all programs require stream input. For example, the dir and ls programs (which display file names contained in a directory) may take command-line arguments, but perform their operations without any stream data input.

Unless redirected, standard input is inherited from the parent process. In the case of an interactive shell, that is usually associated with the keyboard.

The file descriptor for standard input is 0 (zero); the POSIX <unistd.h> definition is STDIN_FILENO; the corresponding C <stdio.h> variable is FILE* stdin; similarly, the C++ <iostream> variable is std::cin.

Standard output (stdout)[edit]

Standard output is a stream to which a program writes its output data. The program requests data transfer with the write operation. Not all programs generate output. For example, the file rename command (variously called mv, move, or ren) is silent on success.

Unless redirected, standard output is inherited from the parent process. In the case of an interactive shell, that is usually the text terminal which initiated the program.

The file descriptor for standard output is 1 (one); the POSIX <unistd.h> definition is STDOUT_FILENO; the corresponding C <stdio.h> variable is FILE* stdout; similarly, the C++ <iostream> variable is std::cout.

Standard error (stderr)[edit]

Standard error is another output stream typically used by programs to output error messages or diagnostics. It is a stream independent of standard output and can be redirected separately.

This solves the semi-predicate problem, allowing output and errors to be distinguished, and is analogous to a function returning a pair of values – see Semi-predicate problem: Multi valued return. The usual destination is the text terminal which started the program to provide the best chance of being seen even if standard output is redirected (so not readily observed). For example, output of a program in a pipeline is redirected to input of the next program or a text file, but errors from each program still go directly to the text terminal so they can be reviewed by the user in real time.[2]

It is acceptable and normal to direct standard output and standard error to the same destination, such as the text terminal. Messages appear in the same order as the program writes them, unless buffering is involved. For example, in common situations the standard error stream is unbuffered but the standard output stream is line-buffered; in this case, text written to standard error later may appear on the terminal earlier, if the standard output stream buffer is not yet full.

The file descriptor for standard error is defined by POSIX as 2 (two); the <unistd.h> header file provides the symbol STDERR_FILENO;[3] the corresponding C <stdio.h> variable is FILE* stderr. The C++ <iostream> standard header provides two variables associated with this stream: std::cerr and std::clog, the former being unbuffered and the latter using the same buffering mechanism as all other C++ streams.

Bourne-style shells allow standard error to be redirected to the same destination that standard output is directed to using

 2>&1

csh-style shells allow standard error to be redirected to the same destination that standard output is directed to using

 >&

Standard error was added to Unix in the 1970s after several wasted phototypesetting runs ended with error messages being typeset instead of displayed on the user’s terminal.[4]

Timeline[edit]

1950s: Fortran[edit]

Fortran has the equivalent of Unix file descriptors: By convention, many Fortran implementations use unit numbers UNIT=5 for stdin, UNIT=6 for stdout and UNIT=0 for stderr. In Fortran-2003, the intrinsic ISO_FORTRAN_ENV module was standardized to include the named constants INPUT_UNIT, OUTPUT_UNIT, and ERROR_UNIT to portably specify the unit numbers.

! FORTRAN 77 example
      PROGRAM MAIN
        INTEGER NUMBER
        READ(UNIT=5,*) NUMBER
        WRITE(UNIT=6,'(A,I3)') ' NUMBER IS: ',NUMBER
      END
! Fortran 2003 example
program main
  use iso_fortran_env
  implicit none
  integer :: number
  read (unit=INPUT_UNIT,*) number
  write (unit=OUTPUT_UNIT,'(a,i3)') 'Number is: ', number
end program

1960: ALGOL 60[edit]

ALGOL 60 was criticized for having no standard file access.[citation needed]

1968: ALGOL 68[edit]

ALGOL 68’s input and output facilities were collectively referred to as the transput.[5] Koster coordinated the definition of the transput standard. The model included three standard channels: stand in, stand out, and stand back.

Example

# ALGOL 68 example #
main:(
  REAL number;
  getf(stand in,($g$,number));
  printf(($"Number is: "g(6,4)"OR "$,number)); # OR #
  putf(stand out,($" Number is: "g(6,4)"!"$,number));
  newline(stand out)
)
Input: Output:
3.14159
Number is: +3.142 OR Number is: +3.142!

1970s: C and Unix[edit]

In the C programming language, the standard input, output, and error streams are attached to the existing Unix file descriptors 0, 1 and 2 respectively.[6] In a POSIX environment the <unistd.h> definitions STDIN_FILENO, STDOUT_FILENO or STDERR_FILENO should be used instead rather than magic numbers. File pointers stdin, stdout, and stderr are also provided.

Ken Thompson (designer and implementer of the original Unix operating system) modified sort in Version 5 Unix to accept «-» as representing standard input, which spread to other utilities and became a part of the operating system as a special file in Version 8. Diagnostics were part of standard output through Version 6, after which Dennis M. Ritchie created the concept of standard error.[7]

1995: Java[edit]

In Java, the standard streams are referred to by System.in (for stdin), System.out (for stdout), and System.err (for stderr).[8]

public static void main(String args[]) {
    try {
        BufferedReader br = 
          new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        double number = Double.parseDouble(s);
        System.out.println("Number is:" + number);
    } catch (Exception e) {
        System.err.println("Error:" + e.getMessage());
    }
}

2000s: .NET[edit]

In C# and other .NET languages, the standard streams are referred to by System.Console.In (for stdin), System.Console.Out (for stdout) and System.Console.Error (for stderr).[9] Basic read and write capabilities for the stdin and stdout streams are also accessible directly through the class System.Console (e.g. System.Console.WriteLine() can be used instead of System.Console.Out.WriteLine()).

System.Console.In, System.Console.Out and System.Console.Error are System.IO.TextReader (stdin) and System.IO.TextWriter (stdout, stderr) objects, which only allow access to the underlying standard streams on a text basis. Full binary access to the standard streams must be performed through the System.IO.Stream objects returned by System.Console.OpenStandardInput(), System.Console.OpenStandardOutput() and System.Console.OpenStandardError() respectively.

// C# example
public static int Main(string[] args)
{
    try {
        string s = System.Console.In.ReadLine();
        double number = double.Parse(s);
        System.Console.Out.WriteLine("Number is: {0:F3}", number);
        return 0;

    // If Parse() threw an exception
    } catch (ArgumentNullException) { 
        System.Console.Error.WriteLine("No number was entered!");
    } catch (FormatException) {
        System.Console.Error.WriteLine("The specified value is not a valid number!");
    } catch (OverflowException) {
        System.Console.Error.WriteLine("The specified number is too big!");
    }

    return -1;
}
' Visual Basic .NET example

Public Function Main() As Integer
    Try
        Dim s As String = System.Console.[In].ReadLine()
        Dim number As Double = Double.Parse(s)
        System.Console.Out.WriteLine("Number is: {0:F3}", number)
        Return 0

    ' If Parse() threw an exception
    Catch ex As System.ArgumentNullException
        System.Console.[Error].WriteLine("No number was entered!")
    Catch ex2 As System.FormatException
        System.Console.[Error].WriteLine("The specified value is not a valid number!")
    Catch ex3 As System.OverflowException
        System.Console.[Error].WriteLine("The specified number is too big!")
    End Try

    Return -1
End Function

When applying the System.Diagnostics.Process class one can use the instance properties StandardInput, StandardOutput, and StandardError of that class to access the standard streams of the process.

2000 — : Python (2 or 3)[edit]

The following example shows how to redirect the standard input both to the standard output
and to a text file.

#!/usr/bin/env python
import sys
# Save the current stdout so that we can revert sys.stdout
# after we complete our redirection
stdin_fileno = sys.stdin
stdout_fileno = sys.stdout
# Redirect sys.stdout to the file
sys.stdout = open('myfile.txt', 'w')
ctr = 0
for inps in stdin_fileno:
    ctrs = str(ctr)
    # Prints to the redirected stdout ()
    sys.stdout.write(ctrs + ") this is to the redirected --->" + inps + 'n')
    # Prints to the actual saved stdout handler
    stdout_fileno.write(ctrs + ") this is to the actual  --->" + inps + 'n')
    ctr = ctr + 1
# Close the file
sys.stdout.close()
# Restore sys.stdout to our old saved file handler
sys.stdout = stdout_fileno

GUIs[edit]

Graphical user interfaces (GUIs) don’t always make use of the standard streams; they do when GUIs are wrappers of underlying scripts and/or console programs, for instance the Synaptic package manager GUI, which wraps apt commands in Debian and/or Ubuntu. GUIs created with scripting tools like Zenity and KDialog by KDE project[10] make use of stdin, stdout, and stderr, and are based on simple scripts rather than a complete GUI programmed and compiled in C/C++ using Qt, GTK, or other equivalent proprietary widget framework.

The Services menu, as implemented on NeXTSTEP and Mac OS X, is also analogous to standard streams. On these operating systems, graphical applications can provide functionality through a system-wide menu that operates on the current selection in the GUI, no matter in what application.

Some GUI programs, primarily on Unix, still write debug information to standard error. Others (such as many Unix media players) may read files from standard input. Popular Windows programs that open a separate console window in addition to their GUI windows are the emulators pSX and DOSBox.

GTK-server can use stdin as a communication interface with an interpreted program to realize a GUI.

The Common Lisp Interface Manager paradigm «presents» GUI elements sent to an extended output stream.

See also[edit]

  • Redirection (computing)
  • Stream (computing)
  • Input/output
  • C file input/output
  • SYSIN and SYSOUT
  • Standard streams in OpenVMS

References[edit]

  1. ^ D. M. Ritchie, «A Stream Input-Output System», AT&T Bell Laboratories Technical Journal, 68(8), October 1984.
  2. ^ «What are stdin, stdout and stderr in Linux? | CodePre.com». 2 December 2021. Retrieved 8 April 2022.
  3. ^ «<unistd.h>». The Open Group Base Specifications Issue 6—IEEE Std 1003.1, 2004 Edition. The Open Group. 2004.
  4. ^ Johnson, Steve (2013-12-11). «[TUHS] Graphic Systems C/A/T phototypesetter» (Mailing list). Archived from the original on 2020-09-25. Retrieved 2020-11-07.
  5. ^ Revised
    Report on the Algorithmic Language Algol 68, Edited by
    A. van Wijngaarden,
    B.J. Mailloux,
    J.E.L. Peck,
    C.H.A. Koster,
    M. Sintzoff,
    C.H. Lindsey,
    L.G.L.T. Meertens
    and R.G. Fisker, http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf, Section 10.3
  6. ^ «Stdin(3): Standard I/O streams — Linux man page».
  7. ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer’s Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  8. ^ «System (Java Platform SE 7)». Retrieved 20 July 2012.
  9. ^ «C# Reference Source, .NET Framework 4.7.1, mscorlib, Console class». referencesource.microsoft.com. Retrieved 2017-12-10.
  10. ^ Kißling, Kristian (2009). «Adding graphic elements to your scripts with Zenity and KDialog». Linux Magazine. Retrieved 2021-04-11.

Sources[edit]

  • «Standard Streams», The GNU C Library
  • KRONOS 2.1 Reference Manual, Control Data Corporation, Part Number 60407000, 1974
  • NOS Version 1 Applications Programmer’s Instant, Control Data Corporation, Part Number 60436000, 1978
  • Level 68 Introduction to Programming on MULTICS, Honeywell Corporation, 1981
  • Evolution of the MVS Operating System, IBM Corporation, 1981
  • Lions’ Commentary on UNIX Sixth Edition, John Lions, ISBN 1-57398-013-7, 1977
  • Console Class, .NET Framework Class Library, Microsoft Corporation, 2008

External links[edit]

  • Standard Input Definition — by The Linux Information Project
  • Standard Output Definition — by The Linux Information Project
  • Standard Error Definition — by The Linux Information Project

From Wikipedia, the free encyclopedia

This article is about standard I/O file descriptors. For System V streams, see STREAMS.

In computer programming, standard streams are interconnected input and output communication channels[1] between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console (input via keyboard, output via monitor), but standard streams abstract this. When a command is executed via an interactive shell, the streams are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline. More generally, a child process inherits the standard streams of its parent process.

Application[edit]

The standard streams for input, output, and error

Users generally know standard streams as input and output channels that handle data coming from an input device, or that write data from the application. The data may be text with any encoding, or binary data.
In many modern systems, the standard error stream of a program is redirected into a log file, typically for error analysis purposes.

Streams may be used to chain applications, meaning that the output stream of one program can be redirected to be the input stream to another application. In many operating systems this is expressed by listing the application names, separated by the vertical bar character, for this reason often called the pipeline character. A well-known example is the use of a pagination application, such as more, providing the user control over the display of the output stream on the display.

Background[edit]

In most operating systems predating Unix, programs had to explicitly connect to the appropriate input and output devices. OS-specific intricacies caused this to be a tedious programming task. On many systems it was necessary to obtain control of environment settings, access a local file table, determine the intended data set, and handle hardware correctly in the case of a punch card reader, magnetic tape drive, disk drive, line printer, card punch, or interactive terminal.

One of Unix’s several groundbreaking advances was abstract devices, which removed the need for a program to know or care what kind of devices it was communicating with[citation needed]. Older operating systems forced upon the programmer a record structure and frequently non-orthogonal data semantics and device control. Unix eliminated this complexity with the concept of a data stream: an ordered sequence of data bytes which can be read until the end of file. A program may also write bytes as desired and need not, and cannot easily declare their count or grouping.

Another Unix breakthrough was to automatically associate input and output to terminal keyboard and terminal display, respectively, by default[citation needed] — the program (and programmer) did absolutely nothing to establish input and output for a typical input-process-output program (unless it chose a different paradigm). In contrast, previous operating systems usually required some—often complex—job control language to establish connections, or the equivalent burden had to be orchestrated by the program.[citation needed]

Since Unix provided standard streams, the Unix C runtime environment was obliged to support it as well. As a result, most C runtime environments (and C’s descendants), regardless of the operating system, provide equivalent functionality.

Standard input (stdin)[edit]

Standard input is a stream from which a program reads its input data. The program requests data transfers by use of the read operation. Not all programs require stream input. For example, the dir and ls programs (which display file names contained in a directory) may take command-line arguments, but perform their operations without any stream data input.

Unless redirected, standard input is inherited from the parent process. In the case of an interactive shell, that is usually associated with the keyboard.

The file descriptor for standard input is 0 (zero); the POSIX <unistd.h> definition is STDIN_FILENO; the corresponding C <stdio.h> variable is FILE* stdin; similarly, the C++ <iostream> variable is std::cin.

Standard output (stdout)[edit]

Standard output is a stream to which a program writes its output data. The program requests data transfer with the write operation. Not all programs generate output. For example, the file rename command (variously called mv, move, or ren) is silent on success.

Unless redirected, standard output is inherited from the parent process. In the case of an interactive shell, that is usually the text terminal which initiated the program.

The file descriptor for standard output is 1 (one); the POSIX <unistd.h> definition is STDOUT_FILENO; the corresponding C <stdio.h> variable is FILE* stdout; similarly, the C++ <iostream> variable is std::cout.

Standard error (stderr)[edit]

Standard error is another output stream typically used by programs to output error messages or diagnostics. It is a stream independent of standard output and can be redirected separately.

This solves the semi-predicate problem, allowing output and errors to be distinguished, and is analogous to a function returning a pair of values – see Semi-predicate problem: Multi valued return. The usual destination is the text terminal which started the program to provide the best chance of being seen even if standard output is redirected (so not readily observed). For example, output of a program in a pipeline is redirected to input of the next program or a text file, but errors from each program still go directly to the text terminal so they can be reviewed by the user in real time.[2]

It is acceptable and normal to direct standard output and standard error to the same destination, such as the text terminal. Messages appear in the same order as the program writes them, unless buffering is involved. For example, in common situations the standard error stream is unbuffered but the standard output stream is line-buffered; in this case, text written to standard error later may appear on the terminal earlier, if the standard output stream buffer is not yet full.

The file descriptor for standard error is defined by POSIX as 2 (two); the <unistd.h> header file provides the symbol STDERR_FILENO;[3] the corresponding C <stdio.h> variable is FILE* stderr. The C++ <iostream> standard header provides two variables associated with this stream: std::cerr and std::clog, the former being unbuffered and the latter using the same buffering mechanism as all other C++ streams.

Bourne-style shells allow standard error to be redirected to the same destination that standard output is directed to using

 2>&1

csh-style shells allow standard error to be redirected to the same destination that standard output is directed to using

 >&

Standard error was added to Unix in the 1970s after several wasted phototypesetting runs ended with error messages being typeset instead of displayed on the user’s terminal.[4]

Timeline[edit]

1950s: Fortran[edit]

Fortran has the equivalent of Unix file descriptors: By convention, many Fortran implementations use unit numbers UNIT=5 for stdin, UNIT=6 for stdout and UNIT=0 for stderr. In Fortran-2003, the intrinsic ISO_FORTRAN_ENV module was standardized to include the named constants INPUT_UNIT, OUTPUT_UNIT, and ERROR_UNIT to portably specify the unit numbers.

! FORTRAN 77 example
      PROGRAM MAIN
        INTEGER NUMBER
        READ(UNIT=5,*) NUMBER
        WRITE(UNIT=6,'(A,I3)') ' NUMBER IS: ',NUMBER
      END
! Fortran 2003 example
program main
  use iso_fortran_env
  implicit none
  integer :: number
  read (unit=INPUT_UNIT,*) number
  write (unit=OUTPUT_UNIT,'(a,i3)') 'Number is: ', number
end program

1960: ALGOL 60[edit]

ALGOL 60 was criticized for having no standard file access.[citation needed]

1968: ALGOL 68[edit]

ALGOL 68’s input and output facilities were collectively referred to as the transput.[5] Koster coordinated the definition of the transput standard. The model included three standard channels: stand in, stand out, and stand back.

Example

# ALGOL 68 example #
main:(
  REAL number;
  getf(stand in,($g$,number));
  printf(($"Number is: "g(6,4)"OR "$,number)); # OR #
  putf(stand out,($" Number is: "g(6,4)"!"$,number));
  newline(stand out)
)
Input: Output:
3.14159
Number is: +3.142 OR Number is: +3.142!

1970s: C and Unix[edit]

In the C programming language, the standard input, output, and error streams are attached to the existing Unix file descriptors 0, 1 and 2 respectively.[6] In a POSIX environment the <unistd.h> definitions STDIN_FILENO, STDOUT_FILENO or STDERR_FILENO should be used instead rather than magic numbers. File pointers stdin, stdout, and stderr are also provided.

Ken Thompson (designer and implementer of the original Unix operating system) modified sort in Version 5 Unix to accept «-» as representing standard input, which spread to other utilities and became a part of the operating system as a special file in Version 8. Diagnostics were part of standard output through Version 6, after which Dennis M. Ritchie created the concept of standard error.[7]

1995: Java[edit]

In Java, the standard streams are referred to by System.in (for stdin), System.out (for stdout), and System.err (for stderr).[8]

public static void main(String args[]) {
    try {
        BufferedReader br = 
          new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        double number = Double.parseDouble(s);
        System.out.println("Number is:" + number);
    } catch (Exception e) {
        System.err.println("Error:" + e.getMessage());
    }
}

2000s: .NET[edit]

In C# and other .NET languages, the standard streams are referred to by System.Console.In (for stdin), System.Console.Out (for stdout) and System.Console.Error (for stderr).[9] Basic read and write capabilities for the stdin and stdout streams are also accessible directly through the class System.Console (e.g. System.Console.WriteLine() can be used instead of System.Console.Out.WriteLine()).

System.Console.In, System.Console.Out and System.Console.Error are System.IO.TextReader (stdin) and System.IO.TextWriter (stdout, stderr) objects, which only allow access to the underlying standard streams on a text basis. Full binary access to the standard streams must be performed through the System.IO.Stream objects returned by System.Console.OpenStandardInput(), System.Console.OpenStandardOutput() and System.Console.OpenStandardError() respectively.

// C# example
public static int Main(string[] args)
{
    try {
        string s = System.Console.In.ReadLine();
        double number = double.Parse(s);
        System.Console.Out.WriteLine("Number is: {0:F3}", number);
        return 0;

    // If Parse() threw an exception
    } catch (ArgumentNullException) { 
        System.Console.Error.WriteLine("No number was entered!");
    } catch (FormatException) {
        System.Console.Error.WriteLine("The specified value is not a valid number!");
    } catch (OverflowException) {
        System.Console.Error.WriteLine("The specified number is too big!");
    }

    return -1;
}
' Visual Basic .NET example

Public Function Main() As Integer
    Try
        Dim s As String = System.Console.[In].ReadLine()
        Dim number As Double = Double.Parse(s)
        System.Console.Out.WriteLine("Number is: {0:F3}", number)
        Return 0

    ' If Parse() threw an exception
    Catch ex As System.ArgumentNullException
        System.Console.[Error].WriteLine("No number was entered!")
    Catch ex2 As System.FormatException
        System.Console.[Error].WriteLine("The specified value is not a valid number!")
    Catch ex3 As System.OverflowException
        System.Console.[Error].WriteLine("The specified number is too big!")
    End Try

    Return -1
End Function

When applying the System.Diagnostics.Process class one can use the instance properties StandardInput, StandardOutput, and StandardError of that class to access the standard streams of the process.

2000 — : Python (2 or 3)[edit]

The following example shows how to redirect the standard input both to the standard output
and to a text file.

#!/usr/bin/env python
import sys
# Save the current stdout so that we can revert sys.stdout
# after we complete our redirection
stdin_fileno = sys.stdin
stdout_fileno = sys.stdout
# Redirect sys.stdout to the file
sys.stdout = open('myfile.txt', 'w')
ctr = 0
for inps in stdin_fileno:
    ctrs = str(ctr)
    # Prints to the redirected stdout ()
    sys.stdout.write(ctrs + ") this is to the redirected --->" + inps + 'n')
    # Prints to the actual saved stdout handler
    stdout_fileno.write(ctrs + ") this is to the actual  --->" + inps + 'n')
    ctr = ctr + 1
# Close the file
sys.stdout.close()
# Restore sys.stdout to our old saved file handler
sys.stdout = stdout_fileno

GUIs[edit]

Graphical user interfaces (GUIs) don’t always make use of the standard streams; they do when GUIs are wrappers of underlying scripts and/or console programs, for instance the Synaptic package manager GUI, which wraps apt commands in Debian and/or Ubuntu. GUIs created with scripting tools like Zenity and KDialog by KDE project[10] make use of stdin, stdout, and stderr, and are based on simple scripts rather than a complete GUI programmed and compiled in C/C++ using Qt, GTK, or other equivalent proprietary widget framework.

The Services menu, as implemented on NeXTSTEP and Mac OS X, is also analogous to standard streams. On these operating systems, graphical applications can provide functionality through a system-wide menu that operates on the current selection in the GUI, no matter in what application.

Some GUI programs, primarily on Unix, still write debug information to standard error. Others (such as many Unix media players) may read files from standard input. Popular Windows programs that open a separate console window in addition to their GUI windows are the emulators pSX and DOSBox.

GTK-server can use stdin as a communication interface with an interpreted program to realize a GUI.

The Common Lisp Interface Manager paradigm «presents» GUI elements sent to an extended output stream.

See also[edit]

  • Redirection (computing)
  • Stream (computing)
  • Input/output
  • C file input/output
  • SYSIN and SYSOUT
  • Standard streams in OpenVMS

References[edit]

  1. ^ D. M. Ritchie, «A Stream Input-Output System», AT&T Bell Laboratories Technical Journal, 68(8), October 1984.
  2. ^ «What are stdin, stdout and stderr in Linux? | CodePre.com». 2 December 2021. Retrieved 8 April 2022.
  3. ^ «<unistd.h>». The Open Group Base Specifications Issue 6—IEEE Std 1003.1, 2004 Edition. The Open Group. 2004.
  4. ^ Johnson, Steve (2013-12-11). «[TUHS] Graphic Systems C/A/T phototypesetter» (Mailing list). Archived from the original on 2020-09-25. Retrieved 2020-11-07.
  5. ^ Revised
    Report on the Algorithmic Language Algol 68, Edited by
    A. van Wijngaarden,
    B.J. Mailloux,
    J.E.L. Peck,
    C.H.A. Koster,
    M. Sintzoff,
    C.H. Lindsey,
    L.G.L.T. Meertens
    and R.G. Fisker, http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf, Section 10.3
  6. ^ «Stdin(3): Standard I/O streams — Linux man page».
  7. ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer’s Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  8. ^ «System (Java Platform SE 7)». Retrieved 20 July 2012.
  9. ^ «C# Reference Source, .NET Framework 4.7.1, mscorlib, Console class». referencesource.microsoft.com. Retrieved 2017-12-10.
  10. ^ Kißling, Kristian (2009). «Adding graphic elements to your scripts with Zenity and KDialog». Linux Magazine. Retrieved 2021-04-11.

Sources[edit]

  • «Standard Streams», The GNU C Library
  • KRONOS 2.1 Reference Manual, Control Data Corporation, Part Number 60407000, 1974
  • NOS Version 1 Applications Programmer’s Instant, Control Data Corporation, Part Number 60436000, 1978
  • Level 68 Introduction to Programming on MULTICS, Honeywell Corporation, 1981
  • Evolution of the MVS Operating System, IBM Corporation, 1981
  • Lions’ Commentary on UNIX Sixth Edition, John Lions, ISBN 1-57398-013-7, 1977
  • Console Class, .NET Framework Class Library, Microsoft Corporation, 2008

External links[edit]

  • Standard Input Definition — by The Linux Information Project
  • Standard Output Definition — by The Linux Information Project
  • Standard Error Definition — by The Linux Information Project

миниатюра Ошибка формата потока

Ошибка формата потока 1С Предприятие — одна из самых распространенных ошибок, возникающих при работе с 1С программами. Из публикации вы узнаете, как исправляется ошибка формата потока 1С Предприятие 8.3 без обращения к администраторам или партнерам 1С, проверенными на практике способами.

Работаешь в программе 1С, все замечательно, а тут неизвестно из-за чего появилась небольшая форма с уведомлением «Ошибка формата потока» и с вариантами «Завершить работу» в программе или «Перезапустить» программу. Перезапуск, естественно, ни к чему не приводит, ошибка появляется снова…

Я описал ваш случай? Не огорчайтесь! Вы не первый пользователь 1С у кого эта ошибка появилась, и, уверен, что не последний. За время работы с 1С программами выработался алгоритм исправления этой ошибки, которым я хочу поделиться в этой публикации. Поэтому, читайте и исправляйте эту 1С «занозу»! Итак…

…из публикации вы узнаете:

  1. Почему возникает ошибка формата потока 1С Предприятие 8.3
  2. Эффективный способ исправить ошибку файловых баз 1С Предприятие 8.3
  3. Стандартные шаги по исправлению ошибки формата потока 1С Предприятие 8.3
  4. Нестандартные способы исправить ошибку формата потока 1С Предприятие 8.3
  5. Ещё пара способов исправить ошибку формата потока 1С Предприятие 8.3

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

Почему возникает ошибка формата потока 1С Предприятие 8.3

Что бы выяснить причины появления ошибки формата потока 1С 8.3 необходимо рассмотреть область данных 1С платформы. Тут хотелось бы отметить, что платформа 1С во время работы использует:

  • жесткий диск, на который во время работы платформы 1С сохраняются временные файлы настроек, логи, сервисная и пользовательская информация;
  • сеть (в случае сетевой работы), по средствам которой происходит обмен пакетами данных с другими компьютерами или серверами сети (в случае клиент-серверного варианта работы 1С Предприятие).

Причем, платформа 1С Предприятие использует указанные ресурсы постоянно.

Монитор ресурсов при работе 1С Предприятие 8

А теперь представьте, что произошел скачек электричества, поэтому часть сетевого пакета исказилась и была записана в некорректной форме или отключили электричество и данные, которые писались в кеш 1С записались частично, что в этом случае произойдет?

Правильно! При попытке прочитать эти данные и их обработать, 1С не сможет их «прожевать» и выплюнет с «ошибкой формата потока». Вот такой «верблюд» получился и у вас. Давайте рассмотрим, что можно с этим сделать.

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

Эффективный способ исправить ошибку формата потока 1С Предприятие 8.3 для файловых баз данных 1С

Если вы работая в файловой версии 1С Предприятие, стали жертвой этой напасти, то хочу предложить способ от её избавления, работающий в 78% случаев.

  • Для этого необходимо зайти в каталог, где хранится база данных 1С Предприятие 8.3 и удалить все файлы и папки, КРОМЕ ФАЙЛА ДАННЫХ 1Cv8.CD. Операция требует сноровки, поэтому будьте осторожны, не переборщите с удалением!  🙂

Путь до каталога базы данных 1С Предприятие 8.3 вы можете посмотреть при запуске программы — он будет расположен внизу окна запуска 1С Предприятие 8.3.

Ошибка формата потока 1С Предприятие 8.3 - удалить файлы из папки с базой данных

По поводу удаленных файлов не переживайте — это все служебные файлы, которые будут созданы заново в правильном формате при следующем запуске 1С Предприятие 8.3.

  • Если предложенный способ не помог, то для исправления файловых баз в 1С Предприятие 8.3 предусмотрена утилита chdbfl.exe. Проверьте структуру вашей базы, воспользовавшись этой утилитой.

Ошибка формата потока 1С 8.3 не исчезла? Плохо! Читаем дальше.

Стандартные шаги по исправлению ошибки формата потока 1С Предприятие 8.3

Если указанные выше рекомендации не помогли в исправлении ошибки формата потока 1С или если у вас клиент-серверная база данных 1С, то следующими шагами исправления будут стандартные операции, возникающие при любых ошибках:

  • Очистка кеша 1С Предприятие 8.3
  • Тестирование и исправление информационной базы 1С Предприятие 8.3

На эти темы были написаны подробные публикации, поэтому тут мне добавить нечего. Читайте статьи и делайте всё в точности по написанному.

Если после проделанных с базой манипуляций «ошибка формата потока» все равно появляется, в этом случае пробуйте ещё один проверенный способ:

  • выгрузите вашу базу с файл *.dt, создайте пустую базу 1С и загрузите в неё выгруженный до этого файл *.dt. В выполнении этой операции вам поможет статья про резервное копирование базы 1С Предприятие 8.3.

На этом шаге исправить ошибку формата потока 1С Предприятие 8.3 получается в 94% случаев. Но что делать есть не спало???

Нестандартные способы исправить ошибку формата потока 1С Предприятие 8.3

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

  • Пробуйте загрузить файл *.dt в новой базе данных, созданной на другом компьютере. Этим вы исключите вероятность некорректно работающего железа или программ компьютера, где находится база.
  • Удалите (именно УДАЛИТЕ через Установку и удаление программ) платформу 1С и установите заново, желательно новейшую версию. Исключаем некорректно работающие исполняемые файлы платформы, которые могли быть подпорчены вирусами или «посыпавшимися» секторами жесткого диска или другими способами.
  • Обновите конфигурацию на следующий релиз или загрузите текущую конфигурацию из файла *.cf с полным замещением объектов.
  • Отключите брандмауэр и антивирусы. Существует вероятность, что исполняемый файл был замечен в подозрительной активности антивирусом и помещен в карантин или остался под жестким контролем с блокировкой «опасных» действий. В любом случае — исключаем вариант карантина антивирусов.
  • Удалите временные файлы на компьютере. Они находятся в нескольких местах:
  1. В профиле пользователя, для поиска введите %Temp% в адресной строке проводника.
  2. В папке C:WindowsTemp
  3. Иногда на диске C:Temp
  • Ещё один способ был однажды применен, когда ничто не помогало — создали полный начальный образ базы данных и потом отвязали его от РИБ, сделав независимым. Получили ту же базу, пропустив начальную через механизмы РИБ (как через мясорубку 🙂 ) .

Ещё пара способов исправить ошибку формата потока 1С Предприятие 8.3

Есть ещё пара способов с хакерским подходом:

  • загрузить файл *.dt в клиент-серверную базу данных (если база с ошибкой формата потока клиент-серверная, то делаем на ней, предварительно сделав копию) и очистить файл от всех записей в таблице «configsave» через программную консоль.
  • в утилите Tool_1CD есть проверка формата потока. Скачайте эту утилиту и проверяйте поток.

Описанные в публикации способы исправления ошибки формата потока были проверены на практике — работают!

Надеюсь, что ничего не забыл. Если вдруг всплывет в памяти что-то ещё, то обязательно дополню публикацию.

Всем читателям отличного настроения! Пусть ошибка формата потока вас обходит стороной!!!  😉

Если вам что-то не понятно в вопросе как исправляется ошибка формата потока 1С:Предприятие 8.3, то вы можете задать вопрос в комментариях к статье или на форуме сайта.
Что бы не потерять статью в просторах интернета — сохраните её к себе в социальные сети или в закладки.

Привет, сегодня поговорим про потоки событий, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое
потоки событий, flow of events , настоятельно рекомендую прочитать все из категории Технологии компьютерного проектирования.

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

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

Поток событий (flow of events)– это определенная последовательность действий, которая описывает действия актеров и поведение моделируемой системы в форме обычного текста.

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

Потоки событий бывают трех типов: основной, альтернативный и поток ошибок.

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

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

Поток ошибок рассматривается как отклонение от альтернативного или основного, которое порождает условия формирования ошибки.

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

Поток событий состоит из:

  • Предусловия
  • Основного потока событий
  • Под-потоки (если они необходимы)
  • Альтернативных потоков
  • Постусловия

5. Потоки событий  в UML

Пример. Опишем потоки событий прецедента Заказ товаров.

Основной поток событий.

  • 1.Прецедент начинается с выбора покупателем режима показа каталога.
  • 2.Система открывает каталог.
  • 3.Покупатель выбирает режим показа корзины.

А1. Покупатель просматривает каталог и запускает поток «добавление товара в корзину»

  • 4.Система открывает корзину.
  • 5.Покупатель нажимает кнопку «оформить заказ».

А2. Покупатель просматривает корзину и запускает поток «изменение корзины».

А3. Покупатель решает вернуться в каталог.

  • 6.Система переходит к первому шагу оформления заказа: запрашивает у покупателя личные данные и телефон.
  • 7.Покупатель вводит личные данные и телефон.
  • 8.Система переходит ко второму шагу оформления заказа: показывает содержимое заказа и просит подтвердить заказ.
  • 9.Покупатель подтверждает заказ.

А4. Покупатель возвращается в корзину.

  • 10.Система переходит к третьему шагу оформления заказа: запрашивает тип кредитной карты, ее номер, секретный код, имя владельца и дату завершения срока действия.
  • 11.Покупатель вводит тип кредитной карты, ее номер, секретный код, имя владельца и дату завершения срока действия.
  • 12.Система переходит к четвертому шагу оформления заказа: подтверждает оплату.

А5. Счет пользователя не найден. А6. Недостаточно денег на счете. Е1. Платежная система недоступна.

  • 13.Система присваивает заказу номер и отправляет его вместе сподтверждением заказа на электронный адрес покупателя.
  • 14.Вариант использования завершается.

Альтернативные потоки.

А1. добавление товара в корзину

  • 1.Покупатель выбирает размер.
  • 2.Покупатель выбирает количество.
  • 3.Покупатель нажимает кнопку Добавить в корзину
  • 4.Система помещает выбранный товар в корзину.

А7. Покупатель не выбрал размер.

А8. Покупатель не выбрал количество.

  • 5.Система выводит сообщение о том, что товар добавлен в корзину.
  • 6.Поток возвращается на второй этап основного потока.

А2. Изменение корзины

  • 1. Покупатель нажимает кнопку «Удалить» напротив одного выбранного товара.

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

  • 2.Система удаляет товар из корзины.
  • 3.Поток возвращается к этапу 4 основного потока.

А3. Покупатель решает вернуться в каталог

  • 1. Поток возвращается к этапу 2 основного потока.

А4. Покупатель возвращается в корзину

  • 1.Поток возвращается к этапу 4 основного потока.

А5. Счет пользователя не найден

  • 1.Система выводит сообщение о том, что счет пользователя не обнаружен.
  • 2.Поток возвращается к этапу 11 основного потока.

А6. Недостаточно денег на счете

  • 1. Система выводит сообщение о том, что на счете пользователя недостаточно денег для совершения операции.
  • 2.Поток возвращается к этапу 11 основного потока.

А7 . Об этом говорит сайт https://intellect.icu . Покупатель не выбрал размер

  • 1.Система выводит сообщение о необходимости выбора размера.
  • 2.Поток возвращается на 1 этап потока А1.

А8. Покупатель не выбрал количество

  • 1. Система выводит сообщение о необходимости выбора количества товара.
  • 2. Поток возвращается на 2 этап потока А1.

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

  • 1.Покупатель увеличивает количество товара.
  • 2.Система обновляет корзину.

А10. Недостаточно товара в наличии.

  • 3. Поток возвращается к этапу 4 основного потока.

А10. Недостаточно товара в наличии

  • 1.Система выводит сообщение о том, сколько позиций может заказать покупатель.
  • 2.Поток возвращается к этапу 4 основного потока.

Потоки ошибок.

Е1. Платежная система недоступна

  • 1.Система выводит сообщение о недоступности платежной системы.
  • 2.Поток возвращается к этапу 11 основного потока.

Пример 2 описания варианта использования

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

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

Основной поток событий

Основной поток событий

Действия исполнителя

Отклик системы

Покупатель подходит к кассе с товарами

Кассир вводит информацию о каждом товаре

3

Определяет цену товара. Выводит описание товара и цену.

Кассир сообщает системе, что информация введена

5

Вычисляет и выводит общую стоимость покупки

Кассир сообщает покупателю общую стоимость покупки

Покупатель выбирает тип платежа

Оплата наличными

Оплата по кредитной карточке

Оплата чеком

Основной поток событий

8

Регистрирует сделанную покупку

9

Обновляет сведения о наличии и количестве товара

10

Выдает чек

Кассир выдает чек покупателю

Покупатель уходит с покупками

Под-поток событий

Под-поток 7.1 “Оплата наличными”

Действия исполнителя

Отклик системы

Покупатель дает деньги

Кассир вводит полученную сумму

3

Показывает сумму сдачи

Кассир кладет деньги в кассу, извлекает сдачу и отдает ее покупателю

Под-поток 7.2 “ Оплата по кредитной карточке ”

Действия исполнителя

Отклик системы

Покупатель дает карточку

Кассир вставляет карточку в считывающее устройство

Покупатель вводит пароль доступа

5

Проверяет пароль

Кассир вводит стоимость покупки

6

Снимает деньги с карточки и выдает чек

Кассир возвращает карточку покупателю и просит покупателя расписаться на чеке

Покупатель расписывается на чеке

Под-поток 7.3 “ Оплата чеком”

Действия исполнителя

Отклик системы

Покупатель выписывает чек на нужную сумму

Кассир вводит в систему данные чека

3

Проверяет чек

Альтернативные потоки

7.1.1. У покупателя нет наличных денег

Действия исполнителя

Отклик системы

Покупатель отменяет всю или часть покупки

Покупатель выбирает новый метод платежа

7.1.4. В кассе нет сдачи

Действия исполнителя

Отклик системы

Кассир запрашивает недостающую сумму у старшего кассира

Кассир просит покупателя более мелкие купюры

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

См. также

  • диаграмма вариантов использования , use case diagram , диаграмма прецедентов , структурирование прецедентов ,

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

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

1с ошибка формата потока

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

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

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

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

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

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

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

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

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

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

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

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

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

Данный способ подробно был рассмотрен в нашей статье “Как очистить Кэш в 1С”. Вкратце напомним. Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу C:UsersUsernameAppDataRoaming1C и C:UsersUsernameAppDataLocal1C в папках, начинающихся с «1cv8». В Windows XP, в папке пользователя по адресу Local SettingsApplication Data1C. Если папка AppData не видна — настройте видимость скрытых папок. Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами (в нашем случае файл всего один). Для очистки кэша нужно удалить эти папки.

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

очистить ошибку формата потока обновлением кэш

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

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

конфигуратор ошибка формата потока

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

ошибка загрузки информационной базы ошибка формата потока

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

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

при загрузке базы 1с ошибка формата потока

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

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

ошибка формата потока данных исправление через базу данных

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

отчет ошибка формата потока5. Выгрузить и загрузить данные XML.

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

платформа 1с предприятие 8.3 ошибка формата потока6.Обновление 1С

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

ошибка формата потока при обновлении7. Другие способы

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

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Что такое проверка диска на ошибки
  • Что такое потенциальная ошибка