Пустая форма объекта в расширении

16.02.23

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

Создание пустой формы объекта в расширении для добавления элементов формы программно или для изменения процедур формы объекта.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример расширения с пустой формой:
.cfe 8,15Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

Предлагаю способ добавления пустой формы в расширение. Решение "через одно место", но вполне рабочее.

Где-то читал, что программное добавление элементов замедляет работу при большом количестве пользователей, но в моём случае пользователей немного, поэтому добавляю программно.

В примере добавляю форму документа, поэтому использую документ, хотя может быть любой объект.

Нужно сделать новую базу с пустой конфигурацией.

Для Конфигурации указать режим совместимости такой же, как в рабочей базе.

Добавляем в пустую конфигурацию документ с таким же именем, как в основной конфигурации и к документу добавляем форму с соответствующем именем.

В форме в Командной панели нужно снять флажок "Автозаполнение", чтобы форма была совсем пустая.

 

 

Затем создаём новое расширение и добавляем в него созданную форму документа.

Сохраняем расширение в файл.

 

 

В рабочей базе создаём новое расширение и загружаем в него расширение из файла.

При загрузке будет выдана ошибка "Обнаружены проблемы при применении расширения конфигурации"

Откроется окно "Проверка возможности применения".

Обнаруженная проблема
"Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации"
"Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Документ.НачислениеЗарплаты.Форма.ФормаДокумента не совпадает со значением в расширяемой конфигурации"

В колонке "Действия" нажимаем на ссылку "Исправить" и выбираем пункт "Сохранить имя, изменив соответствие".

 

 

Теперь у нас есть расширение, в котором пустая форма и в ней можно программно добавить кнопку и команду.

Для примера код добавления кнопки и назначение этой кнопке команды, которая в процессе работы выполняет процедуру модуля формы.

&НаСервере
Процедура НачЗП_ПВО_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	// Кнопка ПересчитатьВзносыОдного
	КомандаФормы=ЭтаФорма.Команды.Добавить("НачЗП_ПВО_ПересчитатьВзносыОдного");
	КомандаФормы.Действие="НачЗП_ПВО_ПересчитатьВзносыОдного";
	КомандаФормы.Заголовок="Пересчитать взносы одного";
	КомандаФормы.Подсказка="Пересчитать взносы одного сотрудника";
	КомандаФормы.ИзменяетСохраняемыеДанные=Истина;
	КомандаФормы.Отображение=ОтображениеКнопки.КартинкаИТекст;
	
	// Вставим кнопку ПОСЛЕ кнопки ВзносыПересчитатьВзносы
	НачЗП_ПВО_НайденЭлементПослеКоторогоНужноВставитьКнопку=Ложь;
	НачЗП_ПВО_ЭлементПередКоторымВставляемКнопку=Неопределено;
	Для Каждого НачЗП_ПВО_ТекущийЭлемент Из ЭтаФорма.Элементы.Взносы.КоманднаяПанель.ПодчиненныеЭлементы Цикл
		Если НачЗП_ПВО_НайденЭлементПослеКоторогоНужноВставитьКнопку Тогда
			НачЗП_ПВО_ЭлементПередКоторымВставляемКнопку=НачЗП_ПВО_ТекущийЭлемент;
			Прервать;
		КонецЕсли;
		Если НачЗП_ПВО_ТекущийЭлемент.Имя="ВзносыПересчитатьВзносы" Тогда
			НачЗП_ПВО_НайденЭлементПослеКоторогоНужноВставитьКнопку=Истина;
		КонецЕсли;
	КонецЦикла;
	Кнопка=ЭтаФорма.Элементы.Вставить("НачЗП_ПВО_ВзносыПересчитатьВзносыОдного",Тип("КнопкаФормы"),ЭтаФорма.Элементы.Взносы.КоманднаяПанель,НачЗП_ПВО_ЭлементПередКоторымВставляемКнопку); // Это кнопка на командной панели Взносы
	Кнопка.ИмяКоманды="НачЗП_ПВО_ПересчитатьВзносыОдного";
КонецПроцедуры

&НаКлиенте
Процедура НачЗП_ПВО_ПересчитатьВзносыОдного(Команда)
	Если ЗначениеЗаполнено(Элементы.Взносы.ТекущиеДанные.ФизическоеЛицо) Тогда
	Иначе
		ПоказатьПредупреждение(,"Необходимо выбрать сотрудника!");
		Возврат;
	КонецЕсли;
	
	ОчиститьСообщения();
	
	Если Не РасчетЗарплатыРасширенныйКлиентСервер.ФормаДокументаГотоваДляРасчетаЗарплаты(ЭтаФорма, ОписаниеДокумента(ЭтотОбъект)) Тогда
		Возврат;
	КонецЕсли;
	
	РежимПересчетаВзносов = Истина;
	ПерезаполнитьДанныеФормыНаКлиенте(Элементы.Взносы.ТекущиеДанные.ФизическоеЛицо);
КонецПроцедуры

Тестировалось на 1С:Предприятие 8.3 (8.3.22.1750), Конфигурация Зарплата и кадры государственного учреждения КОРП, редакция 3.1 (3.1.24.408).

Если статья была полезна, то можно  скачать файл-пример, и я получу за это монетки :-)

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

расширение пустая форма

См. также

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

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

16500 руб.

02.09.2020    267418    1488    421    

1178

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

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

24900 руб.

20.08.2024    74655    377    170    

322

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

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

22570 руб.

06.10.2023    39979    112    54    

126

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

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

15250 руб.

25.08.2025    63025    130    36    

136

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    8544    36    46    

51

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

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

17000 руб.

10.11.2023    26311    98    46    

104

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

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

6000 руб.

25.02.2026    4735    16    1    

20

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

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

6000 руб.

15.04.2026    2519    6    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 2157 17.02.23 10:13 Сейчас в теме
Или перехватывать модуль УправлениеСвойствами.ПриСозданииНаСервере(Форма, ДополнительныеПараметры) как подключенный почти ко всем важным формам конфиг на БСП.
VyacheslavShilov; cleaner_it; Mx00; +3 Ответить
2. Mx00 251 17.02.23 10:57 Сейчас в теме
(1) я не супер программист :-) у меня не получается после "ухода" с формы в общий модуль, выполнить процедуру формы, в данном случае это процедура ПерезаполнитьДанныеФормыНаКлиенте
3. ixijixi 2157 17.02.23 11:02 Сейчас в теме
(2) Я использую для таких случаев связку ПодключаемыеКоманды.ПриСозданииНаСервере() и ПодключаемыеКомандыКлиент.ВыполнитьКоманду(). На сервере добавляю команды и элементы, а на клиенте перехватываю метод формы Подключаемый_ВыполнитьКоманду() (от тоже почти везде есть).
VyacheslavShilov; cleaner_it; Mx00; mikl79; +4 Ответить
4. Mx00 251 17.02.23 11:58 Сейчас в теме
(3) вот после Подключаемый_ВыполнитьКоманду() я и не смог выполнить в модуле формы процедуру ПерезаполнитьДанныеФормыНаКлиенте
если есть время, то прошу сделать расширение которое выполнит процедуру ПерезаполнитьДанныеФормыНаКлиенте с отбором по одному сотруднику, а то у меня "мозх клинит" и я не вижу решения :-)
5. TMV 1 18.02.23 10:30 Сейчас в теме
(4) без добавления формы этого и не сделать
7. ixijixi 2157 19.02.23 18:17 Сейчас в теме
6. ixijixi 2157 19.02.23 18:16 Сейчас в теме
8. Mx00 251 19.02.23 23:56 Сейчас в теме
(6) спасибо, переделаю два блока, пересчёт взносов и НДФЛ, теперь остался не экспортный вариант :-)

&НаСервере
Функция УдалитьДанныеСотрудникаНаСервере(СотрудникФизическоеЛицо)
чисто в академический интерес при наличии времени :-)

нужен для того, чтобы из заполненного документа НачислениеЗарплаты удалить группу подразделений, т.к. их рассчитывают отдельно...
По большому счету желательно сразу заполнять документ НачислениеЗарплаты без этих подразделений, но разобраться где это ограничить я пока не смог, ведомости на выплату осилил, а начисление очень для меня сложно оказалось :-)
9. Mx00 251 20.02.23 00:45 Сейчас в теме
(3) Спасибо за пример, понял где я не так думал - "Подключаемый_ВыполнитьКоманду", я как-то не осознал, поэтому копал не в ту сторону :-)
я даже читал Динамическое формирование интерфейса от Дмитрия Котова, но всё равно запутался :-(
10. mikl79 121 21.02.23 14:19 Сейчас в теме
Спасибо за поднятие темы - я пустую форму сделал так:
1) создал новое расширение
2) добавил в него форму
3) удалил все что добавилось автоматом - объекты, элементы стиля, общие картинки
4) Выгрузить конфигурацию в файлы...
5) Загрузить конфигурацию из файлов...
6) Выгружаем конфигурацию расширения в файл
7) Загружаем в основное расширение через сравнить/объединить - флажок оставляем только на форме
и все получилась пустая форма
11. aleksey2 97 06.04.23 06:58 Сейчас в теме
(10) для чего выгружать в файлы?
12. mikl79 121 10.04.23 14:27 Сейчас в теме
(11), поправлюсь - перед "Загрузить конфигурацию из файлов..." нужно отредактировать файлы, например, я в ЗУПе добавлял форму Начисления - мне пришлось удалить папку D:\обмен\01\ChartsOfCalculationTypes\Начисления\Forms\ФормаВид­аРасчета
Иначе не создается именно пустая форма
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация