Открытие документов в 1С 8.3: через меню, код и Конфигуратор

· 9 мин

Содержание

Открыть документ в 1С 8.3 можно четырьмя разными путями, и выбор зависит от того, кто вы и зачем документ понадобился. Бухгалтер ищет нужную накладную в журнале раздела. Пользователь без прямой ссылки на список вызывает документ через команду Все функции. Программист открывает форму документа из кода методом ОткрытьФорму. Разработчик правит саму форму в Конфигураторе.

Ниже — каждый из этих способов с точными путями меню для интерфейса «Такси» (платформа 8.3.2x и новее) и рабочими примерами кода. Пути приведены для типовых конфигураций на управляемых формах; названия разделов в вашей базе могут слегка отличаться, но логика одинакова.

Поиск документа в журнале и списке раздела

Самый частый сценарий — найти уже существующий документ. В «Такси» документы сгруппированы по разделам в левой панели. Логика простая: тип документа определяет раздел.

Типичные маршруты в «1С:Бухгалтерии 3.0»:

  • 📄 Реализация, счета, акты — раздел Продажи.
  • 📦 Поступление товаров и услуг — раздел Покупки.
  • 💳 Платёжки и выписки — раздел Банк и касса.
  • 🧾 Авансовые отчёты — раздел Банк и касса или Покупки.

Откройте раздел, выберите нужный журнал (например, Продажи → Реализация (акты, накладные, УПД)) — откроется список документов. Чтобы открыть конкретный документ, выделите строку и нажмите Enter либо дважды кликните по ней.

Если документов много, не листайте список вручную. Нажмите кнопку поиска (значок лупы над списком) или Ctrl+F и введите номер, сумму или часть названия контрагента — список отфильтруется по вхождению.

Как отсортировать и отфильтровать список

Клик по заголовку колонки сортирует список по этому полю. Повторный клик меняет направление. Для более точного отбора откройте настройку списка через кнопку Ещё → Настроить список над таблицей — там задаются отборы по периоду, организации, контрагенту и статусу проведения.

Непроведённые документы в списке обычно помечены — у них нет зелёной «галочки» проведения в служебной колонке. Это удобный способ быстро найти черновики, которые забыли провести.

Открытие документа через команду «Все функции»

Бывает, что нужного журнала нет в панели разделов — его скрыли при настройке интерфейса, либо документ служебный. Тогда помогает команда Все функции: она даёт прямой доступ ко всем объектам базы, минуя настроенное меню.

По умолчанию команда спрятана. Включается один раз:

  1. Откройте Главное меню (значок со стрелкой вниз в левом верхнем углу).
  2. Выберите Сервис → Параметры.
  3. Поставьте флажок Отображать команду «Все функции» и нажмите ОК.

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

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

Этот же путь выручает, когда нужно открыть документ, которого вы не видите в своём интерфейсе, но знаете его тип, — например, регламентный или технический документ конфигурации.

Программное открытие формы документа

Если документ нужно открыть из кода — по кнопке обработки, из другой формы, по ссылке — используется клиентский метод ОткрытьФорму. Он работает в контексте управляемого приложения.

Открыть форму существующего документа по ссылке

Форме объекта передаётся структура с ключом Ключ, значение которого — ссылка на документ:

&НаКлиенте
Процедура ОткрытьДокумент(Ссылка)
    ПараметрыФормы = Новый Структура("Ключ", Ссылка);
    ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы);
КонецПроцедуры

Первый параметр — полное имя формы в формате Документ.<ИмяВида>.ФормаОбъекта. Имя вида документа берётся из дерева конфигурации, без пробелов и ровно так, как объект назван в метаданных.

Открыть документ, не зная имени его формы

Когда у вас на руках только ссылка, а имя формы заранее неизвестно, проще вызвать ПоказатьЗначение. Метод сам находит основную форму объекта и открывает её:

&НаКлиенте
Процедура ОткрытьПоСсылке(Ссылка)
    ПоказатьЗначение(, Ссылка);
КонецПроцедуры

Первый параметр (описание оповещения о закрытии) здесь не нужен — оставляем пустым. Это универсальный способ: он одинаково открывает документ, элемент справочника или любую другую ссылку.

Устаревший синхронный метод ОткрытьЗначение из версии 8.2 в новых конфигурациях лучше не применять — в режиме управляемого приложения он выдаёт предупреждение или не работает. Используйте асинхронный ПоказатьЗначение.

Открыть новый, ещё не записанный документ

Чтобы открыть форму нового документа, вызовите ОткрытьФорму без параметра Ключ — платформа создаст новый объект:

&НаКлиенте
Процедура СоздатьНовый()
    ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта");
КонецПроцедуры

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

Найти документ по номеру и открыть

Если есть номер, но нет ссылки, сначала найдите объект на сервере, потом откройте форму на клиенте:

&НаСервере
Функция НайтиПоНомеруНаСервере(Номер)
    Возврат Документы.РеализацияТоваровУслуг.НайтиПоНомеру(Номер);
КонецФункции

У метода НайтиПоНомеру есть второй необязательный параметр — интервал дат. Он нужен, когда нумерация документов периодическая (например, сбрасывается каждый год) и один и тот же номер может встретиться в разных периодах. Без интервала метод вернёт первый найденный документ, что в такой базе может оказаться не тем, который вы искали.

Открытие формы документа в Конфигураторе

Разработчику нужна не сама запись, а структура документа: его реквизиты, табличные части и формы. Это уровень Конфигуратора, а не режима «Предприятие».

Открытие базы в Конфигураторе само по себе безопасно и монопольного доступа не требует. Монопольный режим нужен только для изменения структуры данных (обновление конфигурации БД), загрузки .dt, тестирования и исправления. Пока вы просто смотрите формы и код, пользователи продолжают работать.

Порядок действий:

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте дерево конфигурации: Конфигурация → Открыть конфигурацию.
  3. Разверните ветку Документы и найдите нужный вид документа.
  4. Разверните его подветку Формы.
  5. Дважды кликните по форме (ФормаОбъекта, ФормаСписка и т. д.) — она откроется в редакторе форм.

В редакторе вы видите три связанных области: дерево элементов формы, реквизиты формы и модуль с кодом. Здесь же, в ветке самого документа, доступны его реквизиты и табличные части.

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

Переход к документу из связанного объекта

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

Структура подчинённости. Откройте любой документ цепочки и вызовите команду Ещё → Структура подчинённости в его командной панели. Платформа построит дерево: вверху документ-основание, ниже — всё, что введено на его основании. По любому узлу дерева двойной клик открывает соответствующий документ. Это самый быстрый способ пройти всю цепочку «заказ → реализация → счёт-фактура → оплата», не возвращаясь в журналы.

Ввод на основании. Обратная задача — из текущего документа создать и открыть связанный. Кнопка Создать на основании в командной панели предлагает список допустимых видов документов; выбор сразу открывает форму нового документа с перенесёнными реквизитами.

Если нужно понять, какие движения сформировал проведённый документ, нажмите в его форме кнопку отчёта о движениях (в «1С:Бухгалтерии» — Дт/Кт). Отдельно искать регистры не нужно — отчёт откроется прямо из документа.

Работа с новыми и непроведёнными документами

«Новый документ» и «временный документ» в 1С — разные вещи, и путаница между ними порождает ошибки.

Новый документ — это объект, который ещё не сохранён в базе. Пока вы не нажали Записать, его не существует для других пользователей и отчётов. Создать его программно:

&НаСервере
Процедура СоздатьИЗаписать()
    НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    НовыйДок.Дата = ТекущаяДата();
    // ... заполнение реквизитов и табличных частей ...
    НовыйДок.Записать();
КонецПроцедуры

Записан, но не проведён — документ уже в базе, у него есть ссылка и номер, но он не сформировал движения по регистрам. В учёте его ещё нет. Разница между двумя действиями принципиальна:

ДействиеЧто происходитДвижения по регистрам
ЗаписатьДокумент сохраняется в базе, появляется ссылка и номерНет
ПровестиДокумент записывается и формирует движенияДа

Открыть такой черновик можно любым из описанных выше способов — он полноценно существует в базе. В списке он помечен как непроведённый.

Реквизит ПометкаУдаления и статус проведения — это разные состояния. Помеченный на удаление документ всё ещё открывается и даже может быть проведён, пока его физически не удалили через Все функции → Стандартные → Удаление помеченных объектов.

Ошибки при открытии документа и что с ними делать

Открытие документа срывается по трём основным причинам: битая ссылка, нехватка прав и ошибка самой формы. Разберём симптомы и действия.

Диагностика: выберите симптом

Прежде чем удалять временные файлы или чистить кэш 1cv8, убедитесь, что закрыты все сеансы этого пользователя с базой. Чистка кэша при открытой базе может привести к повторной ошибке и не поможет.

Если документ не найден поиском, хотя он точно есть

Проверьте три вещи, именно в этом порядке:

  1. Отбор в списке. В списке мог остаться скрытый отбор по периоду или организации. Сбросьте настройки списка через Ещё → Установить стандартные настройки.
  2. Период. Многие журналы по умолчанию показывают только последние дни или текущий месяц. Расширьте период отбора на нужный диапазон.
  3. Права. Если документ виден коллеге, но не вам — дело в разнице ролей, а не в самом документе.

Частые вопросы

Чем `ОткрытьФорму` отличается от `ПоказатьЗначение`?
ОткрытьФорму требует точное имя формы и позволяет передать любые параметры — это гибкий инструмент для своих обработок. ПоказатьЗначение сам определяет основную форму объекта по ссылке и открывает её без лишних параметров. Когда на руках только ссылка — проще ПоказатьЗначение.
Как открыть документ, если его журнала нет в панели разделов?
Включите команду Все функции (Главное меню → Сервис → Параметры, флажок Отображать команду «Все функции»), затем Главное меню → Все функции → Документы и выберите нужный вид. Доступ к данным всё равно ограничен вашими ролями.
Почему при открытии пишет «Недостаточно прав»?
Роль пользователя не включает право на чтение этого вида документа. Это настраивается администратором в списке пользователей и ролей, а не лечится перезапуском базы.
Можно ли открыть документ по его номеру из кода?
Да, методом НайтиПоНомеру. Если нумерация в базе периодическая, передавайте вторым параметром интервал дат — иначе рискуете получить документ с тем же номером из другого периода.
Открытие базы в Конфигураторе выгонит пользователей из базы?
Нет. Просмотр и правка форм в Конфигураторе не требуют монопольного доступа. Пользователей придётся отключить только для обновления конфигурации базы данных, загрузки .dt или тестирования и исправления.