БСП: Печатная форма с изменяемым макетом #716102


#0 by NikePopov
Доброго всем дня! Для БСП версии 2.1 начал делать обработку. Обработка представляет собой внешнюю печатную форму, очень простую по своей структуре. В обработке есть - макет(куча текста, в паре мест подставляются номер и дата документа и реквизиты контрагента и организации) - модуль объекта с текстом Собственно отлично все кроме одного: надо чтобы макета пользователь в дальнейшем мог бы изменить. То есть текст макета может меняться и пользователь достаточно компетентен для того, чтобы его сам поправить не сломав указанные там параметры. Не могу понять, какую функцию требуется использовать в БСП для получения актуального пользовательского макета(пример использования есть в БП 3.0 для счета на оплату), чтобы использовать стандартный механизм получения пользовательской формы. Я знаю, что строку надо поменять на что-то типа Но конкретной функции найти не могу. А в бухгалтерии вообще запутался в куче вызываемых процедур. Никто не сталкивался с таким вопросом?
#1 by NikePopov
Что макет хранится в регистре сведений "ПользовательскиеМакетыПечати" я знаю. И написать такую функцию не сложно. Просто в следующий раз не придется этим заниматься, если сейчас найти решение.
#2 by NikePopov
Так, функция найдена: УправлениеПечатью.ПолучитьМакет(ПолныйПутьКМакету)
#3 by NikePopov
Но не ясно, кто положит начальный макет туда?
#4 by Леха Дум
Эта функция используется для встроенных объектов - если макет встроен в конфу - работать будет, для внешнего макета - хз - попробуй - расскажешь. Смысл в том, что пользователь может измененить исходный макет - измененный макет сохраняется в регистре сведений. Функция анализирует наличие макета в рег.сведений - есть берет из регистра, нет - берет указанный в пути
#5 by NikePopov
Это понятно. судя по коду возьмет из внешней обработки без проблем. Но после первого запуска она не появляется в регистре. Функция "УправлениеПечатью.ПолучитьМакет" только проверяет есть ли он в регистре и возвращает какой сможет, но не кладет его для редактирования в регистр. А значит пользователь не сможет его поменять.
#6 by acsent
Нужно самому регистрировать макет
#7 by NikePopov
Если способ единственный, тогда всё ясно. И тут я ошибся процедура ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени не работает с внешними обработками. И мне стало совсем грустно.
#8 by Леха Дум
я чего то не понял - на кой ляд тебе эта функция, если печатная форма подключаемая? Если все же нужно дать возможность пользователям редактировать макет - укажи в параметре функции путь на встроенный макет (добавь его в конфигурацию) и все должно получиться
#9 by NikePopov
Я не планирую выезжать на 1 ч. для "настройки макета" или консультировать по телефону(например, поменялась формулировка "исполнение соглашения" на "выполнение обязательств"). То есть, мне нужно, чтобы пользователь смог сам решить "свои" проблемы в данном случае. Я могу написать инструкцию: 1. Зайди в дополнительные отчеты и обработки(прав, кстати у него на это нет) 2. Сохрани обработку на диск 3. Открой ее конфигуратором(тоже проблема с правами) 4. Измени макет(там внизу ...) 5. Сохрани обработку 6. Загрузи ее обратно(тоже прав нет) Итог: 1. Напряг администратора БД 2. Неизвестно будет ли работать обработка 3. Заморочил человека Хочу написать инструкцию: 1. Сформируй отчет(права есть) 2. Нажми на карандашик над отчетом(права есть) 3. Исправь макет(права есть) 4. Нажми кнопку "закончить рекдактирование" 5. Переформируй отчет. Итог: 1. Я не нужен для решения данной проблемы 2. Администратор БД не нужен 3. Сотруднику интуитивно понятно что делать Вариант с добавлением макета в конфигурацию известен, но не хочу включать возможность редактирования в девственную информационную базу. Во-первых, просто интересно сделать без снятия с поддержки. Во-вторых, это дает повод другим пришедшим 1С-никам без зазрения совести что-то подменять в конфигурации БД с лозунгом: "Она у вас всё равно уже измененная, что с ней будет?"
#10 by Kamas
сохрани mxl  на диск или в базу куда нить хоть как доп реквизит к справочнику внешние обработки
#11 by Kamas
да значение в строку пихаеш в допреквизиты значение из строки достаеш и заполняеш. И отдельно функция для редактирования нажал подправил сохранил печатаеш.
#12 by GreatOne
сейчас гляну, тоже возился. Далеко лежит просто
#13 by NikePopov
Это проще в стандартном и предназначенном для этого регистре. Он вполне для этого подходит. Не подходит только процедура редактирования.
#14 by GreatOne
вроде оно. Нет сейчас под рукой базы с БСП( Если не ошибаюсь, префикс ПФ_MXL тоже обязательный для имя макета.
#15 by Злопчинский
на Инфостарте есть разработки подобного рода, по первому осмотру/впечатлению - вроде неплохие
#16 by NikePopov
Не смог найти что-то похожее на "МакетПечатнойФормы" ни в одном из методов модулей УправлениеПечатью*. Не нашел Обработка.ПечатьОбщихФорм, и какого-либо специфичного алгоритма анализа данного значения, а обработки такой нет. Выдаст ошибку при получении макета. Вариант логичен с точки зрения методологии БСП, но не могу найти ничего на это похожего. Был бы признателен, если поделитесь более подробной информацией. До создания ветки форма - прошерстил довольно много информации, в том числе и на infostart. Ничего похожего не нашел.
#17 by МимохожийОднако
Добавь в обработку форму настройки макета с соответствующей командной кнопкой. Макет выведи на форму и сохраняй с реквизит типа Хранилище значений. При открытии формы заполняй макетом по умолчанию или из заполненного реквизита с макетом, который правит пользователь. При формировании используй сохраненный макет.
#18 by NikePopov
Благодарю за идею. Но с ней как и с остальными обходится стандартный механизм(БСП). В этом собственно и проблема. Сделать макет редактируемым проблемы нет. Можно его хранить в хранилище значений, в соседнем файле, в допреквизите в специализированном регистре(раз уж БСП есть в конфигурации). Все эти варианты одинаково хороши. Но задача была другой: Использовать механизм БСП. Если выполнить данную задачу можно достигнуть следующие бонусы: 2. Обработка прогрессирует(или деградирует) вместе с БСП; 3. Не надо писать никаких дополнительных форму, команд или прочего кода; 4. Надежность: механизм тестируется огромным числом пользователей "1С:Предприятие 8". Как решается задача в обход стандартного механизма - вполне понятно. Как реализовать в общепринятом порядке - вот какой вопрос.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С