|   |   | 
| 
 | Внешняя печатная форма | ☑ | ||
|---|---|---|---|---|
| 0
    
        Mihasya 02.06.20✎ 03:26 | 
        Натолкните на мысль.
 Хочу припилить в ЗУПе к форме элемента "График работы сотрудника" внешнюю печатную форму, как в эту обработку передать "НомерТекущегоГода" который выбран в форме открытого графика? | |||
| 1
    
        strange2007 02.06.20✎ 04:08 | 
        Внешняя печ.форма знает о документе, к которому прицеплена, а значит из него можно выбрать и текущий год. Там же ссылка на документ передаётся в экспортную процедуру (или функцию???), которая является точкой старта формирования печатной формы     | |||
| 2
    
        Chameleon1980 02.06.20✎ 04:46 | 
        блин автор мозгивключи. как ты думаешь по каким вообще данным строится печ. форма?     | |||
| 3
    
        Mihasya 02.06.20✎ 05:18 | 
        (1) это не документ, это справочник. Ну да не особо это важно, важно то что "НомерТекущегоГода" это не реквизит этого справочника, а реквизит формы из которой и нужно вызвать процедуру печати...     | |||
| 4
    
        Mihasya 02.06.20✎ 05:20 | 
        (2) хочешь сказать это не возможно?     | |||
| 5
    
        strange2007 02.06.20✎ 05:22 | 
        Вот такая вот кода для редактирования формы. Т.е. данные формы доступны
 // Отладка возможна только через сложности // В "ВыполнитьКоманду" необходимо прописать вызов процедуры общего модуля. В которой, // в свою очередь, можно вызвать отладочную обработку, передав все 3 параметра. // После отладки необходимо скопировать код в этот модуль. // Для отладки эту обработку надо подключить к БСП. Пусть она сама и инициирует // вызов "ВыполнитьКоманду" #Область Регистрация_в_БСП Функция СведенияОВнешнейОбработке() Экспорт // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(); // Версия БСП нужня для того, чтобы вызов был современный. Проверка идёт на // версию 1.2.1.4. Надо поставить что-то побольше ПараметрыРегистрации.ВерсияБСП = "8.3.11.3034"; // Список назначений в формате Вид.Тип ПараметрыРегистрации.Назначение.Добавить("Документ.НачислениеЗарплаты"); ПараметрыРегистрации.Назначение.Добавить("Документ.НачислениеЗаПервуюПоловинуМесяца"); // Вид, в совокупности с типом (использование) указывает БСП что за обработка и что она делать будет ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта(); // Информационная часть ПараметрыРегистрации.Наименование = "Сортировка данных начисления"; ПараметрыРегистрации.Информация = "Сортировка данных ТЧ документа 'Начисление ЗП'"; //ПараметрыРегистрации.Версия = "12.07.2018"; // создание // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим) ПараметрыРегистрации.БезопасныйРежим = Истина; //ПараметрыРегистрации.БезопасныйРежим = Ложь; // Создание списка команд //ДобавитьКоманду(ПараметрыРегистрации.Команды, "Сортировка начислений", "ЗаполнениеТЧ", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода(), Ложь, ""); ДобавитьКоманду(ПараметрыРегистрации.Команды, "Сортировка начислений", "СортировкаНачислений", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы(), Истина, ""); //бнгрэ_ОбщиеМодули.ИсследованиеВнОбработки(ПараметрыРегистрации); // Теперь вернем системе наши параметры Возврат(ПараметрыРегистрации); КонецФункции // Читай описание в коллекции знаний. Там капец какие комбинации. // Кстати, "Использование", это и есть тип из описания. Вот такая вот петрушка Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение=Ложь, Модификатор="") // Добавляем команду в таблицу команд по переданному описанию. // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры #КонецОбласти // Далее вызываемая процедура, в которой можно раскомментировать вызов отладки и тогда будет отладка // Вызываемая часть. // Если версия БСП не указана, то вызываемая часть третий параметр не передаст. А именно // в нём и находится форма, которую можно корректировать. Хотя фиг знает, может мне нужна // "ЭтаФорма", а не элементы её // // Параметры: // ИдентификаторКоманды - Это та штука, которая указывается третьим параметром в "ДобавитьКоманду" // ОбъектыНазначения - Неопределено. Не знаю, что это такое, поэтому пофиг. // ПараметрыВыполнения - Структура, которая состоит из: // ДополнительнаяОбработкаСсылка - Ссылка на справочник, в котором эта обработка. Как эту информацию использовать? Сам не знаю. // РезультатВыполнения - Структура. В описании ничего про неё не нашёл. Наверное её надо заполнить(((((( // ЭтаФорма - Сама форма, которую можно редактировать! Ура! Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт // Вызов отладки бнгрэ_ОбщиеМодули.ИсследованиеВнОбработки(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения); // Вызов модулей сортировки //СортировкаНачислений(ПараметрыВыполнения); КонецПроцедуры // Отладочная процедура должна выглядеть примерно так #Область Для_отладки_внешних_модулей_БСП Процедура ИсследованиеВнОбработки(Пар1=Неопределено, Пар2=Неопределено, Пар3=Неопределено) Экспорт А = 1; ОтладочнаяОбр = ВнешниеОбработки.Создать("d:\Work\По датам\190306 Начисления без копеек\ОтладкаРаспределения.epf", Ложь); ОтладочнаяОбр.ВыполнитьКоманду(Пар1, Пар2, Пар3); КонецПроцедуры #КонецОбласти // В модуле обработки надо внести процедуру Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт А = 1; КонецПроцедуры // Вот и всё. Нужно настроить внешнюю обработку, расположенную по указанному пути и можно отлаживать, предварительно подключив внешнюю обработку в БСП Примечание: в подключаемой обработке надо поставить небезопасный режим! | |||
| 6
    
        strange2007 02.06.20✎ 05:23 | 
        Только отладка гораздо проще. Можно без общего модуля сразу перенаправить вызов в обработку-отладчик     | |||
| 7
    
        Mihasya 02.06.20✎ 05:40 | 
        (5,6) Спасибо, сам уже нашел
 В процедуре ВыполнитьКлиентскийМетодОбработки есть вызов процедуры "Печать" на клиенте, как раз то что нужно... ЭтаФорма.ВладелецФормы.НомерТекущегоГода | |||
| 8
    
        strange2007 02.06.20✎ 05:45 | 
        (7) Можно и так. Вариантов много. Я просто наугад одну модуль одной из обработок сохранил, что бы в будущем подглядывать, как редактировать форму.
 И да, в (5) есть огрехи в том, что не всё с формы доступно. Твой вариант круче. Вопрос только в том, почему же я то этот вариант не записал. Надо исправить | |||
| 9
    
        Mihasya 02.06.20✎ 05:56 | 
        (8) Единственно мне нужно что б кнопка печати была только в форме элемента, а внешняя печатная форма похоже и к списку цепляется... Похоже не доработали 1С-ники в этом вопросе )) Ну буду проверять из какой формы вызывается печать ))     | |||
| 10
    
        strange2007 02.06.20✎ 06:11 | 
        (9) Это же мегаудобно, когда выделяешь 48 строк и все сразу печатаешь. Народу нравится     | |||
| 11
    
        Mihasya 02.06.20✎ 06:18 | 
        (10) да это понятно, я про саму возможность подключать кнопку печати, нет выбора куда ее подключать, к форме списка или форме элемента )) вот мне не нужно к форме списка, а кнопка все равно подключается... ну да ладно, это уже мелочи     | |||
| 12
    
        strange2007 02.06.20✎ 06:25 | 
        (11) Малость оффтопа: Простейшие механизмы БСП, касающиеся внешних обработок и отчётов, вносят многолетние вопросы для сообщества 1С (я один из этого списка и горжусь своей глупостью!). А теперь представим, что было бы, если создатели БСП добавили бы механизм расположение кнопок. Ещё лет пять непонимания и ненависть к БСП!
 Хотя да, согласен, было бы круто, если можно было бы управлять расположением кнопок, с возможностью полного сокрытия. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |