Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 мар 2025, 22:30

Команда печати

Автор sali, 18 мар 2025, 14:14

0 Пользователей и 2 гостей просматривают эту тему.

sali

есть не простая печатная форма в доке расходная накладная. в модуле менеджера Процедура ПечатьТорг12Валютная(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Перем Ошибки;

ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, Обработки.ПечатьТОРГ12Валютный.ИдентификаторПечатнойФормы());
Если ПечатнаяФорма <> Неопределено Тогда

ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
ПечатнаяФорма.ТабличныйДокумент.КлючПараметровПечати = Обработки.ПечатьТОРГ12Валютный.КлючПараметровПечати();
ПечатнаяФорма.ПолныйПутьКМакету = Обработки.ПечатьТОРГ12Валютный.ПолныйПутьКМакету();
ПечатнаяФорма.СинонимМакета = Обработки.ПечатьТОРГ12Валютный.ПредставлениеПФ();

ДанныеОбъектовПечати = УниверсальныйЗапросПоДаннымДокумента(МассивОбъектов, Ложь, Ложь);
Обработки.ПечатьТОРГ12Валютный.СформироватьПФ(ПечатнаяФорма, ДанныеОбъектовПечати, ОбъектыПечати);

КонецЕсли;

КонецПроцедуры

в обработке печатки куча всего Снимок экрана (215).png Снимок экрана (216).png
через "добавить команду печати" сделать не получилось уходит в общие модуля, нужно как-то проверять
команда ни где не отображается

sali

что не так? в командном интерфейс видимость стоит

antoneus

Другие команды печати как добавляются?

LexaK

есть оень удобный механизм ВПФ
очень просто (и автоматически) можно добавлять, изменять и др 
попробуйте это использовать.
если помогло нажмите: Спасибо!

sali

antoneus, команда приходная накладная возврат создать на основании
#Область ОбработчикиСобытий

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ПараметрыФормы = Новый Структура("Основание", ПараметрКоманды);
ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаОбъекта", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник);

КонецПроцедуры

#КонецОбласти

группа - команд панель: создать на основании
тип параметра команды : док расходная накладная
режим использования: одиночный

команда - создать из номенклатуры
#Область ОбработчикиСобытий

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

НоменклатураВДокументахКлиент.СоздатьИзНоменклатуры(ПараметрыВыполненияКоманды.Источник, "РасходнаяНакладная");

КонецПроцедуры

#КонецОбласти
группа - панель навигации формы:см.также
тип параметра команды : не указан
режим использования: множественный

sali

LexaK, я только рад был этому, но сказано через РАСШИРЕНИЕ делать :^454^:  :^454^:  <_<

antoneus

Это все прекрасно, но я про команды печати спрашивал.

sali

antoneus, antoneus, другие печати добавляются через процедура Добавить команду печати
Если ПравоДоступа("Просмотр", Метаданные.Обработки.ПечатьЭтикетокИЦенников)
И ПолучитьФункциональнуюОпцию("ПечатьЭтикетокИЦенников")
И НЕ УправлениеНебольшойФирмойУправлениеДоступомПовтИсп.ЕстьПрофильРабочееМестоКассира() Тогда

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеНебольшойФирмойКлиент.ПечатьЭтикетокИЦенниковИзДокументов";
КомандаПечати.Идентификатор = "ПечатьЭтикетокИзРасходнойНакладной";
КомандаПечати.Представление = НСтр("ru = 'Печать этикеток'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 48;

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеНебольшойФирмойКлиент.ПечатьЭтикетокИЦенниковИзДокументов";
КомандаПечати.Идентификатор = "ПечатьЦенниковИзРасходнойНакладной";
КомандаПечати.Представление = НСтр("ru = 'Печать ценников'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 49;

КонецЕсли;

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = Обработки.ПечатьАктПередачиПрав.ИдентификаторПечатнойФормы();
КомандаПечати.Представление = Обработки.ПечатьАктПередачиПрав.ПредставлениеПФ();
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 7;

ВозможныеВарианты = Обработки.ПечатьТОРГ12.МатрицаВозможныхВариантов();
Для каждого СтрокаТаблицы Из ВозможныеВарианты Цикл

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = Обработки.ПечатьТОРГ12.ИдентификаторПечатнойФормы(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.Представление = Обработки.ПечатьТОРГ12.ПредставлениеПФ(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 10;

Если СтрокаТаблицы.ИспользоватьФаксимиле Тогда

КомандаПечати.МестоРазмещения = "ПодменюПечатьФаксимиле";
КомандаПечати.Порядок = КомандаПечати.Порядок + 1;

КонецЕсли;

КонецЦикла;

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "М15";
КомандаПечати.Представление = НСтр("ru = 'М15 (Накладная на отпуск материалов)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 17;


antoneus

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

sali

Цитата: antoneus от 18 мар 2025, 17:44вызвать после, добавить.
я ранее говорил , что если вызывается ПОСЛЕ то будет затирать в основной. я вчера ведь говорил, печатаешь основную она проходит свой код потом лезет в код моей и на выходе получается печать по моей печатке. условие поставил
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
Если команда.имя = ""обработки.печататьторг12валютный" тогда
        Открытьформу("документы.расходнаянакладная.форма.расш_2формавыборавалюты");
    КонецЕсли;
КонецПроцедуры

добавлял ИНАЧЕ ВОЗВРАТ - НЕ РАБОТАЛО

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск