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

11.02.26

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

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

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

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

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

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

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

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

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



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

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

 

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

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


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

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


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

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

 

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

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

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

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

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

См. также

Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)

Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.

50000 руб.

10.09.2026    14301    123    0    

88

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    83736    432    171    

364

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

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

16500 руб.

02.09.2020    286367    1611    423    

1220

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

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

22570 руб.

06.10.2023    44440    123    54    

135

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

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

15250 руб.

25.08.2025    77444    147    41    

154

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

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

17000 руб.

10.11.2023    28861    104    46    

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

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

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

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

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

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