Имя: Пароль:
1C
 
Программно флаг "Макет" в элементе с видом "Поле табличного документа"
☑
0 spiller26
 
15.10.26
✎
11:52
Как программно указать флаг "Макет" в элементе с видом "Поле табличного документа" при отрытии формы?
1 Garykom
 
гуру
15.10.26
✎
11:56
Чего?
2 spiller26
 
15.10.26
✎
12:04
(1) Вот это
3 Garykom
 
гуру
15.10.26
✎
12:17
Знаешь заранее что в
Элементы.Найти("ИмяЭлементаФормы").ПутьКДанным
?
4 Мультук
 
гуру
15.10.26
✎
12:22
(0)

В 1С (ЕРП, УТ) есть подсистемы "Печать ценников", "Макеты печатных форм", которые разрешают редактировать макеты из ХранилищаЗначений.

Имхо (наверное) там решены все ваши вопросы (я сужу по рис). Разве нет ?
5 spiller26
 
15.10.26
✎
12:30
(4) Примерно, да только под хочу сделать для пользователей, что-то типа конструктора печатных форм, чтобы нас не дёргали.
6 arsik
 
гуру
15.10.26
✎
12:39
(0) Создай пустой шаблон с этим флагом, и лепи новые формы (макеты) из него.
7 spiller26
 
15.10.26
✎
13:43
Всё прозаичнее оказалось.
ТабДокШаблонМакет.Макет = Истина;

осталось понять, как сохранить и восстановить ячейки с заполнениями = Параметр и Шаблон.
8 spiller26
 
15.10.26
✎
14:18
Всё нормально сохраняет и выводит для корректировкиВот код кому может пригодиться.

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    
    ТекстТекстовкиФормат = ТекущийОбъект.ТекстТекстовки.Получить();
    
    //чтение "ШаблонМакет" с формированием Адреса хранения
    ДанныеФайлаШаблонМакет = ТекущийОбъект.ШаблонМакет.Получить();
    АдресСсылкаНаФайлMXL = ПоместитьВоВременноеХранилище(ДанныеФайлаШаблонМакет, УникальныйИдентификатор);
    
    ТабДокШаблонМакет.Макет = Истина;
    ПоказатьШаблонМакет();
    
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    ТекущийОбъект.ТекстТекстовки = Новый ХранилищеЗначения(ТекстТекстовкиФормат);
    ТекущийОбъект.КраткоеСодержаниеТекстовки = ОставитьТолькоТекст(ТекстТекстовкиФормат.ПолучитьФорматированнуюСтроку());
    
    ТекущийОбъект.ШаблонМакет = Новый ХранилищеЗначения(ТабДокШаблонМакет)
    
КонецПроцедуры

&НаСервере
Процедура ПоказатьШаблонМакет()
    
    Если ЭтоАдресВременногоХранилища(АдресСсылкаНаФайлMXL) Тогда
        ТабДокШаблонМакет = ПолучитьМакетНеСервере();
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Функция ПолучитьМакетНеСервере()

    ДанныеФайлаШаблонМакет = ПолучитьИзВременногоХранилища(АдресСсылкаНаФайлMXL);
    Если ДанныеФайлаШаблонМакет = Неопределено Тогда
        ШаблонМакетТабДок = Новый ТабличныйДокумент;
    Иначе    
        //запись во временный файл
        ИмяВремФайл = ПолучитьИмяВременногоФайла("mxl");
        ДанныеФайлаШаблонМакет.Записать(ИмяВремФайл);
        //Чтение в макет
        ШаблонМакетТабДок = Новый ТабличныйДокумент;
        ШаблонМакетТабДок.Прочитать(ИмяВремФайл);
        //удаление временного файла
        УдалитьФайлы(ИмяВремФайл);
    КонецЕсли;
    
    Возврат ШаблонМакетТабДок;
    
КонецФункции

&НаКлиенте
Процедура ТабДокШаблонМакетПриИзменении(Элемент)
    Модифицированность = Истина;
КонецПроцедуры
9 spiller26
 
15.10.26
✎
14:21
вот как-то так