Имя: Пароль:
1C
 
лайвхак БСП: добавляем ВПФ для регистра сведений
0 p-soft
 
11.01.23
07:22
решал задачу реализации механизма печати этикеток для товара через ВПФ, наткнулся на интересную возможность.
в общем,
требования: БСП с подключенными ВПФ, рег.сведений с измерением типа документ или справочник (то же самое можно сделать для любой формы с таблицей значений).
реализация:
1. при создании формы регистрируем "ПодключаемыеКоманды" с параметром размещения на нужное измерение типа документ или справочник
2. в "Подключаемый_ВыполнитьКоманду" меняем код на:

    ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(Команда.Имя, ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
    ПараметрыВыполнения = ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды();
    ПараметрыВыполнения.ОписаниеКоманды = Новый Структура(ОписаниеКоманды);
    ПараметрыВыполнения.Форма = ЭтотОбъект;
        
    ПараметрКоманды = Новый Массив;
    
    //тут надо добавить код заполнения структуры передаваемых в впф данных
    //СтруктураДанных = Новый Структура("Номенклатура,Характеристика,Упаковка,Штрихкод,КоличествоЭтикеток");
    //ЗаполнитьЗначенияСвойств(СтруктураДанных, ...);
    //ПараметрКоманды.Добавить(СтруктураДанных);
    
    Если ПараметрКоманды.Количество()>0 Тогда
        УправлениеПечатьюСлужебныйКлиент.ОбработчикКоманды(ПараметрКоманды, ПараметрыВыполнения);
    КонецЕсли;
3. в общий модуль "ДополнительныеОтчетыИОбработкиКлиентПереопределяемый" в "ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы" добавляем код:
    Если ПечатаемыеОбъекты.Количество()>0 Тогда
        СтандартнаяОбработка = НЕ ТипЗнч(ПечатаемыеОбъекты[0])=Тип("Структура");
    КонецЕсли;
4. добавляем ВПФ к рассматриваемому типу измерения рег.сведений. если не добавляется - проверяем включение использования подключаемых команд для объекта.
1 shuhard
 
11.01.23
07:25
(0)лайвхак пишется через ф
2 p-soft
 
11.01.23
07:28
(1) да и черт с ним, чукча не читатель - чукча писатель)
Ошибка? Это не ошибка, это системная функция.