12.07.2024 — Версия 4.3 — убрал модальность для управляемой формы, изменена встроенная ВПФ .
23.11.2024 — Версия 4.4 — изменена встроенная ВПФ .
03.04.2024 — Версия 4.7 — исправлено сохранение ВПФ в клиент-серверном варианте от vshish.
11.05.2024 — Версия 4.8 — исправление от VovkaPutin плюс убрал из текста модуля ВПФ директивы препроцессора (то, что начинается с «#»), убрал модальность при открытии ВПФ из конструктора.
17.10.2024 — Версия 5.1 — тестировалось на платформе 8.3.15.1700, БП 3.0.73.54
Версия 5.1 БП 3.0.73.54 стал делать ВПФ, выяснилось (внезапно), что в общем модуле "УправлениеПечатью" процедура "ПодготовитьКоллекциюПечатныхФорм" лишилась "Экспорт", пришлось вставить немного изменённую в модуль формы ВПФ.
В принципе всё описано в исходной публикации //infostart.ru/public/162024/.
Могу добавить только, что для последних версий БСП и, соответственно, конфигураций на управляемых формах, наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули. Поэтому, чаще всего, созданную конструктором ВПФ придётся допиливать, перенося в модуль ВПФ эти самые процедцры и функции из общих модулей.
Инструкция для управляемого приложения
Создадим ВПФ, например, для документа Счет покупателю, печатная форма Счет-заказ (пример делаю на платформе 8.3.8.1784 БП 3.0.43.247 база ДЕМО).
Создание ВПФ
Исхожу из того, что пользоваться конфигуратором, тот, кто создаёт ВПФ умеет, потому картинки оттуда рисовать не будем. Результатом будет внешняя форма, которая ничем не отличается от типовой печатной формы документа.
Итак, по пунктам:
- Копируем модуль менеджера документа Счет покупателю, открыв его в Конфигураторе. Копируется весь модуль, например, нажав Ctrl + A, потом Ctrl + С.
- Открываем конструктор в режиме учета, выбираем Тип документа СчетНаОплатуПокупателю и нажимаем кнопку Вставить:
- Жмём следующую кнопку Анализ. Получаем на закладке Команды и функции список доступных команд печати, список процедур и функций модуля менеджера, и текст выделенных процедур в правом окне. В левом верхнем окне снимаем все галки (кнопки управление вверху) и отмечаем нужную нам печатную форму СчетЗаказ. В левом нижнем окне нужные для печати выбранной формы процедуры будут отмечены зелёным цветом автоматически. Если необходимо, можно отметить и другие процедуры и функции с помощью кнопки нужна не нужна, они будут перенесены в итоговую обработку, но использовать автоматически ВПФ их не будет, поэтому подумайте, оно Вам надо? В правом окне можно просмотреть текст выделенных в левом нижнем окне процедур и функций. Текст можно изменить, правда никогда этой возможностью не пользовался, но мало ли кому понадобится?:
- Следующая кнопка Сформировать. Создаёт текст модуля обработки ВПФ:
- Жмём Скомпилировать – на экране ничего не изменится, просто будет создана ВПФ.
- Кнопка Сохранить предложит выбрать путь, куда сохранить созданную обработку и открыть созданную ВПФ для проверки. ВПФ создаётся со встроенной формой обработки, поэтому её можно отлаживать не прибегая к дополнительным средствам. При открытии ВПФ сразу проверяем работоспособность, выбрав документ и сформировав печатную форму:
Как уже говорилось, сейчас она ничем не отличается от типовой, и если нужно что-то изменить, это придётся делать руками, о чём расскажу ниже. Хочется заметить, что указанный порядок формирования ВПФ минимален, остальное пробуйте сами…или не пробуйте. Здесь фактически просто перечислены шаги быстрого создания ВПФ для последующей доработки.
Что удивило, и типовая и внешняя вместо суммы прописью выдают в демке сумму числом:
Изменение полученной ВПФ
Для исправления ситуации, и добавления чего-то своего в ВПФ, начнём вносить изменения:
- Вставим макет счета в ВПФ (по умолчанию используется тот же, что и в типовой форме счета). Для этого посмотрим, какой макет используется. В модуле объекта ВПФ :
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказ") Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетЗаказ", "Счет на оплату",
ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати),,"ОбщийМакет.ПФ_MXL_СчетЗаказ");
ПараметрыВывода.Вставить("ФормироватьЭД", Истина);
КонецЕсли;
Из процедуры Печать видим, что нам нужен общий макет ПФ_MXL_СчетЗаказ. Копируем его в конфигураторе. Ветка Общие – Общие макеты:
Затем в обработке встаём на Макеты и вставляем, теперь макет есть в ВПФ, нужно изменить код модуля, чтобы использовать именно его, а не общий макет:
- Анализируем текст процедуры печати и добавляем процедуры и функции общих модулей, использующиеся при формировании печатной формы:
- Первое, что меняем, это убираем из процедуры печать вызов общего макета – удаляем текст «ОбщийМакет.»
- Видим, что табличный документ формируется в общем модуле ПечатьТорговыхДокументов, функцию ПечатьСчетаНаОплату из которого копируем в модуль нашей ВПФ (встаем на текст ПечатьСчетаНаОплату и жмём F12 , выбираем функцию и попадаем в общий модуль, где копируем функцию). Я предпочитаю добавленные процедуры и функции включать в отдельную область, которую выделяю в модуле ВПФ:
#Область ДобавленныеПроцедурыИФункции
//между этими строками вставляем скопированные из общих модулей процедуры
#КонецОбласти
- Сохраняем то, что получилось (или нажимаем на синтаксис контроль). Получаем сообщение об ошибках:
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(371,3)}: Процедура или функция с указанным именем не определена (ВывестиЗаголовокПредупреждение)
<<?>>ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет); (Проверка: Сервер).
Поскольку не определена процедура без указания через точку, делам вывод, что она находится в том же общем модуле, что и скопированная нами перед этим функция ПечатьСчетаНаОплату – находим её там, и копируем в модуль ВПФ. И вновь пробуем сохранить. В данном случае нам повезло – ошибок больше нет. В обще-то это редкость, по большому счёту, это самый трудоёмкий момент. Бывает, что может понадобится копирование нескольких процедур и функций, и, может быть, даже не из одного модуля. Главное не просто скопировать, но и правильно их потом вызывать. Универсального рецепта для этого у меня нет.
- Убираем в процедуре печать строку «ПечатьТорговыхДокументов.» — теперь эта функция будет вызываться из модуля ВПФ.
- Сохраняем ВПФ, проверяеем в режиме учёта – всё работает, только теперь, всё, что нужно для изменений, у нас находятся в ВПФ. Теперь можно делать необходимые изменения .
- Изменяем текст модуля ВПФ:
- Вызов встроенного макеета вместо общего – находим строку "ОбщийМакет.ПФ_MXL_СчетЗаказ", видим, что находится она в добавленной функции из общего модуля, и не меняя общий модуль ПечатьТорговыхДокументов (сохраняя типовую конфигурацию на полной поддержке) изменяем функцию модуля ВПФ:
//Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_СчетЗаказ"); //Было
Макет = ПолучитьМакет("ПФ_MXL_СчетЗаказ"); //Стало
Внимание: После каждого изменения лучше сохранять ВПФ и проверять работоспособность, если менять всё подряд, потом может получится, что легче будет начать с начало, чем исправить то, что наменяли. Ещё совет, когда всё работает, и собираетесь что- то допилить, создайте новую версию ВПФ, и меняйте её – останется рабочий вариант, и текущий, с попыткой допила)))
- Исправим сумму прописью – сейчас она почему – то выводится числом, вариантов много, можно, например, использовать форматную строку в ячейке макета СуммаПрописью, но это некрасиво, поэтому попробуем найти место в тексте модуля, где заполняется этот параметр и исправим его. Видим строку:
ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.Валюта);
Отладчиком смотрим, где собака порылась. На вид всё фильдиперсово, однако видим вместо строки число. Видим, что при вызове функции общего модуля ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью в параметре СведенияОДокументе.Валюта пусто. Вариантов исправления много – можно вытащить процедуру СформироватьСуммуПрописью в модуль ВПФ, можно посмотреть заполнение строки СведенияОДокументе и заполнить валюту там, можно проверить заполнение валюты, и если там пусто использовать валюту по умолчанию из константы. Мне лень, поэтому возьмём валюту из договора:
ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.ДоговорКонтрагента.ВалютаВзаиморасчетов);//СведенияОДокументе.Валюта);
Сохраняем, проверяем:
- Теперь добавим в макет новый параметр, например Комментарий и выведем после итоговой строки (пример условный, просто как пример)))):
Обратите внимание, что параметр находится внутри области макета, создал я его так (профи просьба не читать далее)))), встав на СуммаПрописью правой кнопкой – раздвинуть, потом скопировал СуммаПрописью, вставил в среднюю стоку и поменял в третьей строчке СуммаПрописью на Комментарий.
В тексте модуля делаем следующие изменения:
ДанныеПечатиСуммаПрописью = Новый Структура("ИтоговаяСтрока, СуммаПрописью, Комментарий");
и четырьмя строчками ниже вставляем строку:
ДанныеПечатиСуммаПрописью.Комментарий = СокрЛП(СведенияОДокументе.Документ.Комментарий);
В итоге получим кусок кода:
// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ДанныеПечатиСуммаПрописью = Новый Структура("ИтоговаяСтрока, СуммаПрописью, Комментарий");
СуммаКПрописи = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС);
ДанныеПечатиСуммаПрописью.ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Всего наименований %1, на сумму %2'"), НомерСтроки, ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКПрописи, СведенияОДокументе.Валюта));
ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.ДоговорКонтрагента.ВалютаВзаиморасчетов);//СведенияОДокументе.Валюта);
ДанныеПечатиСуммаПрописью.Комментарий = СокрЛП(СведенияОДокументе.Документ.Комментарий);
Сохраняем, проверяем:
Заключение
Не претендую на полноту и истину в последней инстанции в изложении. Просто показал на простом примере, как быстро создать и немного изменить внешнюю печатную форму счет на оплату покупателю в БП 3.0. Может кому поможет…
Метод объекта не обнаружен (Печать).
(1) progr-2008, Расскажите подробней, как Вы использовали обработку?
Вот две ВПФ, которые я только что создал для обычного и управляемого приложения.
Читайте исходную статью, как пользоваться обработкой (изменял для управляемого приложенгия, если найдёте косяки в обычном — пишите — исправлю)
«…наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули. Поэтому, чаще всего, созданную конструктором ВПФ придётся допиливать, перенося в модуль ВПФ эти самые процедцры и функции из общих модулей.»
А как-то можно эти общий процедуры и функции программно перенести в ВПФ?
(3) TrinitronOTV,
овчинка выделки не стоит… Для этого всё равно придётся скопировать тексты общих модулей в конструктор и придумать анализатор текста, чтобы из вызовов процедур общих модулей убрать их имена. Проще создать заготовку ВПФ конструктором, а потом нужные процедуры и функции общих модулей (те, в которых планируется сделать изменения) перенести в модуль ВПФ и тут уже отредактировать. Время на разработку ВПФ всё равно в разы сокращается…
(4) в общем-то согласен с вами
(2)2. Alex_E, а можно подробнее, по шагам, как получили эти формы?
У меня разнообразные ошибки выдаются при разных наборах требуемых функций.
(6) progr-2008,
— про подробнее, будет время выложу инструкцию — сейчас полугодие — не дадут)))
Вы пишИте, что не получается, может в таком режиме смогу помочь…
А то у меня информации 0, только по первому посту могу предположить, что пробуете в обычном приложении…
(7) и в обычном, и в управляемых, в разных конфигурациях — сообщения разные.
Формирую по-умолчанию в УПП 1.3 и в БП 3.0.
Похоже, от версии конфигурации зависит — в некоторых работает, в некоторых нет.
(8) progr-2008, Давайте попробуем таки на абстракное
а пойдём прям по примерам, в такой то конфигурации для такого то документа возникает такая-то ошибка, лучше с картинками, по другому я ничего понять не смогу…
Выложил описание на примере счет покупателю в БП 3.0, вот ВПФ из того примера
(10)Alex_E, отличное описание, особенно важно про изменения ВПФ.
На этой версии конфигурации все сразу получилось и для счета, и для реализации, причем, в счете даже сумма прописью сразу была.
Пункты 1-6 так и делала раньше, только версии конфигураций другие были, не во всех работало, а еще — по несколько форм сразу включала.
Проще намного по одной форме делать, а не сразу пакет.
Теперь достаточно понятно стало.
Спасибо!
(11) progr-2008, Всегда пожалуйста!!!
Про ошибки так ничего конкретного и не скажете, или их нет больше?
(12) с этой версией БП 3.0, если делать по одной форме — ошибок пока нет, пробовала на нескольких документах. Получилось и несколько форм для реализации.
Теперь стало понятно, что если в УПП включать по одной форме и выбирать не Печать, а функцию для этой формы, тоже пока получается без ошибок. Пробовала на реализации, счете.
А вот если несколько форм сразу включить — тогда проблемы, связанные с параметрами печати и т.д.
Но лучше по одной форме делать, намного проще разбираться.
Например, для счета в УПП, если основная Печать:
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(18,19)}: Ожидается выражение
ПараметрыПечати =<<?>> ;
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(19,25)}: Ожидается выражение
КоллекцияПечатныхФорм =<<?>> ;
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(21,19)}: Ожидается выражение
ПараметрыВывода =<<?>> ;
А в реализации еще:
{ВнешняяОбработка.РеализацияТоваровУслуг_ВнешняяПечатная.МодульОбъекта(47)}: Значение не является значением объектного типа (ДоступнаПечатьПоКомплектно)
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
(13) progr-2008, Надо будет посмотреть на досуге…которого сейчас практически нет))) УПП 1.3? Вижу, выше было, зря спрашиваю)))
Модераторы, а почему в еженедельном обзоре публикацию не выложили?
(15) этим занимаются не модераторы. Тем не менее, проверила письмо с рассылкой, Ваша публикация там есть. В блоке «Новые разработки за StartMoney», примерно в середине списка
(16) Alraune, Спасибо Ирина! У меня наверное очки запылились — не увидел))))
(13) progr-2008, покрутил на УПП 1.3, сразу — запускать только в обычном приложении! Потом — под одной печатной форме однозначно) Если нужен пакет — сделать на основании одной ВПФ не проблема, могу, конечно, написать инструкцию, но оно надо?
(18) по одной форме — все получается, с УПП работаю только в обычном.
А вот пакет — очень хорошо бы инструкцию, для УПП надо.
(19) progr-2008, если только позже — сейчас на части рвут — полугодие………
Есть проблема с сохранением печатной формы, когда конфа серверная. Компилируется и создается начальное представление на сервере, а конечное сохранение происходит на клиенте, а это разные пути, соответственно файла не видит. Я побыстрому выпутался так:
1. Создал реквизит формы произвольного типа — ДвоичныеДанныеОбработки;
2. поправил код команды «КомандаСохранить»:
Показать
3. создал соответственно серверную процедуру и функцию:
Показать
(21) hitchkock, Спасибо, включу, как будет время…
(0), на мой взгляд — отличная дыра в безопасности.
Я с помощью Вашей обработки легко получу доступ к серваку где будет находится база.
Не спрашивайте: -Как?
Догадайтесь сами.
(23) BigB, Дыр в безопасности существует много, но есть поговорка — нато и щука в пруду, что бы карась не зевал)))
ЗЫ Обработка вообще то не моя, см. анонс, и существует здесь уже довольно таки длительное время… Но, если вы имеете доступ к базе, то зачем Вам получать его ещё?
(23) BigB, Так что там про дыры? 🙂
Спасибо, в БП 3.0 работает замечательно!
(26) l-Rain, Пожалуйста!!!
Выдается ошибка пробовал на 2х конфигурациях платформа 8.3.8.2027:
Возможно, обработка (отчет) устарела или не является дополнительной:Метод объекта не обнаружен (СведенияОВнешнейОбработке)
——————-
Нашел решение, необходимо добавить функции в модуль объекта обработки — как сказано в статье:
http://infostart.ru/public/305037/
(Для того чтобы добавить дополнительную обработку или отчет в тонкий клиент нужно в модули отчета или обработки прописать одну процедуру и две функции.)
(28) Светлый ум, А можно поподробнее о каких конфигурациях идёт речь? И хотя бы текст ошибки — просто пробую на БП 3.0 УТ 11 .2 ЗУП 3.0 — всё на УФ — ошибок нет, ежели есть — хочу увидеть и исправить…правда…
(29)
— Розница 2.1
— Управление складом 4.0 (Акселот)
Текст ошибки я уже приводил:
«Возможно, обработка (отчет) устарела или не является дополнительной:Метод объекта не обнаружен (СведенияОВнешнейОбработке)»
— только этот текст, видимо дело в БСП (судя по комментам вhttp://infostart.ru/public/305037/ )
(31) Светлый ум, Да блин — тест ошибки можно показать?
(31) Светлый ум, Вот ничё не делая для Розница 2.2.4.22 ВПФ Заказ поставщику…. Усё работает, ещё раз — напишите полный текст ошибки и конфигурацию.
(31) Светлый ум,
— это реально из БСП, но, опять же — нужна конфигурация и полный текст ошибки, и вообще полный фарш — ВПФ, с этой ошибкой
(34) значит такая петрушка только в отраслевках:
— у меня докрученная Розница «Розница 8. Магазин бытовой техники и средств связи, редакция 2.1 (2.1.8.16)»,
поэтому сильно не заморачивайтесь по поводу ошибки, кому надо тот из комментов возьмет — способ допила.
(Плюс комменту 28 поставьте, чтобы в шапке публикации решение было)
(35) Светлый ум, Как скажете (поставил)… Вообще этот конструктор не решает всех проблем — просто даёт заготовку для разработки с минимизацией времени на типовое решение))))
Почему может такая ошибка выдаваться при компиляции:{ВнешняяОбработка.КонструкторВнешнихПечатныхФорм.МодульОбъекта(78)}: Метод объекта не обнаружен (Run)
WshShell.Run(СтрокаЗапуска, 0, Истина);
(37) WeLap, Озвучьте пожалуйста конфигурацию и объект, где получили эту ошибку…
(38)
Здравствуйте!
У меня не открывается файл. Конфигурация и ошибка во вложении.
(39) Попробуйте на платформе постарше, у мня таких проблем не наблюдается, но ставить 8.3.6.* при наличии 8.3.9.* как то не хочется. Если очень нужно — пишите в личку — мог посмотреть через амми админ
(40) Но в 8.3 (8.3.5.1146) работает, только она локальная версия. Может быть причина в том, что удаленный доступ?
не могу сказать, нужно видеть, что происходит….
Вот такая ошибка, что в обычном, что в клиент-серверном режиме.
Платформа 1С:Предприятие 8.3 (8.3.8.1933)
{ВнешняяОбработка.КонструкторВнешнихПечатныхФорм.МодульОбъекта(1311,9)}: Процедура или функция с указанным именем не определена (РазобратьСтрокуRegEx)
рез=<<?>>РазобратьСтрокуRegEx(НРег(ОбрабатываемаяПроцедураФункция.ТекстПроцедуры),»[().,;s=]»+имя+»[().,;s=]»);
(43) Вы попробуйте пройти по обработке создани «по умолчанию», в смысле выделте только нужную печатную форму. Будет так же?
(44) Это при открытии. Забыл указать.
Обычное приложение.
(2)
Это для каких конф?
(0)»наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули»
сейчас это уже и не тенденция вовсе, а «стандарт» — разные БСП в разных конфигурациях и разных внутренних версиях БП, ЗУП и УПП, все во внешних модулях, которые бесконечно вызывают друг друга, и постоянное изменение кода модулей (от правки кода до исправления описаний функций и комментариев).
Так что если кто желает сделать пусть даже простенькую общую ВПФ для разных конфигураций (не говоря уже про универсальные обработки) — предстоит веселенькое занятие сбора, а потом и бесконечной актуализации по всем версиям.
Молодец 1С, как обычно, сделала все правильно — теперь еще и зарубила на корню универсальные обработки.
(46) БП 2.0 и БП 3.0
(47) идите в SAP — тем всё универсально просто))))
(0)»Отладчиком смотри, где собака порылась, на вид всё фильдиперсово»
Вы же не в блоге у себя, исправьте, что ли, такие высказывания ))
(48) а тот авансовый отчет, который выложили у SeiOkami — он тоже для БП3 был?
(50) Вот прям всё прочитал, публикацию и комменты, но приведённой цитаты не нашёл))))) но это ничего, тем более поправить что-то можно только в течении получаса, так что терпите, сэр, или просто, коли не нравится, уйдите по английски))))
ЗЫ если бы и нашёл, то исправлять бы не стал, ибо не вижу ничего криминального
(51) не помню для чего и не помню, что выкладывал — наверное давно дело было
Кстати, не указали, что теперь всегда нужно при создании своей ВПФ — сразу создавать и сервисную форму отладки для этой ВПФ. Именно по причине невозможности теперь создавать универсальные обработчики, в том числе — универсальные отладчики ВПФ. Но уже по причине невозможности программного открытия самих ВПФ при отладке.
У вас форма как раз есть в примере, только не указано, насколько она будет важна в дальнейшем.
(52) это ближе к концу, абзацем ниже от
«Внимание: После каждого изменения лучше сохранять ВПФ и проверять работоспособность, если менять всё подряд, потом может получится, что легче будет начать с начало, чем исправить то, что наменяли. Ещё совет, когда всё работает, и собираетесь что- то допилить, создайте новую версию ВПФ, и меняйте её – останется рабочий вариант, и текущий, с попыткой допила» 🙂
(54) Форма для отладки создается всегда, в реальной работе (после подключения ВПФ) она не используется, нужна только для отладки. В принципе никому не мешает, но если дело принципа — можно удалить, на работоспобность ВПФ не повлияет
(55) Вот новая редакция
, в старой реально была ошибка. Этот вариант менять не буду — мне нравится так)))
Спасибо, очень полезная обработка!
Нормальная обработка, но не все работает если база серверная.
1. Кнопка сохранить пытается сохранить на клиенте то, что сформировано на сервере и нет на клиенте.
2. кнопка зарегистрировать тоже не работает( не разбирался почему.
а так да очень удобно создать ВПФ и подправить ее под себя.
Очень полезная штука.
Алексей, спасибо большое!
Только учусь делать ВПФ — с Вашей обработкой все получилось и многое стало понятно.
(65) Пожалуйста.
Если программист сделал за свою жизнь сам хотя бы одну внешнюю печатную форму, то сделать вторую не представляется трудным. И времени на это нужно немного.
Инструмент, ускоряющий создание печатных форм, конечно очень нужен и ценен, но только тем, кто этим занимается постоянно. Но если Вы программист широкого профиля, которому нужно делать эти формы не чаще раза в полгода , то вникать во всевозможные инструменты по ускорению создания чего то там …, форм, обработок, обращению к HTTP сервисам и т.п. нецелесообразно. Слишком много таких инструментов может существовать …. для того , чтобы забивать ими свой единственный мозг.
(67) Я где-то прописал обязательность использования этого констуктора?))))
Ну а поговорить…))
(69) Аааа, ну эт мы всегда пожалуйста)))
Итак, ИМХО — по мне так он ценен как раз не тем, кто постоянно этим занимается (им не нужно, когда конвейер работает давно и ставбильно, он не требует пристального внимания наладчиков), а тому, кто делает ВПФ от случая к случаю, и загружать свой мозг информацией, как это делается нет никакой необходимости — есть инструмент, в который это заложено, им и пользуемся…
А то, ить, все знают как копать ямы, но можно копать руками, а можно экскаватором, в разных ситуациях использование каждого из этих способов может быть вполне себе оправдано, но по мне так, в любом случае, лопату нужно иметь…
Для того , чтобы копать экскаватором , нужно сначала на курсы экскаваторщиков устроиться. Поучиться недельку другую. Спасибо за ваш инструмент. Как только придется сделать ВПФ, сразу о нем вспомню!
(71) а для того чтобы делать ВПФ ничё не нужно?…вот прям так взять любого гуманоида с улицы, и он раз и наваяет любую ВПФ?
Гуманоидов, инопланетян и др. не рассматриваем. Берем обычного отечественного 1С программиста. Вот что действительно ему нужно, так это принципы, приемы построения (кодирования) ВПФ. Из учебников 1С, ИТС и др. Иначе он не программист , а студент-гуманоид. А инструменты — это дело наживное, хочу использую, хочу нет. Но не подумайте, что я спорю. Безусловно , инструменты всякие нужны, инструменты всякие важны!
(73) я вообще к Вашему
, но не суть…
Уже писал в (63), что при серверном варианте базы обработка не работает.
Компилируется на сервере, а сохраняется на клиенте. и файл не передается.
исправить можно заменой процедуры Команда сохранить на исправленный вариант
Алексей. Если не сложно исправь и опубликуй.
Показать
(77) Спасибо. Сделаю.
(77) и зарегистрировать в полученном шаблоне тоже не работает в серверном варианте. Но ее я не стал править
(79) я пока выложу Ваше исправление, а с регистрацией срозхданной ВПФ на сервере потом — нет времени развернуть сервер, когда сделаю — сделаю и это, а так потестить не на чем….
Выложил новую версию, с исправлением от vshish. Ещё раз спасибо!
(81) Привет! Скачал версию 4.7, она в модуле объекта почему-то не до конца пишет слово «КонецПроцедуры» в процедуре печать. Естественно потом не открывается) после исправления в конфигураторе открывается нормально.
Видел такое у кого-то из клиентов, когда на его компе делал ВПФ, потом стал исправлять на своём — не проявилось… В принципе дописать КонецПроцедуры не проблема, но…порядок быть должЁн — пишите в личку — посмотрим серез АА на Вашем компе — может удастся словить причину…
(83)где код, в котором это прописывается (конецпроцедуры)? У нас тоже не дописывается, Зарплата и управление персоналом, редакция 3.1 (3.1.6.37)
(84) Уже отвечал в (83) — Вам такое же предложение…
(85), решение ниже
(85), Исправил так, работает (в скриншоте). Так же ошибка после кнопки Сохранить — Открыть. Скриншот также прилагается
(87) Спасибо — посмотрю.
(88), также добавил код в модуль объекта, чтобы обработка регистрировалась во внешних отчетах,обработках в Зуп 3.1:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить(«Вид», «ДополнительнаяОбработка»);
ПараметрыРегистрации.Вставить(«Наименование», «КонструкторВПФУФ»);
ПараметрыРегистрации.Вставить(«Версия», «1.0»);
ПараметрыРегистрации.Вставить(«БезопасныйРежим», Ложь);
ПараметрыРегистрации.Вставить(«Информация», «КонструкторВПФУФ»);
ПараметрыРегистрации.Вставить(«ВерсияБСП», «2.0.7.6»);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
«КонструкторВПФУФ»,
«1»,
«ОткрытиеФормы»,
Истина,»»
);
ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
// —Владимир // конец 11.05.2018 8:42:24
(89) Вот это, ИМХО, лишнее… Обработка запускается в разных базах, используется редко, потому регистрация ни к чему…если конечно не стоит задача постоянно ваять ВПФ для конкретной базы))))
(90), при внедрении УФ не помешает)
(91) Кто ж против?
(92), по ошибке модальных окон есть идеи?
(93) Сейчас исправлю, выложу. Дайте почту в личку — пришлю новый вариант для теста
Выложил новую версию 4.8 с исправление от VovkaPutin (ещё раз спасибо), плюс убрал из текста модуля ВПФ все строки с #Если… #КонецЕсли #Область … #КонецОбласти итд. Плюс убрал модальность при открытии ВПФ из конструктора, в последних версиях конфигураций на УФ от неё совсем отказались, потому падало с ошибкой…
Сделал ВПФ М11 для документа Требование-накладная БП 3. БЫСТРО И ПРОСТО. Проверил — РАБОТАЕТ.
Инструкция подробная.
СПАСИБО
(97) Пожалуйста.
Хорошая обработка! Может для новичков что то будет и «сложновато»(если будут какие то запинки), НО реально экономит время 🙂
Создал ВПФ «Накладная на перемещение» для ERP, чтоб в нем автоматически проставлялся «ответственный», прописал , запустил через «открыть» (отладка) всё прекрасно сработало, регистрирую обработку в ERP и она перестает работать с ошибкой » Значение не является значение объектного типа Ответственный»….0_0
(100) К сожалению я не вижу этой ошибки и смоделировать её не могу, могу посмотреть через АА, если хотите — пишите в личку…
(100), отладкой пользоваться умеете?
Добрый день создал ВПФ «ПриложениеКДоговору» в БП 3.0 (3.0.64.48) 1С:Предприятие 8.3 (8.3.12.1529)
При открытии печатной формы выходит ошибка —
{ОбщийМодуль.УправлениеПечатьюБП.Модуль(911)}: Значение не является значением объектного типа (Свойство)
Если НЕ ПараметрыПечати.Свойство(«ИсключаемыеТипыДокументов») Тогда
(103) Ошибка в общем модуле, надо смотреть откуда вызов…могу глянуть через АА, пишите в личку.
Спасибо огромное за ваш труд!