Предзаполнение документов в 1С (шпаргалка)

11.02.26

Разработка - Инструментарий разработчика

Довольно удобный метод, который помогает предзаполнить документ.

Была проблема: метод с сайта ИТС (https://its.1c.ru/db/metod8dev/content/4148/hdoc) для некоторых документов работал, для некоторых — нет. Параметры передавались правильно, в отладке было видно, что они заполняются, но при открытии формы ничего не появлялось. Вот так он выглядит (для тех, у кого нет доступа):

ЭлементыОтбора = Новый Структура("Поставщик, Склад", СсылкаНаПоставщика, СсылкаНаСклад);
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЭлементыОтбора);
ОткрытьФорму("Документ.Накладная.ФормаОбъекта", ПараметрыФормы);

Коротко о сути данного метода:

В параметрах формы есть встроенная структура "ЗначенияЗаполнения", в которую можно помещать другие структуры. Они выглядят так: Ключ = "ИмяРеквизита"Значение = "ЗначениеРеквизита".

Разбираться и проверять, почему где-то всё нормально заполняется, а где-то нет, не стал. Начал искать другой способ, но быстро найти не получилось. Решил воспользоваться методом "ПолучитьФорму()" и, заполнив её, просто открыть. Этот метод позволяет предзаполнить как реквизиты объекта, так и реквизиты, созданные на форме.

1. Получаем нужную нам форму (на примере документа "РаботаВВыходныеИПраздничныеДни"):

ФормаДокумента = ПолучитьФорму("Документ.РаботаВВыходныеИПраздничныеДни.ФормаОбъекта");



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

ФормаДокумента.ВремяВЧасах = 1;

 

3. Далее, чтобы заполнить реквизиты объекта, используем:

ФормаДокумента.Объект.ИмяНужногоРеквизита =  НашеНовоеЗначение;


Табличные части заполняются как обычно: выбираем табличную часть и используем метод "Добавить()". Например:

НСтр = ФормаДокумента.Объект.Сотрудники.Добавить();
НСтр.Сотрудник = НашеЗначение;


4. После всех изменений используем метод "Открыть()":

ФормаДокумента.Открыть();

 

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

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие шпаргалка открытый код инструмент разработчика программирование задача изменение документа заполнение предзаполнение ИБ памятка начинающий программист обучение

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    273032    1509    422    

1182

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    41212    120    54    

129

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    66796    134    38    

142

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    27077    99    46    

104

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    55400    189    63    

220

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    3083    5    0    

21

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5386    17    1    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. EvgeniyOlxovskiy 112 11.02.26 09:39 Сейчас в теме
Метод "ПолучитьФорму" фирма 1С не рекомендует использовать
https://its.1c.ru/db/v8std/content/404/hdoc
ivangrant; manul1c; InFlach; +3 Ответить
2. InFlach 104 11.02.26 09:55 Сейчас в теме
(1) Честно говоря, довольно странные рекомендации от ИТС:

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

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

Что касается метода ОткрытьФорму(), который ИТС говорят использовать, описал в статье почему пришлось искать альтернативу и оказалась данная альтернатива довольно надежной, как минимум, если нужно предзаполнять еще не записанный докумет
EvgeniyOlxovskiy; +1 Ответить
3. koln 11.02.26 10:15 Сейчас в теме
В конструкции
ЭлементыОтбора = Новый Структура("Поставщик, Склад", СсылкаНаПоставщика, СсылкаНаСклад);
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЭлементыОтбора);
ОткрытьФорму("Документ.Накладная.ФормаОбъекта", ПараметрыФормы);

Ключ
ЗначенияЗаполнения
это, по сути, параметр
ДанныеЗаполнения
обработчика
ОбработкаЗаполнения
модуля объекта. Он не отрабатывает, если в обработке заполнения не предусмотрено заполнение из структуры
4. InFlach 104 11.02.26 10:31 Сейчас в теме
(3) Благодарю за ответ, проверил, все именно так)

Если в штатном документе не предусмотрено заполнение из структуры или нужно предзаполнить реквизиты созданные на форме, может быть слышали о каких-то еще методах, кроме как ПолучитьФорму()?
5. koln 11.02.26 11:57 Сейчас в теме
(4) На сколько я знаю, реквизиты объекта заполняют именно в обработчике заполнения. Логику данного обработчика можно ведь переопределять (в расширении, например) Ну так же все это (реквизиты объекта и реквизиты формы) можно реализовать в обработчике формы ПриСозданииНаСервере
6. InFlach 104 11.02.26 12:13 Сейчас в теме
(5) Да, но тут речь идет о методе, который позволяет "не прикасаться" вообще к документу, который нужно предзаполнить.
7. koln 11.02.26 13:10 Сейчас в теме
(6) На мой взгляд, у вашего метода есть недостаток, а именно, код по получению и заполнению формы нужно будет прописывать в каждом месте, в котором будет предусмотрен этот функционал. А при заполнении в обработчике ПриСозданииНаСервере, нужно будет передавать в параметрах открытия формы только необходимые значения. Общая логика будет прописана в обработчике формы: найден параметр - обработан, не найден - ничего не происходит. Это касается и реквизитов формы, и реквизитов объекта.
8. InFlach 104 11.02.26 13:14 Сейчас в теме
(7) Данный метод сделан для ситуаций, когда не нужно вмешиваться в код штатного документа, который хотите предзаполнить, например вы создали какой-то документ и в нем нужно добавить гиперссылку с определенной логикой заполнения штатного документа, который может предзаполняться также другими объектами ИБ. И если вы не хотите по каким-то причинам менять обработку заполнения в документе/расширении или где-либо еще, вы просто используете данный метод и у вас все работает
Для отправки сообщения требуется регистрация/авторизация