Конструктор внешних печатных форм NEW beta (обычные и управляемые приложения!)

17.10.19

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

Исходная обработка http://infostart.ru/public/162019/, здесь просто исправлены некоторые процедуры и функции для управляемого приложения. (Публикуется с согласия автора SeiOkami) 12.07.2016 - Версия 4.3 - убрал модальность для управляемой формы, изменена встроенная ВПФ . 23.11.2016 - Версия 4.4 - изменена встроенная ВПФ . 03.04.2018 - Версия 4.7 - исправлено сохранение ВПФ в клиент-серверном варианте от vshish. 11.05.2018 - Версия 4.8 - исправление от VovkaPutin плюс убрал из текста модуля ВПФ директивы препроцессора (то, что начинается с "#"), убрал модальность при открытии ВПФ из конструктора. 17.10.2019 - Версия 5.1 - тестировалось на платформе 8.3.15.1700, БП 3.0.73.54

Скачать файлы

Наименование Файл Версия Размер
КонструкторВПФ_NEW_beta_v4.4.epf
.epf 182,10Kb
275
.epf 182,10Kb 275 Скачать
КонструкторВПФ_NEW_beta_v4.7.epf
.epf 182,60Kb
14
.epf 4.7 182,60Kb 14 Скачать
КонструкторВПФ_NEW_beta_v4.8.epf
.epf 182,80Kb
153
.epf 4.8 182,80Kb 153 Скачать
КонструкторВПФ_NEW_beta_v5.1.epf
.epf 185,21Kb
148
.epf 5.1 185,21Kb 148 Скачать

Версия 5.1 БП 3.0.73.54 стал делать ВПФ, выяснилось (внезапно), что в общем модуле "УправлениеПечатью" процедура "ПодготовитьКоллекциюПечатныхФорм" лишилась "Экспорт", пришлось вставить немного изменённую в модуль формы ВПФ.

В принципе всё описано в исходной публикации //infostart.ru/public/162019/.

Могу добавить только, что для  последних версий БСП и, соответственно, конфигураций на управляемых формах, наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули. Поэтому, чаще всего, созданную конструктором ВПФ придётся допиливать, перенося в модуль ВПФ эти самые процедцры  и функции из общих модулей.

Инструкция для управляемого приложения

 

Создадим ВПФ, например, для документа Счет покупателю, печатная форма Счет-заказ (пример делаю на платформе 8.3.8.1784 БП 3.0.43.247 база ДЕМО).

Создание ВПФ

Исхожу из того, что пользоваться конфигуратором, тот, кто создаёт ВПФ умеет, потому картинки оттуда рисовать не будем. Результатом будет внешняя форма, которая ничем не отличается от типовой печатной формы документа.

Итак, по пунктам:

  1. Копируем модуль менеджера документа Счет покупателю, открыв его в Конфигураторе. Копируется весь модуль, например, нажав Ctrl + A, потом Ctrl + С.
  2. Открываем конструктор в режиме учета, выбираем Тип документа СчетНаОплатуПокупателю и нажимаем кнопку Вставить:

  1. Жмём следующую кнопку Анализ. Получаем на закладке Команды и функции список доступных команд печати, список процедур и функций модуля менеджера, и текст выделенных процедур в правом окне. В левом верхнем окне снимаем все галки (кнопки управление вверху)  и отмечаем нужную нам печатную форму СчетЗаказ. В левом нижнем окне нужные для печати выбранной формы процедуры будут отмечены зелёным цветом автоматически. Если необходимо, можно отметить и другие процедуры и функции с помощью кнопки нужна\ не нужна, они будут перенесены в итоговую обработку, но использовать автоматически ВПФ их не будет, поэтому подумайте, оно Вам надо?  В правом окне можно просмотреть текст выделенных в левом нижнем окне процедур и функций. Текст можно изменить, правда никогда этой возможностью не пользовался, но мало ли кому понадобится?:

  1. Следующая кнопка Сформировать. Создаёт текст модуля обработки ВПФ:

  1. Жмём Скомпилировать – на экране ничего не изменится, просто будет создана ВПФ.
  2. Кнопка Сохранить предложит выбрать путь, куда сохранить созданную обработку и открыть созданную ВПФ для проверки. ВПФ создаётся со встроенной формой обработки, поэтому её можно отлаживать не прибегая к дополнительным средствам. При открытии ВПФ сразу проверяем работоспособность, выбрав документ и сформировав печатную форму:

Как уже говорилось, сейчас она ничем не отличается от типовой, и если нужно что-то изменить, это придётся делать руками, о чём расскажу ниже. Хочется заметить, что указанный порядок формирования ВПФ минимален, остальное пробуйте сами…или не пробуйте. Здесь фактически просто перечислены шаги быстрого создания ВПФ для последующей доработки.

Что удивило, и типовая и внешняя вместо суммы прописью выдают в демке сумму числом:

 

Изменение полученной ВПФ

Для исправления ситуации, и добавления чего-то своего в ВПФ, начнём вносить изменения:

  1. Вставим макет счета в ВПФ (по умолчанию используется тот же, что и в типовой форме счета). Для этого посмотрим, какой макет используется. В модуле  объекта ВПФ :
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказ") Тогда
		ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетЗаказ", "Счет на оплату", 
			ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати),,"ОбщийМакет.ПФ_MXL_СчетЗаказ");
		ПараметрыВывода.Вставить("ФормироватьЭД", Истина);
	
КонецЕсли;

Из процедуры Печать видим, что нам нужен общий макет ПФ_MXL_СчетЗаказ. Копируем его в конфигураторе. Ветка Общие – Общие макеты:

Затем в обработке встаём на Макеты и вставляем, теперь макет есть в ВПФ, нужно изменить код модуля, чтобы использовать именно его, а не общий макет:

  1. Анализируем текст процедуры печати и добавляем процедуры и функции общих модулей, использующиеся при формировании печатной формы:
  • Первое, что меняем, это убираем из процедуры печать вызов общего макета – удаляем текст «ОбщийМакет.»
  • Видим, что табличный документ формируется в общем модуле ПечатьТорговыхДокументов, функцию ПечатьСчетаНаОплату из которого копируем в модуль нашей ВПФ (встаем на текст ПечатьСчетаНаОплату и жмём F12 , выбираем функцию и попадаем в общий модуль, где копируем функцию). Я предпочитаю добавленные процедуры и функции включать в отдельную область, которую выделяю в модуле ВПФ:
#Область ДобавленныеПроцедурыИФункции
//между этими строками вставляем скопированные из общих модулей процедуры
#КонецОбласти
  • Сохраняем то, что получилось (или нажимаем на синтаксис контроль). Получаем сообщение об ошибках:

{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(371,3)}: Процедура или функция с указанным именем не определена (ВывестиЗаголовокПредупреждение)

                               <<?>>ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет); (Проверка: Сервер).

Поскольку  не определена процедура без указания через точку, делам вывод, что она находится в том же общем модуле, что и скопированная нами перед этим функция ПечатьСчетаНаОплату – находим её там, и копируем в модуль ВПФ. И вновь пробуем сохранить. В данном случае нам повезло – ошибок больше нет. В обще-то это редкость, по большому счёту, это самый трудоёмкий момент. Бывает, что может понадобится копирование нескольких процедур и функций, и, может быть, даже не из одного модуля. Главное не просто скопировать, но и правильно их потом вызывать. Универсального рецепта для этого у меня нет.

  • Убираем в процедуре печать строку «ПечатьТорговыхДокументов.» - теперь эта функция будет вызываться из модуля ВПФ.
  • Сохраняем ВПФ, проверяеем в режиме учёта – всё работает, только теперь, всё, что нужно для изменений, у нас находятся в ВПФ. Теперь можно делать необходимые изменения .
  1. Изменяем текст модуля ВПФ:
  • Вызов встроенного макеета вместо общего – находим строку "ОбщийМакет.ПФ_MXL_СчетЗаказ", видим, что находится она в добавленной функции из общего модуля, и не меняя общий модуль ПечатьТорговыхДокументов (сохраняя типовую конфигурацию на полной поддержке) изменяем функцию модуля ВПФ:
//Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_СчетЗаказ"); //Было
Макет = ПолучитьМакет("ПФ_MXL_СчетЗаказ"); //Стало

Внимание: После каждого изменения лучше сохранять ВПФ и проверять работоспособность, если менять всё подряд, потом может получится, что легче будет начать с начало, чем исправить то, что наменяли. Ещё совет, когда всё работает, и собираетесь что- то допилить, создайте новую версию ВПФ, и меняйте её – останется рабочий вариант, и текущий, с попыткой допила)))

  • Исправим сумму прописью – сейчас она почему – то выводится числом, вариантов много, можно, например, использовать форматную строку в ячейке макета СуммаПрописью, но это некрасиво, поэтому попробуем найти место в тексте модуля, где заполняется этот параметр и исправим его. Видим строку:
ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.Валюта);

Отладчиком смотрим, где собака порылась. На вид всё фильдиперсово, однако видим вместо строки число. Видим, что при вызове функции общего модуля ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью в параметре СведенияОДокументе.Валюта пусто. Вариантов исправления много – можно вытащить процедуру СформироватьСуммуПрописью в модуль ВПФ, можно посмотреть заполнение строки СведенияОДокументе и заполнить валюту там, можно проверить заполнение валюты, и если там пусто использовать валюту по умолчанию из константы. Мне лень, поэтому возьмём валюту из договора:

ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.ДоговорКонтрагента.ВалютаВзаиморасчетов);//СведенияОДокументе.Валюта);

Сохраняем, проверяем:

  • Теперь добавим в макет новый параметр, например Комментарий и выведем после итоговой строки (пример условный, просто как пример)))):

Обратите внимание, что параметр находится внутри области макета, создал я его так (профи просьба не читать далее)))), встав на СуммаПрописью правой кнопкой – раздвинуть, потом скопировал СуммаПрописью, вставил в среднюю стоку и поменял в третьей строчке СуммаПрописью на Комментарий.

В тексте модуля делаем следующие изменения:

ДанныеПечатиСуммаПрописью = Новый Структура("ИтоговаяСтрока, СуммаПрописью, Комментарий");

и четырьмя строчками ниже вставляем строку:

ДанныеПечатиСуммаПрописью.Комментарий = СокрЛП(СведенияОДокументе.Документ.Комментарий);

В итоге получим кусок кода:

// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ДанныеПечатиСуммаПрописью = Новый Структура("ИтоговаяСтрока, СуммаПрописью, Комментарий");
СуммаКПрописи = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС);
ДанныеПечатиСуммаПрописью.ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Всего наименований %1, на сумму %2'"),     НомерСтроки, ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКПрописи, СведенияОДокументе.Валюта));
ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.ДоговорКонтрагента.ВалютаВзаиморасчетов);//СведенияОДокументе.Валюта);
ДанныеПечатиСуммаПрописью.Комментарий = СокрЛП(СведенияОДокументе.Документ.Комментарий);

Сохраняем, проверяем:

 

Заключение

 

Не претендую на полноту и истину в последней инстанции в изложении. Просто показал на простом примере, как быстро создать и немного изменить внешнюю печатную форму счет на оплату покупателю в БП 3.0. Может кому поможет…

 

ВПФ

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    122160    670    389    

714

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7293    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3537    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177751    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99347    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18115    6    8    

39

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28110    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

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

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23602    15    15    

32
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. progr-2008 118 10.07.16 16:08 Сейчас в теме
Метод объекта не обнаружен (Печать).

2. Alex_E 2353 10.07.16 16:11 Сейчас в теме
(1) progr-2008, Расскажите подробней, как Вы использовали обработку?
Вот две ВПФ, которые я только что создал для обычного и управляемого приложения.
Читайте исходную статью, как пользоваться обработкой (изменял для управляемого приложенгия, если найдёте косяки в обычном - пишите - исправлю)
Прикрепленные файлы:
АвансовыйОтчет (внешняя для 2.0).epf
АвансовыйОтчет (внешняя для 3.0).epf
6. progr-2008 118 12.07.16 00:05 Сейчас в теме
(2)2. Alex_E, а можно подробнее, по шагам, как получили эти формы?
У меня разнообразные ошибки выдаются при разных наборах требуемых функций.


7. Alex_E 2353 12.07.16 08:28 Сейчас в теме
(6) progr-2008,
У меня разнообразные ошибки выдаются при разных наборах требуемых функций.
- про подробнее, будет время выложу инструкцию - сейчас полугодие - не дадут)))
Вы пишИте, что не получается, может в таком режиме смогу помочь...
А то у меня информации 0, только по первому посту могу предположить, что пробуете в обычном приложении...
8. progr-2008 118 12.07.16 09:42 Сейчас в теме
(7) и в обычном, и в управляемых, в разных конфигурациях - сообщения разные.
Формирую по-умолчанию в УПП 1.3 и в БП 3.0.
Похоже, от версии конфигурации зависит - в некоторых работает, в некоторых нет.
9. Alex_E 2353 12.07.16 11:24 Сейчас в теме
(8) progr-2008, Давайте попробуем таки на абстракное
в разных конфигурациях - сообщения разные.
а пойдём прям по примерам, в такой то конфигурации для такого то документа возникает такая-то ошибка, лучше с картинками, по другому я ничего понять не смогу...
46. AlexO 135 15.04.17 10:03 Сейчас в теме
(2)
Вот две ВПФ, которые я только что создал для обычного и управляемого приложения.
Это для каких конф?
48. Alex_E 2353 15.04.17 10:15 Сейчас в теме
51. AlexO 135 15.04.17 10:21 Сейчас в теме
(48) а тот авансовый отчет, который выложили у SeiOkami - он тоже для БП3 был?
53. Alex_E 2353 15.04.17 10:30 Сейчас в теме
(51) не помню для чего и не помню, что выкладывал - наверное давно дело было
3. TrinitronOTV 14 11.07.16 05:47 Сейчас в теме
"...наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули. Поэтому, чаще всего, созданную конструктором ВПФ придётся допиливать, перенося в модуль ВПФ эти самые процедцры и функции из общих модулей."
А как-то можно эти общий процедуры и функции программно перенести в ВПФ?
4. Alex_E 2353 11.07.16 07:48 Сейчас в теме
(3) TrinitronOTV,
А как-то можно эти общий процедуры и функции программно перенести в ВПФ
овчинка выделки не стоит... Для этого всё равно придётся скопировать тексты общих модулей в конструктор и придумать анализатор текста, чтобы из вызовов процедур общих модулей убрать их имена. Проще создать заготовку ВПФ конструктором, а потом нужные процедуры и функции общих модулей (те, в которых планируется сделать изменения) перенести в модуль ВПФ и тут уже отредактировать. Время на разработку ВПФ всё равно в разы сокращается...
5. TrinitronOTV 14 11.07.16 12:37 Сейчас в теме
(4) в общем-то согласен с вами
10. Alex_E 2353 12.07.16 14:33 Сейчас в теме
Выложил описание на примере счет покупателю в БП 3.0, вот ВПФ из того примера
Прикрепленные файлы:
СчетНаОплатуПокупателю (ВПФ).epf
Tarlich; progr-2008; +2 Ответить
11. progr-2008 118 12.07.16 21:15 Сейчас в теме
(10)Alex_E, отличное описание, особенно важно про изменения ВПФ.

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

Пункты 1-6 так и делала раньше, только версии конфигураций другие были, не во всех работало, а еще - по несколько форм сразу включала.
Проще намного по одной форме делать, а не сразу пакет.

Теперь достаточно понятно стало.

Спасибо!
12. Alex_E 2353 12.07.16 22:29 Сейчас в теме
(11) progr-2008, Всегда пожалуйста!!!
Про ошибки так ничего конкретного и не скажете, или их нет больше?
13. progr-2008 118 12.07.16 23:47 Сейчас в теме
(12) с этой версией БП 3.0, если делать по одной форме - ошибок пока нет, пробовала на нескольких документах. Получилось и несколько форм для реализации.

Теперь стало понятно, что если в УПП включать по одной форме и выбирать не Печать, а функцию для этой формы, тоже пока получается без ошибок. Пробовала на реализации, счете.

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

Например, для счета в УПП, если основная Печать:
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(18,19)}: Ожидается выражение
ПараметрыПечати =<<?>> ;
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(19,25)}: Ожидается выражение
КоллекцияПечатныхФорм =<<?>> ;
{ВнешняяОбработка.СчетНаОплатуПокупателю_ВнешняяПечатная.МодульОбъекта(21,19)}: Ожидается выражение
ПараметрыВывода =<<?>> ;

А в реализации еще:
{ВнешняяОбработка.РеализацияТоваровУслуг_ВнешняяПечатная.МодульОбъекта(47)}: Значение не является значением объектного типа (ДоступнаПечатьПоКомплектно)
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
14. Alex_E 2353 13.07.16 06:32 Сейчас в теме
(13) progr-2008, Надо будет посмотреть на досуге...которого сейчас практически нет))) УПП 1.3? Вижу, выше было, зря спрашиваю)))
18. Alex_E 2353 14.07.16 14:55 Сейчас в теме
(13) progr-2008, покрутил на УПП 1.3, сразу - запускать только в обычном приложении! Потом - под одной печатной форме однозначно) Если нужен пакет - сделать на основании одной ВПФ не проблема, могу, конечно, написать инструкцию, но оно надо?
progr-2008; +1 Ответить
19. progr-2008 118 15.07.16 01:03 Сейчас в теме
(18) по одной форме - все получается, с УПП работаю только в обычном.
А вот пакет - очень хорошо бы инструкцию, для УПП надо.
20. Alex_E 2353 15.07.16 09:15 Сейчас в теме
(19) progr-2008, если только позже - сейчас на части рвут - полугодие.........
progr-2008; +1 Ответить
15. Alex_E 2353 13.07.16 08:59 Сейчас в теме
Модераторы, а почему в еженедельном обзоре публикацию не выложили?
16. Alraune 1502 13.07.16 09:07 Сейчас в теме
(15) этим занимаются не модераторы. Тем не менее, проверила письмо с рассылкой, Ваша публикация там есть. В блоке "Новые разработки за StartMoney", примерно в середине списка
17. Alex_E 2353 13.07.16 09:19 Сейчас в теме
(16) Alraune, Спасибо Ирина! У меня наверное очки запылились - не увидел))))
21. hitchkock 11 18.07.16 17:55 Сейчас в теме
Есть проблема с сохранением печатной формы, когда конфа серверная. Компилируется и создается начальное представление на сервере, а конечное сохранение происходит на клиенте, а это разные пути, соответственно файла не видит. Я побыстрому выпутался так:
1. Создал реквизит формы произвольного типа - ДвоичныеДанныеОбработки;
2. поправил код команды "КомандаСохранить":
//Не работает когда серверная
	//ДвоичныеДанныеОбработки = Новый ДвоичныеДанные(Объект.ИмяГотовогоФайла);
	//ФайлОбработки = Новый Файл(Объект.ИмяГотовогоФайла);
	ПолучитьДвоичныеДанные();
	ФайлОбработкиСуществует = СуществованиеФайлаОбработки();
	
	//Если ФайлОбработки.Существует() тогда
	Если ФайлОбработкиСуществует тогда
Показать

3. создал соответственно серверную процедуру и функцию:
&НаСервере
Процедура ПолучитьДвоичныеДанные()
	ДвоичныеДанныеОбработки = Новый ДвоичныеДанные(Объект.ИмяГотовогоФайла);
КонецПроцедуры

&НаСервере
Функция СуществованиеФайлаОбработки()
	ФайлОбработки = Новый Файл(Объект.ИмяГотовогоФайла);
	Возврат ФайлОбработки.Существует();
КонецФункции
Показать
СергейКа; Alex_E; +2 Ответить
22. Alex_E 2353 19.07.16 07:19 Сейчас в теме
(21) hitchkock, Спасибо, включу, как будет время...
23. BigB 191 22.07.16 14:45 Сейчас в теме
(0), на мой взгляд - отличная дыра в безопасности.
Я с помощью Вашей обработки легко получу доступ к серваку где будет находится база.
Не спрашивайте: -Как?
Догадайтесь сами.
24. Alex_E 2353 22.07.16 14:58 Сейчас в теме
(23) BigB, Дыр в безопасности существует много, но есть поговорка - нато и щука в пруду, что бы карась не зевал)))

ЗЫ Обработка вообще то не моя, см. анонс, и существует здесь уже довольно таки длительное время... Но, если вы имеете доступ к базе, то зачем Вам получать его ещё?
25. Alex_E 2353 24.08.16 08:00 Сейчас в теме
(23) BigB, Так что там про дыры? :-)
26. l-Rain 25.08.16 17:00 Сейчас в теме
Спасибо, в БП 3.0 работает замечательно!
27. Alex_E 2353 25.08.16 20:37 Сейчас в теме
28. Светлый ум 406 29.08.16 20:16 Сейчас в теме
Выдается ошибка пробовал на 2х конфигурациях платформа 8.3.8.2027:

Возможно, обработка (отчет) устарела или не является дополнительной:Метод объекта не обнаружен (СведенияОВнешнейОбработке)

-------------------

Нашел решение, необходимо добавить функции в модуль объекта обработки - как сказано в статье:
(Для того чтобы добавить дополнительную обработку или отчет в тонкий клиент нужно в модули отчета или обработки прописать одну процедуру и две функции.)
http://infostart.ru/public/305037/
klaus38; Kolunya; Alex_E; Team leader; +4 Ответить
29. Alex_E 2353 29.08.16 20:31 Сейчас в теме
(28) Светлый ум, А можно поподробнее о каких конфигурациях идёт речь? И хотя бы текст ошибки - просто пробую на БП 3.0 УТ 11 .2 ЗУП 3.0 - всё на УФ - ошибок нет, ежели есть - хочу увидеть и исправить...правда...
30. Светлый ум 406 29.08.16 22:12 Сейчас в теме
(29)

- Розница 2.1
- Управление складом 4.0 (Акселот)
31. Светлый ум 406 29.08.16 22:13 Сейчас в теме
Текст ошибки я уже приводил:
"Возможно, обработка (отчет) устарела или не является дополнительной:Метод объекта не обнаружен (СведенияОВнешнейОбработке)"

- только этот текст, видимо дело в БСП (судя по комментам в http://infostart.ru/public/305037/ )
32. Alex_E 2353 29.08.16 22:18 Сейчас в теме
(31) Светлый ум, Да блин - тест ошибки можно показать?
33. Alex_E 2353 29.08.16 22:29 Сейчас в теме
(31) Светлый ум, Вот ничё не делая для Розница 2.2.4.22 ВПФ Заказ поставщику.... Усё работает, ещё раз - напишите полный текст ошибки и конфигурацию.
Прикрепленные файлы:
ЗаказПоставщику (ВПФ_Розница).epf
34. Alex_E 2353 29.08.16 22:38 Сейчас в теме
(31) Светлый ум,
Возможно, обработка (отчет) устарела или не является дополнительной:Метод о
- это реально из БСП, но, опять же - нужна конфигурация и полный текст ошибки, и вообще полный фарш - ВПФ, с этой ошибкой
35. Светлый ум 406 30.08.16 18:42 Сейчас в теме
(34) значит такая петрушка только в отраслевках:

- у меня докрученная Розница "Розница 8. Магазин бытовой техники и средств связи, редакция 2.1 (2.1.8.16)",

поэтому сильно не заморачивайтесь по поводу ошибки, кому надо тот из комментов возьмет - способ допила.
(Плюс комменту 28 поставьте, чтобы в шапке публикации решение было)
36. Alex_E 2353 30.08.16 18:46 Сейчас в теме
(35) Светлый ум, Как скажете (поставил)... Вообще этот конструктор не решает всех проблем - просто даёт заготовку для разработки с минимизацией времени на типовое решение))))
37. WeLap 72 26.10.16 11:54 Сейчас в теме
Почему может такая ошибка выдаваться при компиляции:{ВнешняяОбработка.КонструкторВнешнихПечатныхФорм.МодульОбъекта(78)}: Метод объекта не обнаружен (Run)
WshShell.Run(СтрокаЗапуска, 0, Истина);
38. Alex_E 2353 26.10.16 15:15 Сейчас в теме
(37) WeLap, Озвучьте пожалуйста конфигурацию и объект, где получили эту ошибку...
39. zxcvbnm,. 28.12.16 17:30 Сейчас в теме
(38)
Здравствуйте!
У меня не открывается файл. Конфигурация и ошибка во вложении.
Прикрепленные файлы:
40. Alex_E 2353 28.12.16 17:45 Сейчас в теме
(39) Попробуйте на платформе постарше, у мня таких проблем не наблюдается, но ставить 8.3.6.* при наличии 8.3.9.* как то не хочется. Если очень нужно - пишите в личку - мог посмотреть через амми админ
41. zxcvbnm,. 29.12.16 11:46 Сейчас в теме
(40) Но в 8.3 (8.3.5.1146) работает, только она локальная версия. Может быть причина в том, что удаленный доступ?
42. Alex_E 2353 29.12.16 16:04 Сейчас в теме
Может быть причина в том, что удаленный доступ?
не могу сказать, нужно видеть, что происходит....
43. Cartman 17.03.17 08:39 Сейчас в теме
Вот такая ошибка, что в обычном, что в клиент-серверном режиме.
Платформа 1С:Предприятие 8.3 (8.3.8.1933)

{ВнешняяОбработка.КонструкторВнешнихПечатныхФорм.МодульОбъекта(1311,9)}: Процедура или функция с указанным именем не определена (РазобратьСтрокуRegEx)
рез=<<?>>РазобратьСтрокуRegEx(НРег(ОбрабатываемаяПроцедураФункция.ТекстПроцедуры),"[\(\)\.\,\;\s=]"+имя+"[\(\)\.\,\;\s=]");
44. Alex_E 2353 17.03.17 09:08 Сейчас в теме
(43) Вы попробуйте пройти по обработке создани "по умолчанию", в смысле выделте только нужную печатную форму. Будет так же?
45. Cartman 17.03.17 12:48 Сейчас в теме
(44) Это при открытии. Забыл указать.
Обычное приложение.
47. AlexO 135 15.04.17 10:08 Сейчас в теме
(0)"наметилась тенденция выносить процедуры и функции печати из модуля менеджера в общие модули"
сейчас это уже и не тенденция вовсе, а "стандарт" - разные БСП в разных конфигурациях и разных внутренних версиях БП, ЗУП и УПП, все во внешних модулях, которые бесконечно вызывают друг друга, и постоянное изменение кода модулей (от правки кода до исправления описаний функций и комментариев).
Так что если кто желает сделать пусть даже простенькую общую ВПФ для разных конфигураций (не говоря уже про универсальные обработки) - предстоит веселенькое занятие сбора, а потом и бесконечной актуализации по всем версиям.
Молодец 1С, как обычно, сделала все правильно - теперь еще и зарубила на корню универсальные обработки.
49. Alex_E 2353 15.04.17 10:17 Сейчас в теме
(47) идите в SAP - тем всё универсально просто))))
50. AlexO 135 15.04.17 10:19 Сейчас в теме
(0)"Отладчиком смотри, где собака порылась, на вид всё фильдиперсово"
Вы же не в блоге у себя, исправьте, что ли, такие высказывания ))
52. Alex_E 2353 15.04.17 10:29 Сейчас в теме
(50) Вот прям всё прочитал, публикацию и комменты, но приведённой цитаты не нашёл))))) но это ничего, тем более поправить что-то можно только в течении получаса, так что терпите, сэр, или просто, коли не нравится, уйдите по английски))))

ЗЫ если бы и нашёл, то исправлять бы не стал, ибо не вижу ничего криминального
55. AlexO 135 15.04.17 10:34 Сейчас в теме
(52) это ближе к концу, абзацем ниже от
"Внимание: После каждого изменения лучше сохранять ВПФ и проверять работоспособность, если менять всё подряд, потом может получится, что легче будет начать с начало, чем исправить то, что наменяли. Ещё совет, когда всё работает, и собираетесь что- то допилить, создайте новую версию ВПФ, и меняйте её – останется рабочий вариант, и текущий, с попыткой допила" :)
57. Alex_E 2353 15.04.17 10:42 Сейчас в теме
(55) Вот новая редакция
Отладчиком смотрим, где собака порылась. На вид всё фильдиперсово, однако видим вместо строки число.
, в старой реально была ошибка. Этот вариант менять не буду - мне нравится так)))
58. пользователь 15.04.17 10:45
Сообщение было скрыто модератором.
...
59. пользователь 15.04.17 10:48
Сообщение было скрыто модератором.
...
60. пользователь 15.04.17 13:05
Сообщение было скрыто модератором.
...
61. пользователь 15.04.17 13:14
Сообщение было скрыто модератором.
...
54. AlexO 135 15.04.17 10:31 Сейчас в теме
Кстати, не указали, что теперь всегда нужно при создании своей ВПФ - сразу создавать и сервисную форму отладки для этой ВПФ. Именно по причине невозможности теперь создавать универсальные обработчики, в том числе - универсальные отладчики ВПФ. Но уже по причине невозможности программного открытия самих ВПФ при отладке.
У вас форма как раз есть в примере, только не указано, насколько она будет важна в дальнейшем.
56. Alex_E 2353 15.04.17 10:34 Сейчас в теме
(54) Форма для отладки создается всегда, в реальной работе (после подключения ВПФ) она не используется, нужна только для отладки. В принципе никому не мешает, но если дело принципа - можно удалить, на работоспобность ВПФ не повлияет
62. Matveev_VS 159 26.07.17 18:58 Сейчас в теме
Спасибо, очень полезная обработка!
63. vshish 150 29.01.18 02:58 Сейчас в теме
Нормальная обработка, но не все работает если база серверная.
1. Кнопка сохранить пытается сохранить на клиенте то, что сформировано на сервере и нет на клиенте.
2. кнопка зарегистрировать тоже не работает( не разбирался почему.
а так да очень удобно создать ВПФ и подправить ее под себя.
77. vshish 150 03.04.18 08:16 Сейчас в теме
Уже писал в (63), что при серверном варианте базы обработка не работает.
Компилируется на сервере, а сохраняется на клиенте. и файл не передается.
исправить можно заменой процедуры Команда сохранить на исправленный вариант

Алексей. Если не сложно исправь и опубликуй.

&НаСервереБезКонтекста
Функция ПолучитьДвоичныеДанныеФайла(ИмяГотовогоФайла, Отказ)

	ФайлОбработки = Новый Файл(ИмяГотовогоФайла);
	
	Если ФайлОбработки.Существует() тогда
		Возврат Новый ДвоичныеДанные(ИмяГотовогоФайла);
	Иначе 
		Отказ = Истина;
		Возврат Неопределено;
	КонецЕсли;

КонецФункции // ПолучитьДвоичныеДанныеФайла()
 

&НаКлиенте
Процедура КомандаСохранить(Команда)
	
	Если НЕ Объект.сФайлВродеБыГотов тогда
		ПоказатьПредупреждение(,"Скомпилируйте файл ВПФ!");
		Возврат;
	КонецЕсли;
	
	Отказ = Ложь;
	ДвоичныеДанныеОбработки = ПолучитьДвоичныеДанныеФайла(Объект.ИмяГотовогоФайла, Отказ);
	
	Если не Отказ тогда
		ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
		ДиалогФайла.Фильтр = "*.epf";
		ДиалогФайла.Расширение = "epf";
		ДиалогФайла.ПолноеИмяФайла = Объект.ИмяНовойОбработки;
		Если ДиалогФайла.Выбрать() Тогда
			ИмяФайла = ДиалогФайла.ПолноеИмяФайла;
			ДвоичныеДанныеОбработки.Записать(ИмяФайла);
			ГотовыйФайлик = Новый Файл(ИмяФайла);
			
			Счетчик = 0;
			Пока НЕ ГотовыйФайлик.Существует() И Счетчик < 999 цикл
				Счетчик = Счетчик + 1;
			КонецЦикла;
			
			сФайлСохранен = Истина;
			
			Если ГотовыйФайлик.Существует() тогда
				Объект.ПолныйПутьВПФ = ГотовыйФайлик.ПолноеИмя;
				Режим = РежимДиалогаВопрос.ДаНет;
				Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияОткрытияВПФ", ЭтаФорма, Параметры);
				ПоказатьВопрос(Оповещение, "Файл внешней печатной формы сохранен. Открыть его для проверки?", Режим, 0);
			Иначе
				ПоказатьПредупреждение(,"Чего-то не так =(");
			КонецЕсли;	
			
		КонецЕсли;
	КонецЕсли;   
	
КонецПроцедуры
Показать
78. Alex_E 2353 03.04.18 08:44 Сейчас в теме
79. vshish 150 03.04.18 08:56 Сейчас в теме
(77) и зарегистрировать в полученном шаблоне тоже не работает в серверном варианте. Но ее я не стал править
80. Alex_E 2353 03.04.18 09:21 Сейчас в теме
(79) я пока выложу Ваше исправление, а с регистрацией срозхданной ВПФ на сервере потом - нет времени развернуть сервер, когда сделаю - сделаю и это, а так потестить не на чем....
64. Alex6600 20.02.18 11:02 Сейчас в теме
Очень полезная штука.
65. kazzuss 7 23.03.18 09:18 Сейчас в теме
Алексей, спасибо большое!

Только учусь делать ВПФ - с Вашей обработкой все получилось и многое стало понятно.
66. Alex_E 2353 23.03.18 09:53 Сейчас в теме
67. vpaoli 26 27.03.18 11:09 Сейчас в теме
Если программист сделал за свою жизнь сам хотя бы одну внешнюю печатную форму, то сделать вторую не представляется трудным. И времени на это нужно немного.
Инструмент, ускоряющий создание печатных форм, конечно очень нужен и ценен, но только тем, кто этим занимается постоянно. Но если Вы программист широкого профиля, которому нужно делать эти формы не чаще раза в полгода , то вникать во всевозможные инструменты по ускорению создания чего то там ..., форм, обработок, обращению к HTTP сервисам и т.п. нецелесообразно. Слишком много таких инструментов может существовать .... для того , чтобы забивать ими свой единственный мозг.
68. Alex_E 2353 27.03.18 11:39 Сейчас в теме
(67) Я где-то прописал обязательность использования этого констуктора?))))
69. vpaoli 26 27.03.18 11:51 Сейчас в теме
70. Alex_E 2353 27.03.18 11:59 Сейчас в теме
(69) Аааа, ну эт мы всегда пожалуйста)))
Итак, ИМХО - по мне так он ценен как раз не тем, кто постоянно этим занимается (им не нужно, когда конвейер работает давно и ставбильно, он не требует пристального внимания наладчиков), а тому, кто делает ВПФ от случая к случаю, и загружать свой мозг информацией, как это делается нет никакой необходимости - есть инструмент, в который это заложено, им и пользуемся...
А то, ить, все знают как копать ямы, но можно копать руками, а можно экскаватором, в разных ситуациях использование каждого из этих способов может быть вполне себе оправдано, но по мне так, в любом случае, лопату нужно иметь...
71. vpaoli 26 27.03.18 12:12 Сейчас в теме
Для того , чтобы копать экскаватором , нужно сначала на курсы экскаваторщиков устроиться. Поучиться недельку другую. Спасибо за ваш инструмент. Как только придется сделать ВПФ, сразу о нем вспомню!
72. Alex_E 2353 27.03.18 12:17 Сейчас в теме
(71) а для того чтобы делать ВПФ ничё не нужно?...вот прям так взять любого гуманоида с улицы, и он раз и наваяет любую ВПФ?
73. vpaoli 26 27.03.18 12:30 Сейчас в теме
Гуманоидов, инопланетян и др. не рассматриваем. Берем обычного отечественного 1С программиста. Вот что действительно ему нужно, так это принципы, приемы построения (кодирования) ВПФ. Из учебников 1С, ИТС и др. Иначе он не программист , а студент-гуманоид. А инструменты - это дело наживное, хочу использую, хочу нет. Но не подумайте, что я спорю. Безусловно , инструменты всякие нужны, инструменты всякие важны!
74. Alex_E 2353 27.03.18 13:07 Сейчас в теме
(73) я вообще к Вашему
чтобы копать экскаватором , нужно сначала на курсы экскаваторщиков устроиться.
, но не суть...
75. пользователь 28.03.18 01:47
Сообщение было скрыто модератором.
...
76. пользователь 29.03.18 19:48
Сообщение было скрыто модератором.
...
81. Alex_E 2353 03.04.18 09:42 Сейчас в теме
Выложил новую версию, с исправлением от vshish. Ещё раз спасибо!
82. Dmitri93 12 09.04.18 15:02 Сейчас в теме
(81) Привет! Скачал версию 4.7, она в модуле объекта почему-то не до конца пишет слово "КонецПроцедуры" в процедуре печать. Естественно потом не открывается) после исправления в конфигураторе открывается нормально.
Прикрепленные файлы:
83. Alex_E 2353 09.04.18 15:06 Сейчас в теме
Видел такое у кого-то из клиентов, когда на его компе делал ВПФ, потом стал исправлять на своём - не проявилось... В принципе дописать КонецПроцедуры не проблема, но...порядок быть должЁн - пишите в личку - посмотрим серез АА на Вашем компе - может удастся словить причину...
84. VovkaPutin 31 10.05.18 15:39 Сейчас в теме
(83)где код, в котором это прописывается (конецпроцедуры)? У нас тоже не дописывается, Зарплата и управление персоналом, редакция 3.1 (3.1.6.37)
85. Alex_E 2353 10.05.18 19:46 Сейчас в теме
(84) Уже отвечал в (83) - Вам такое же предложение...
86. VovkaPutin 31 11.05.18 08:09 Сейчас в теме
87. VovkaPutin 31 11.05.18 08:30 Сейчас в теме
(85), Исправил так, работает (в скриншоте). Так же ошибка после кнопки Сохранить - Открыть. Скриншот также прилагается
Прикрепленные файлы:
88. Alex_E 2353 11.05.18 08:52 Сейчас в теме
89. VovkaPutin 31 11.05.18 08:55 Сейчас в теме
(88), также добавил код в модуль объекта, чтобы обработка регистрировалась во внешних отчетах,обработках в Зуп 3.1:

код
Gvozdarev; +1 Ответить
90. Alex_E 2353 11.05.18 08:59 Сейчас в теме
(89) Вот это, ИМХО, лишнее... Обработка запускается в разных базах, используется редко, потому регистрация ни к чему...если конечно не стоит задача постоянно ваять ВПФ для конкретной базы))))
91. VovkaPutin 31 11.05.18 09:03 Сейчас в теме
(90), при внедрении УФ не помешает)
92. Alex_E 2353 11.05.18 09:06 Сейчас в теме
93. VovkaPutin 31 11.05.18 09:07 Сейчас в теме
(92), по ошибке модальных окон есть идеи?
94. Alex_E 2353 11.05.18 09:17 Сейчас в теме
(93) Сейчас исправлю, выложу. Дайте почту в личку - пришлю новый вариант для теста
95. Alex_E 2353 11.05.18 11:08 Сейчас в теме
Выложил новую версию 4.8 с исправление от VovkaPutin (ещё раз спасибо), плюс убрал из текста модуля ВПФ все строки с #Если... #КонецЕсли #Область ... #КонецОбласти итд. Плюс убрал модальность при открытии ВПФ из конструктора, в последних версиях конфигураций на УФ от неё совсем отказались, потому падало с ошибкой...
96. alexvi33 11.05.18 13:28 Сейчас в теме
Сделал ВПФ М11 для документа Требование-накладная БП 3. БЫСТРО И ПРОСТО. Проверил - РАБОТАЕТ.
Инструкция подробная.
97. alexvi33 11.05.18 13:29 Сейчас в теме
98. Alex_E 2353 11.05.18 13:35 Сейчас в теме
99. Kaspirovsky 215 22.06.18 11:05 Сейчас в теме
Хорошая обработка! Может для новичков что то будет и "сложновато"(если будут какие то запинки), НО реально экономит время :)
Оставьте свое сообщение