Тип: ДокументыМенеджер. Используется для доступа к определенным в конфигурации документам.
Полное описание, параметры и ограничения
Глобальный контекст.Документы (Global context.Documents)
Глобальный контекст (Global context)
Документы (Documents)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: ДокументыМенеджер.
Используется для доступа к определенным в конфигурации документам.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ДокументыМенеджер
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Составить две незаписанные проводки и понять смысл Итог
Дебет и кредит находятся в одной записи регистра с корреспонденцией. Сумма 800 — сумма двух строк, не остаток счёта по базе.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Сообщить(Набор.Количество() = 2);
Сообщить(Набор.Итог("Сумма") = 800);
Для Каждого Запись Из Набор Цикл
Сообщить(Запись.СчетДт = СчетДебета И Запись.СчетКт = СчетКредита);
Сообщить(Запись.Регистратор = СвояСсылка);
Сообщить(ТипЗнч(Запись.МоментВремени()) = Тип("МоментВремени"));
Сообщить("Номер незаписанной строки: " + Строка(Запись.НомерСтроки));
Сообщить("Уточнение периода: " + Строка(Запись.УточнениеПериода));
КонецЦикла;
Сообщить(Набор.Метаданные().Имя = "УчебныеПроводки85");
Сообщить(Набор.Метаданные().Корреспонденция);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
СвояСсылка создаётся для нового UUID, документ не записывается. Набор и две проводки живут в памяти.
Заполнить обе стороны каждой проводки собственными предопределёнными счетами, суммы 750 и 50.
Итог("Сумма") складывает 750+50. У корреспондирующей записи нет отдельного ВидДвижения Дебет/Кредит как у одностороннего регистра.
Прочитать момент времени, номер строки и уточнение периода. Номер в памяти не используется как доказательство существования записи в базе.
Сопоставить реальное описание регистра с собственной схемой.
Как проверить результат
Десять булевых сообщений Истина и четыре фактических сообщения о номерах и уточнениях двух строк.
Ни собственный документ, ни эти 800 в базу не записаны; это не отчёт о бухгалтерских остатках.
Ожидаемый результат
Есть две законченные проводки в памяти и проверка структуры корреспонденции.
На что обратить внимание
Не вычисляйте бухгалтерский остаток только Итог("Сумма"): нужны активность, счёт, направление, период и реально записанные данные.
НомерСтроки и УточнениеПериода записи только читаются. Уточнение доступно здесь потому, что в собственной схеме его длина 3.
Урок не моделирует НДС, себестоимость или правила реального плана счетов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Вставить собственную проводку и переместить её по индексу и по записи
Индекс — позиция коллекции с нуля, не сохранённый номер строки регистра. Все удаления затрагивают только свой незаписанный набор.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Вставленная = Набор.Вставить(1);
ЗаполнитьСвоюПроводку(Вставленная, СвояСсылка, СчетДебета, СчетКредита, 60);
Сообщить(ТипЗнч(Вставленная) = Тип("РегистрБухгалтерииЗапись.УчебныеПроводки85"));
Сообщить(Набор.Количество() = 3 И Набор.Итог("Сумма") = 860);
Сообщить(Набор.Индекс(Вставленная) = 1);
Набор.Сдвинуть(Вставленная, -1);
Сообщить(Набор.Получить(0) = Вставленная);
Набор.Сдвинуть(0, 2);
Сообщить(Набор.Индекс(Вставленная) = 2);
Набор.Удалить(Вставленная);
Сообщить(Набор.Количество() = 2 И Набор.Итог("Сумма") = 800);
Набор.Удалить(1);
Сообщить(Набор.Количество() = 1 И Набор.Получить(0).Сумма = 750);
Набор.Очистить();
Сообщить(Набор.Количество() = 0);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
Вставить третью полностью заполненную проводку 60 на позицию 1 между 750 и 50.
Проверить фактический тип возвращённой записи: в экспортированном тексте справки Вставить встречается неверное название записи регистра накопления; не переносить его в бухгалтерский код.
Переместить собственную запись на -1 по самой записи, затем индекс 0 на +2 по числовому индексу.
Удалить третью запись по объекту, затем вторую по индексу 1. Ни одно действие не является удалением данных базы.
Очистить только созданный в памяти набор и проверить нулевой размер.
Как проверить результат
Восемь булевых сообщений Истина: сумма 860, восстановление 800, затем одна запись 750 и пустой набор.
После каждого перемещения повторно вычисляется Индекс, старый числовой индекс не хранится как идентификатор.
Ожидаемый результат
Оба варианта Сдвинуть и Удалить разобраны на принадлежащих уроку записях.
На что обратить внимание
Не используйте индекс коллекции как ключ постоянной строки регистра.
Очистить затем Записать с замещением — совсем другая, опасная операция; в этой задаче Записать отсутствует.
Нельзя передавать запись другого набора в Сдвинуть или Удалить.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.