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

16.02.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Пример расширения с пустой формой:
.cfe 8,15Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

 

 

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

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

 

 

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

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

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

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

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

 

 

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

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

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

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

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

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

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    151904    833    397    

842

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    20469    59    42    

106

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14208    12    27    

36

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

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

8400 руб.

20.08.2024    3967    22    8    

36

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    14070    36    7    

69

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    9130    33    10    

56

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    185562    1127    0    

899

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16773    6    29    

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

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

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