Шаблон для внешней печатной формы на тонком клиенте с возможностью отладки

25.10.13

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

Предлагаю Вашему вниманию (а заодно и обсуждению) шаблон для внешней печатной формы на тонком клиенте под библиотеку стандартных подсистем с возможностью отладки без изменения конфигурации...

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Шаблоны внешней печатной формы
.zip 29,07Kb ver:1.0.0
63
63 Скачать (1 SM) Купить за 1 850 руб.

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

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

И вот, не желая отказываться от комфортной жизни и на тонком клиенте, села за перенос печатной формы (первая ласточка так сказать) с твердой уверенностью сделать себе похожий на предыдущий шаблон. Сначала меня порадовало вид публикации "Режим отладки". Впрочем, радость быстро прошла. Это всего лишь
 Режим отладки – обработка доступна для использования только с установленной ролью Добавление и изменение дополнительных обработок или Полные права."
Чем дальше я углублялась в логику всего происходящего, тем больше понимала, что "предельно просто" тут не прокатит. Но "лучше день потерять, потом за 5 минут долететь". И вот после трудов я получила себе нечто похожее, чего я так желала. Шаблон готов, печатная форма заработала.

Далее пойдет детальное повествование, как пользоваться этим "чудом". Итак........

Основные процедуры и функции лежат в модуле формы.

Первая функция, предназначенная для создания структуры регистрации обработки в информационной базе

Функция СведенияОВнешнейОбработке() Экспорт

Все подробности можно прочитать в комментариях внутри функции, здесь я приведу только пример как ее заполнить (комментарии убрала для компактности):

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
  
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
   
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПоступлениеТоваровУслуг");
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
   
    ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'ПСА'"));
    ПараметрыРегистрации.Вставить("Версия", "2.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Печать приемосдаточного акта.'"));
    ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'ПСА'");         
    НоваяКоманда.Идентификатор = "ПСА";
    НоваяКоманда.Использование = "ВызовСерверногоМетода";
    НоваяКоманда.ПоказыватьОповещение = Истина;                        
    НоваяКоманда.Модификатор = "ПечатьMXL";
            
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Далее идет функция создания таблицы команд, ее не надо редактировать, оставляем как есть

Функция ПолучитьТаблицуКоманд()

А вот процедуру печати уже заполняем как нам нужно, она отвечает за вызов процедур создания нужных нам печатных форм и характерна только для обработок типа "ПечатнаяФорма"

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
 
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПСА") Тогда
        Если ТипЗнч(МассивОбъектов) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПСА", НСтр("ru = 'ПСА'"),
                                                                Печать_ПСА_Реализация(МассивОбъектов, ОбъектыПечати));
        ИначеЕсли ТипЗнч(МассивОбъектов) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
            УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПСА", НСтр("ru = 'ПСА'"),
                                                                Печать_ПСА_Поступление(МассивОбъектов, ОбъектыПечати));
        Иначе
            МассивРеализация = Новый Массив; МассивПоступление = Новый Массив;
            Для каждого Элем Из МассивОбъектов Цикл
                Если ТипЗнч(Элем) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
                    МассивРеализация.Добавить(Элем);
                ИначеЕсли ТипЗнч(Элем) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
                    МассивПоступление.Добавить(Элем);
                КонецЕсли;
                
                Если МассивРеализация.Количество() > 0 Тогда
                    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПСА", НСтр("ru = 'ПСА'"),
 Печать_ПСА_Реализация(МассивОбъектов, ОбъектыПечати));
                КонецЕсли;
                Если МассивПоступление.Количество() > 0 Тогда
                    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПСА", НСтр("ru = 'ПСА'"),
 Печать_ПСА_Поступление(МассивОбъектов, ОбъектыПечати));
                КонецЕсли;
            КонецЦикла;
                                                                
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Ну принципе и все. С этого момента можете приступать уже непосредственно к созданию самой печатной формы.
Ах, да... Исправьте реквизит обработки СсылкаНаОбъект на нужную Вам ссылку для удобства тестирования. Формы, которые в обработке, трогать не нужно.

Так в чем же "фишка"? А вот теперь именно про нее. Обработку можно тестировать как простую обработку через меню Файл -> Открыть...
Появляется форма обработки, которая позволяет выбрать ссылку на объект для созданной печатной формы.

Если у Вас все благополучно закодировано, то Вы увидите здесь результат своей работы:

 

PS. Возможно потом шаблон будет дорабатываться, пока все устроило. В архив вложила пример старой обработки и новой.

внешние печатные формы разработка шаблон

См. также

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

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

15500 руб.

02.09.2020    180383    1001    403    

954

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    21735    145    82    

144

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

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

22200 руб.

06.10.2023    19452    51    19    

84

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

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

15000 руб.

10.11.2023    13196    55    33    

74

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29613    101    48    

147

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18822    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1958    2    0    

6
Оставьте свое сообщение