Имя: Пароль:
1C
1С v8
ВПФ в подменю печать бухгалтерия 3.0
0 Новый1сник2
 
02.12.22
10:53
Добрый день!

в счете на оплату в подменю "Печать" добавил свое подменю "Договор"
подскажите как добавить  в подменю договор свою ВПФ ?
1 Новый1сник2
 
02.12.22
10:53
Функция ПолучитьТаблицуКоманд()

    Команды = Новый ТаблицаЗначений;
    Команды.колонки.Добавить("МестоРазмещения", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
  
КонецФункции
2 Новый1сник2
 
02.12.22
10:53
Функция ДобавитьКоманду(ТаблицаКоманд, МестоРазмещения, Представление,  Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда                         = ТаблицаКоманд.Добавить();
    НоваяКоманда.МестоРазмещения         = МестоРазмещения;
    НоваяКоманда.Представление             = Представление;
    НоваяКоманда.Идентификатор            = Идентификатор;
    НоваяКоманда.Использование            = Использование;
    НоваяКоманда.ПоказыватьОповещение    = ПоказыватьОповещение;
    НоваяКоманда.Модификатор            = Модификатор;
    
КонецФункции
3 Новый1сник2
 
02.12.22
10:54
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации     = Новый Структура;
    МассивНазначений         = Новый Массив;
    МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");  
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Рабочий договор ");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Рабочий договор ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Договор", "Рабочий договор", "ФормаПФР", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
    
    
КонецФункции
4 Новый1сник2
 
02.12.22
10:56
делаю
ДобавитьКоманду(ТаблицаКоманд, "Договор", "Рабочий договор", "ФормаПФР", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");

подменю не видно в счете, договор добавляется в подменю "ПодменюПечать"
5 Новый1сник2
 
02.12.22
12:02
вот так еще пробовал место размещения указать

ПараметрыРегистрации     = Новый Структура;
    МассивНазначений         = Новый Массив;
    МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");  
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Рабочий договор ");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Рабочий договор");
    ПараметрыРегистрации.Вставить("МестоРазмещения", "Договор");
6 Новый1сник2
 
02.12.22
12:02
скажите хоть в какую сторону копать
7 Мимохожий Однако
 
02.12.22
12:07
Копай в сторону процедур печати в модуле менеджере объекта, к которому привязал эту команду
8 Мимохожий Однако
 
02.12.22
12:08
... или в процедуре печати своей ВПФ
9 Новый1сник2
 
02.12.22
12:12
(8) процедура печати в модуле формы обработки, ни каких параметров там нет
10 Новиков
 
02.12.22
12:15
(0) >>добавил свое подменю "Договор"

Это ошибка. Удали это дерьмо и работай сторого по стандарту. Вроде стандарт не предусматривает, чтоб ты туда лазил и подменю там создавал.
11 Новый1сник2
 
02.12.22
12:19
(10) печатных форм много у счета, поэтому понадобилось подменю. если удалить, какие варианты есть?
нужно чтобы договоры были в отдельном подменю
12 Новый1сник2
 
02.12.22
12:54
вроде не сложный вопрос, а не гуглится. или нет такой возможности добавить ВПФ в свое подменю?
13 Новиков
 
02.12.22
12:55
(11) >> * МестоРазмещения - Строка      - (необязательный) Имя группы формы, в которую необходимо разместить
                                        команду печати. Параметр необходимо использовать только в случае, когда на
                                        форме размещается более одного подменю "Печать". В остальных случаях место
                                        размещения необходимо задавать в модуле формы при вызове

Раз не получилось, то надо ставить тонкую латку, для УНФ так: http://forum.infostart.ru/forum9/topic214956/message2792926/#message2792926 - но суть думаю ясна. Ищешь там место, где определяется размещение, и делаешь свою инъекцию.
14 Новый1сник2
 
02.12.22
13:01
ссылку читал, думал как то проще можно задать МестоРазмещения
15 Новый1сник2
 
02.12.22
13:03
да и БП отличается от УНФ
16 Новиков
 
02.12.22
13:06
(15) ну найди место где команда добавляется на форму и такую же ставь латку себе. Смысл то ясен.
17 Новый1сник2
 
02.12.22
13:09
знать бы еще где искать
18 Новый1сник2
 
02.12.22
13:32
(16) я так понимаю команда добавляется функцией в ВПФ

Функция ДобавитьКоманду(ТаблицаКоманд, МестоРазмещения, Представление,  Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда                         = ТаблицаКоманд.Добавить();
    НоваяКоманда.МестоРазмещения         = МестоРазмещения;
    НоваяКоманда.Представление             = Представление;
    НоваяКоманда.Идентификатор            = Идентификатор;
    НоваяКоманда.Использование            = Использование;
    НоваяКоманда.ПоказыватьОповещение    = ПоказыватьОповещение;
    НоваяКоманда.Модификатор            = Модификатор;
    
КонецФункции

в модуле менеджера

// Счет на оплату
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетаНаОплату";
    КомандаПечати.Идентификатор  = "СчетЗаказ";
    КомандаПечати.Представление  = НСтр("ru = 'Счет на оплату'");
    КомандаПечати.Обработчик     = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
    КомандаПечати.Порядок        = 10;
19 Новый1сник2
 
02.12.22
13:33
как добавить МестоРазмещения не могу понять, почему не работает
20 Новый1сник2
 
02.12.22
15:35
попробовал как тут сделано https://forum.infostart.ru/forum9/topic214956/
присвоил идентификатор в ВПФ "Договора"
и добавил при создание на сервере такой код

ИмяГруппы = "ПодменюДоговорКонтрагента";
    ГруппаФормыСКомандамиПечати = Элементы.Найти(ИмяГруппы);
    
    Для Каждого Элемент из Элементы цикл
        Если СокрЛП(Элемент.Имя) = "Договора" тогда
            Элементы.Переместить(Элемент, ГруппаФормыСКомандамиПечати);
        КонецЕсли;
    КонецЦикла;
    
в отладке обработку не видит
21 Новый1сник2
 
02.12.22
17:12
Вот так работает, присвоил идентификатор

НоваяКоманда.Идентификатор = "ДоговорВнешний";

добавил при создание на сервере в форме счета на оплату вот такой код

ИмяГруппы = "ПодменюДоговорКонтрагента";
    ГруппаФормыСКомандамиПечати = Элементы.Найти(ИмяГруппы);
    
    Для Каждого Элемент из Элементы цикл
        Если СокрЛП(Элемент.Имя) = "ПодменюПечатьОбычное_ДоговорВнешний" тогда
            Элементы.Переместить(Элемент, ГруппаФормыСКомандамиПечати);
        КонецЕсли;
    КонецЦикла;
22 Новый1сник2
 
02.12.22
17:13
благодарю за подсказки
AdBlock убивает бесплатный контент. 1Сергей