ДокументОбъект.<Имя документа>.Прочитать

Методы · Read

Считывает данные документа из базы данных.

Синтаксис

Прочитать()

Примеры платформы

РасходнаяНакладная.Прочитать();
Полное описание, параметры и ограничения

ДокументОбъект.<Имя документа>.Прочитать (DocumentObject.<Document name>.Read)

ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)

Прочитать (Read)

Доступен, начиная с версии 8.0.

Синтаксис:
Прочитать()
Описание:

Считывает данные документа из базы данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

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

РасходнаяНакладная.Прочитать();

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Изменить заявку в памяти и повторным чтением отменить несохранённые правки

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

Где и как запускать

Полный серверный модуль новой собственной Учебная85, точная 8.5.1.1343. Непроводимая заявка; временные собственные записи только с отменой транзакции. Код здесь не запускался.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  6. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

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

  8. У своего документа и товара модули пустые, подписок, расширений и внешних обработчиков нет. История данных выключена; проведение УчебнаяЗаявка запрещено, движения/регистры не создаются.

  9. Номер заявки здесь строковый длиной 9, с автонумерацией. Для иной числовой нумерации нельзя копировать проверки Строка. Дата задаётся собственным литералом, не читается из рабочего документа.

  10. Свойства ссылки readonly. Непустой UUID/ссылка не означает наличие записи, а ВерсияДанных — непрозрачная строка, не номер документа или версия конфигурации.

  11. Примеры здесь не запускались в 1С. Только код и установленная справка 8.5.1.1343; ваши документы не создавались, не проводились и не удалялись.

  12. Создайте серверный общий модуль УчебныеСсылкиДокументов и вставьте весь модуль одного урока. ВыполнитьПример() Экспорт вызывайте из своей процедуры формы с &НаСервереБезКонтекста; обновите конфигурацию БД.

  13. Для этого блока корень Учебная85, единственный справочник УчебныеТовары, единственный непроводимый документ УчебнаяЗаявка; регистров нет. Модули объекта/менеджера и подписки пустые, история выключена, расширений, обменов и фоновых заданий нет.

  14. Запускайте полный модуль одного урока отдельно, единственным пользователем. Нельзя заменять проверки имени/схемы рабочими объектами или передавать документ, найденный по первой строке.

  15. Уроки с записью/пометкой/удалением сами создают новый товар и новую заявку внутри своей транзакции, отслеживают только их ссылки и отменяют всё при успехе/ошибке. Фиксации нет; не вызывайте их внутри чужой транзакции.

  16. Уроки черновика/времени/макета вообще не записывают документы. Все помощники и подготовленные данные предоставлены в полном модуле, внешняя библиотека не нужна.

  17. Прямое Удалить не проверяет ссылочную целостность; откат учебной транзакции не делает этот метод безопасным для рабочего документа. Допустима только своя новая пустая база без внешних обработчиков. Здесь 1С не запускалась.

Процедура ВыполнитьПример() Экспорт
    
    Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
    КонецЕсли;
    Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте собственную УчебнаяЗаявка";
    КонецЕсли;
    Если Метаданные.Справочники.Количество() <> 1
        Или Метаданные.Документы.Количество() <> 1
        Или Метаданные.РегистрыНакопления.Количество() <> 0
        Или Метаданные.РегистрыСведений.Количество() <> 0
        Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Тогда
        ВызватьИсключение "Нужны только собственные товар и непроводимая заявка, без регистров";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Не запускайте урок внутри чужой транзакции";
    КонецЕсли;
    СозданныеСсылки = Новый Массив;
    НачатьТранзакцию();
    Попытка
        Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
        Товар.Наименование = "Собственная книга заявки";
        Товар.Артикул = "DOC-OWN-01";
        Товар.Цена = 250;
        Товар.УстановитьНовыйКод("У");
        Товар.Записать();
        СозданныеСсылки.Добавить(Товар.Ссылка);
        Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
        Заявка.Дата = Дата(2026, 10, 6, 12, 0, 0);
        Заявка.Комментарий = "Собственный источник копии";
        Первая = Заявка.Товары.Добавить();
        Первая.Товар = Товар.Ссылка;
        Первая.Количество = 3;
        Первая.Цена = 250;
        Вторая = Заявка.Товары.Добавить();
        Вторая.Товар = Товар.Ссылка;
        Вторая.Количество = 1;
        Вторая.Цена = 50;
        Заявка.УстановитьНовыйНомер("У");
        Заявка.Записать(РежимЗаписиДокумента.Запись);
        СозданныеСсылки.Добавить(Заявка.Ссылка);
        Читаемая = Заявка.Ссылка;
        Объект = Читаемая.ПолучитьОбъект();
        Если Объект = Неопределено Или Объект.ЭтоНовый() Тогда
            ВызватьИсключение "Собственная запись не получена для повторного чтения";
        КонецЕсли;
        Сообщить(Не Объект.Модифицированность());
        ВерсияДо = Объект.ВерсияДанных;
        Сообщить(ТипЗнч(ВерсияДо) = Тип("Строка"));
        Объект.Комментарий = "Несохранённое изменение только в памяти";
        Объект.Товары.Получить(0).Количество = 9;
        Сообщить(Объект.Модифицированность());
        ИзБазы = Читаемая.ПолучитьОбъект();
        Если ИзБазы = Неопределено Тогда
            ВызватьИсключение "Нельзя проверить собственный сохранённый источник";
        КонецЕсли;
        Сообщить(ИзБазы.Комментарий = "Собственный источник копии");
        Сообщить(ИзБазы.Товары.Получить(0).Количество = 3);
        Объект.Прочитать();
        Сообщить(Объект.Комментарий = "Собственный источник копии");
        Сообщить(Объект.Товары.Количество() = 2);
        Сообщить(Объект.Товары.Получить(0).Количество = 3);
        Сообщить(Объект.Товары.Получить(1).Количество = 1);
        Сообщить(Не Объект.Модифицированность());
        Сообщить(ТипЗнч(Объект.ВерсияДанных) = Тип("Строка"));
        Сообщить("Локальные несохранённые изменения заменены собственными сохранёнными данными");
        ОтменитьТранзакцию();
    Исключение
        Если ТранзакцияАктивна() Тогда
            ОтменитьТранзакцию();
        КонецЕсли;
        ВызватьИсключение;
    КонецПопытки;
    Сообщить(Не ТранзакцияАктивна());
    Для Каждого СозданнаяСсылка Из СозданныеСсылки Цикл
        Сообщить(СозданнаяСсылка.ПолучитьОбъект() = Неопределено);
    КонецЦикла;
КонецПроцедуры

Разбор по шагам

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

  2. Получить объект по своей ссылке, исключить новый/отсутствующий объект.

  3. Прочитать непрозрачную строку ВерсияДанных, не декодировать её и не присваивать.

  4. Изменить комментарий и количество первой строки только в памяти; Модифицированность становится Истина.

  5. Новый объект по той же ссылке содержит сохранённые комментарий и количество 3, не локальные 9.

  6. Прочитать заново заменяет локальные изменения: две строки снова имеют количества 3 и 1, модифицированность Ложь.

  7. Отменить создание обоих собственных исходников; никаких реальных чужих изменений этим опытом не проверялось.

Как проверить результат

  1. Проверки локального изменения и сохранённого источника Истина.

  2. После повторного чтения исходный комментарий, две строки, количества 3/1 и немодифицированность подтверждены.

  3. ВерсияДанных проверена только на Строка, не на заданный номер или изменение значения.

  4. После отката обе собственные ссылки не имеют записей.

Ожидаемый результат

Разобрано различие локального состояния, сохранённых данных и повторного чтения без сохранения исправленного черновика.

На что обратить внимание

  1. Непустая ссылка не доказывает существование записи; плановую ссылку не читать как сохранённый документ.

  2. Модифицированность относится к локальным изменениям объекта после чтения, не к изменениям другими пользователями. ВерсияДанных — непрозрачная readonly-строка.

  3. Заблокирован относится к блокировке именно этим объектом языка; это не общий индикатор всех блокировок записи. Собственную явную блокировку освобождайте отдельно, не рассчитывайте только на откат.

  4. Пометка не удаляет запись, а прямое Удалить удаляет сразу без проверки ссылок. Если документ проведён, установка пометки отменяет проведение; модифицированный объект перед пометкой вызывает ошибку.

  5. Статические проверки по справке и тексты контрольных условий не являются выполнением BSL в 1С.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.