Внешняя печатная форма - печать без проведения
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(12) dj_serega,
Да есть такая процедура, но в не в этом соль :)
Это ппц...
Есть такая процеДУРКА в ом ДополнительныеОтчетыИОбработкиКлиент ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, Форма, ОбъектыНазначения) Экспорт
Дак вот - в ней "по-умолчанию" присваивается значение СтандартнаяОбработка = Истина ... и тогда не обращая внимания на то, что стоит признак в описании команды ПроверкаПроведенияПередПечатью = Ложь тупо осуществляется проверка на наличие непроведенных документов по циклу из ОбъектыНазначения.
Ну собственно все - капут
Решение: допилить БСП
Реализация:
1) создаем свою константу - ПечатьНеПроведенныхДокументовХХХ (ХХХ - другие матные слова в имени)
2) делаем/не делаем всякие примочки - там константа для конкретных пользователей, с учетом текущей фазы луны и т.п.
3) модифицируем процедуру (в зависимости от значения п.1 - Истина/Ложь) УправлениеПечатьюКлиент.ПроверитьПроведенностьДокументов(ОписаниеПроцедурыЗавершения, СписокДокументов, Форма = Неопределено)
в ключевом моменте ЕстьНепроведенныеДокументы = Истина
НО! Хочется лучшего, элегантного, универсального... Как? ...в процессе
Да есть такая процедура, но в не в этом соль :)
Это ппц...
Есть такая процеДУРКА в ом ДополнительныеОтчетыИОбработкиКлиент ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, Форма, ОбъектыНазначения) Экспорт
Дак вот - в ней "по-умолчанию" присваивается значение СтандартнаяОбработка = Истина ... и тогда не обращая внимания на то, что стоит признак в описании команды ПроверкаПроведенияПередПечатью = Ложь тупо осуществляется проверка на наличие непроведенных документов по циклу из ОбъектыНазначения.
Ну собственно все - капут
Решение: допилить БСП
Реализация:
1) создаем свою константу - ПечатьНеПроведенныхДокументовХХХ (ХХХ - другие матные слова в имени)
2) делаем/не делаем всякие примочки - там константа для конкретных пользователей, с учетом текущей фазы луны и т.п.
3) модифицируем процедуру (в зависимости от значения п.1 - Истина/Ложь) УправлениеПечатьюКлиент.ПроверитьПроведенностьДокументов(ОписаниеПроцедурыЗавершения, СписокДокументов, Форма = Неопределено)
в ключевом моменте ЕстьНепроведенныеДокументы = Истина
НО! Хочется лучшего, элегантного, универсального... Как? ...в процессе
(14) buganov, Ваш вариант тоже не очень "элегантный"
в проыедуру ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы передается 2 параметра
- ОбъектыНазначения,
- СтандартнаяОбработка
Т.е. если в некоторых ПФ нужно делать проверку на проведения, то ваш вариант не оч. работоспособный.
в проыедуру ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы передается 2 параметра
- ОбъектыНазначения,
- СтандартнаяОбработка
Т.е. если в некоторых ПФ нужно делать проверку на проведения, то ваш вариант не оч. работоспособный.
(13) Спасибо за наводку на процедуру.
Может кому пригодится, у себя сделала так:
в ом ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеПечатнойФормы:
//СтандартнаяОбработка = Истина;
СтандартнаяОбработка = ВыполняемаяКоманда.ДополнительныеПараметры.ПоказыватьОповещение;
А стандартный параметр команды ПоказыватьОповещение настраивается в каждой внешней печ.форме.
Может кому пригодится, у себя сделала так:
в ом ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеПечатнойФормы:
//СтандартнаяОбработка = Истина;
СтандартнаяОбработка = ВыполняемаяКоманда.ДополнительныеПараметры.ПоказыватьОповещение;
А стандартный параметр команды ПоказыватьОповещение настраивается в каждой внешней печ.форме.
(16) вариант требующий изменения конфигурации то же не очень!
я решил этот вопрос вызовом команды "Открытия формы".
Создал форму и разместил на форме единственный реквизит (например ТД) с типом табличный документ
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.ОбъектыНазначения.количество() > 0 Тогда
ОбъектыПечати = Новый СписокЗначений;
ТД = СформироватьПечатнуюФорму(Параметры.ОбъектыНазначения,ОбъектыПечати);
КонецЕсли;
КонецПроцедуры
"СформироватьПечатнуюФорму" это ваша функция с возвратом сформированного табличного документа
я решил этот вопрос вызовом команды "Открытия формы".
Создал форму и разместил на форме единственный реквизит (например ТД) с типом табличный документ
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.ОбъектыНазначения.количество() > 0 Тогда
ОбъектыПечати = Новый СписокЗначений;
ТД = СформироватьПечатнуюФорму(Параметры.ОбъектыНазначения,ОбъектыПечати);
КонецЕсли;
КонецПроцедуры
"СформироватьПечатнуюФорму" это ваша функция с возвратом сформированного табличного документа
1.Добавить форму, в модуле формы добавить процедуру Печать:
2.В модуле обработки в функции СведенияОВнешнейОбработке() в параметрах вызова функции ДобавитьКоманду указать "ВызовКлиентскогоМетода":
&НаКлиенте
Процедура Печать(ИмяКоманды, МассивОбъектов, ПараметрыПечати = неопределено, КоллекцияПечатныхФорм = неопределено, ОбъектыПечати = неопределено, ПараметрыВывода = неопределено) Экспорт
ВыполняемаяКоманда = Параметры;
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВыполняемаяКоманда.ДополнительнаяОбработкаСсылка;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
КонецПроцедуры // Печать()
Показать2.В модуле обработки в функции СведенияОВнешнейОбработке() в параметрах вызова функции ДобавитьКоманду указать "ВызовКлиентскогоМетода":
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказКлиента"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "ЗаказКлиента_СчетНаОплату"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Версия", "1.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма к документу Заказ клиента");//так будет выглядеть описание печ.формы для пользователя
ТаблицаКоманд = ПолучитьТаблицуКоманд();
// Администратор 07.08.2015
//ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
// Печать непроведенного документа
ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
// Администратор
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Показать
kontext; Ravil_; ЛИК1111; mai_k; Sardukar; Raritek; user1636219; Junior1C_37; STivO; luda33; Aleksey_1C; xvchk; ElenaMikulina; korpas; admincablerb; Young; dkonakov; scape; mickey.1cx; Art39_; Anna_arbuz; Ekovichev; Bolnov; KolBbl4; deniznet; avgreen; xzorkiix; user973528; Virsy; spaler; Igorro82IT; oitnur; LimarenkoA; Danila7Zz; Dmitri93; Alexeytur; kala4ka; Lucechiaro; theelectric; Nata_GND; webresurs; yarrr;
+42
–
Ответить
(18) Мне помогло, спасибо! Отличное решение без модификации конфигурации. Но этот способ работает только при условии, если на в форме на вкладке Параметры созданы параметры:
ДополнительнаяОбработкаСсылка (тип: СправочникСсылка.ДополнительныеОтчетыИОбработки)
ИдентификаторКоманды (тип: Строка)
ИмяФормы (тип: Строка)
ОбъектыНазначения (тип: Произвольный)
Для каждого должен быть установлен признак "Ключевой параметр".
ДополнительнаяОбработкаСсылка (тип: СправочникСсылка.ДополнительныеОтчетыИОбработки)
ИдентификаторКоманды (тип: Строка)
ИмяФормы (тип: Строка)
ОбъектыНазначения (тип: Произвольный)
Для каждого должен быть установлен признак "Ключевой параметр".
FarFar; RodinMax; ixijixi; kontext; Ravil_; ЛИК1111; mai_k; Sardukar; Raritek; user1636219; BarsukM; luda33; Aleksey_1C; xvchk; korpas; admincablerb; Young; Art39_; Anna_arbuz; Ekovichev; Bolnov; KolBbl4; avgreen; xzorkiix; user973528; Virsy; spaler; Igorro82IT; Alexeytur; kala4ka; theelectric; Nata_GND; webresurs;
+33
–
Ответить
18 и 19 - ребята, спасибо вам большое! То что нужно!
В приложении пример файла, может кому сэкономит время!
В приложении пример файла, может кому сэкономит время!
Прикрепленные файлы:
НаценкаРеализацииТоваров.epf
Andrekaa; tricolor; kontext; Kolesonik; Sardukar; Raritek; user1636219; Junior1C_37; luda33; Aleksey_1C; xvchk; korpas; admincablerb; Young; Art39_; Anna_arbuz; Ekovichev; KolBbl4; deniznet; avgreen; Virsy; user1393556; spaler; Igorro82IT; LimarenkoA; Danila7Zz; Dmitri93; kala4ka; ASG74; rsvp201;
+30
–
Ответить
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот