Имя: Пароль:
1C
1С v8
Сравнить, объединить конфигурацию из файла. УФ элементы формы документа
0 Повелитель
 
05.09.24
12:39
Простите если вопрос глупый, но информации не нашел.
Я спец по обычным формам. С УФ знаком и работаю, но много чего не знаю.

Есть типовая форма документа ЭСФ:
https://disk.yandex.kz/i/MVUQ95aL_X4usw

А вот так выглядит доработанный документ:
https://disk.yandex.kz/i/8ZSZ3Fa5C6b6aw

Конкретно хочу рассмотреть на примере меню в шапке документа ЭСФ "Автозаполнение". (на скринах есть)
В доработанном документе есть новые пункты меню.
Каждый раз когда приходит обновление от поставщика (на документ ЭСФ у них каждый раз обновления есть) все мои доработки на форме слетают.

При обновлении сейчас у меня 2 варианта.
1. Если обновления только в процедурах и функциях, то я не обновляю документ ЭСФ и после обновления просто вручную переношу процедуры/функции.
2. Если у них есть обновления на форме. То приходится потом все свои обновления на форме переносить из копии базы, так как форма документа превращается в типовую.

При этом нельзя просто взять и скопировать мои доработанные пункты меню. Копируются как попало, ИмяКоманды - туда встает рандомная команда. Свойство ИмяКоманды нельзя скопировать и вставить из копии базы, а надо выбрать из списка через три точки.

Это всё очень раздражает, бывает пару часов уходит, чтобы просто вернуть свои доработки.

Я знаю про расширения конфигурации, но в данном случая моя типовая "Управление торговым предприятием для Казахстана, разработка для Казахстана 2.0.24.2" их не поддерживает. Точнее я не могу снять режим совместимости, чтобы включить расширения. Режим совместимости стоит Версия 8.2.16

Подскажите, как обновлять УФ форму документа правильно? Или хотя бы как правильно скопировать из копии и перенести элементы формы из одной УФ в другую?
1 rozer76
 
05.09.24
12:43
правильно - это элементы формы свои добавлять программно
2 Повелитель
 
05.09.24
12:48
(1) Для обычных форма, я так обычно и делаю.
А так как по УФ слабые знания, то решил их просто вставлять на форме.

Это единственный вариант? Или есть ещё?
3 Повелитель
 
05.09.24
13:20
(1) Спасибо, отличный совет.
Попробовал, прям огонь!

Сейчас всё кодом перепишу ))) Такой простой совет, а мне сразу в голову и не пришел.

Пример программной вставки меню для потомков:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

...

//Создаем новую команду
Команда = ЭтаФорма.Команды.Добавить("ФормаЗаполнениеПоЭСФ");
//Привязываем к команде процедуру
Команда.Действие = "ФормаЗаполнениеПоЭСФ";
   
//Создаем новый элемент
НовЭлемент = Элементы.Добавить("ФормаЗаполнениеПоЭСФ", Тип("КнопкаФормы"), Элементы.ФормаГруппаАвтозаполнение);
НовЭлемент.Заголовок = "Заполнить ТЧ по ЭСФ";
НовЭлемент.ИмяКоманды = "ФормаЗаполнениеПоЭСФ";

КонецПроцедуры

&НаКлиенте
Процедура ФормаЗаполнениеПоЭСФ(Команда)
	
	СвязанныйЭСФ = Объект.СвязанныйЭСФ;
	
	ЗаполнениеПоЭСФНаСервере(СвязанныйЭСФ);
	
КонецПроцедуры
4 Prog_man
 
05.09.24
13:32
(0) при сравнении объединении, пробуй выбрать у формы объединить с новой конфигурацией. если есть свои процедуры и функции делай их с префиксом, чтобы при объединении модулей видеть где твои и галку с них снимать. префиксы в т.ч делай и для реквизитов и для команд.
5 Повелитель
 
05.09.24
14:09
(4) Спасибо
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший