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

Ввод данных в макет печатной формы

Автор Dom Doma, 25 фев 2021, 12:43

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

Dom Doma

Добрый день, учусь 1с.
Подскажите пожалуйста как реализуется ввод данных в макет печатной формы, внешней обработки. 4 часа искал в интернете, так и не уяснил.
Можно ли как то создать поле Ввода или вытащить или открыть табличную часть обработки?
Нужно создать таблицу описи сдаваемой наличности.

Dom Doma

Цитата: Dom Doma от 25 фев 2021, 12:43
Добрый день, учусь 1с.
Подскажите пожалуйста как реализуется ввод данных в макет печатной формы, внешней обработки. 4 часа искал в интернете, так и не уяснил.
Можно ли как то создать поле Ввода или вытащить или открыть табличную часть обработки?
Нужно создать таблицу описи сдаваемой наличности.
Собственно на данный момент готов вот такой текст. И собран табличный документ.
Создал Табличную часть в обработке, а как ее вывести для ввода данных не пойму.


Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид","ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение",ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить("Наименование","Препроводительная ведомость к сумке ");
ПараметрыРегистрации.Вставить("Версия","1.0");
ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма Препроводительная ведомость к сумке  для документа РасходИзКассы");
ПараметрыРегистрации.Вставить("БезопасныйРежим",ИСТИНА);

Команды = ПолучитьТаблицуКоманд();
ДобавитьКоманду(Команды,"Препроводительная ведомость к сумке ВБ","Инкасация","ВызовСерверногоМетода",Истина,"ПечатьMXL");

ПараметрыРегистрации.Вставить("Команды",Команды);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьНазначениеОбработки()

Массив = Новый Массив;

Массив.Добавить("Документ.РасходИзКассы");

Возврат Массив;

КонецФункции


Функция ПолучитьТаблицуКоманд () //создали Таблицу значений для команд, создали колонки в ней, строки не создавали

Команды = Новый ТаблицаЗначений;

Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); //пользователь увидит при нажатии кнопки "Печать"
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

Возврат Команды;

КонецФункции

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

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

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

       
//Процедуры и функции для формирования печатной формы

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


ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектов[0],ОбъектыПечати);

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"Инкасация","Препроводительная ведомость к сумке ",ТабличныйДокумент);

КонецПроцедуры
Функция СформироватьПечатнуюФорму(СсылкаНаДокумент,ОбъектыПечати)

УстановитьПривилегированныйРежим(Истина);

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ПолеСверху = 0;
ТабличныйДокумент.ПолеСнизу = 0;
ТабличныйДокумент.КоличествоЭкземпляров = 1;
ТабличныйДокумент.ЭкземпляровНаСтранице = 1;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;

СисИнфо = Новый СистемнаяИнформация;
Если ПустаяСтрока(СисИнфо.ИнформацияПрограммыПросмотра) Тогда
ТабличныйДокумент.ПолеСлева = 0;
ТабличныйДокумент.ПолеСправа = 0;
Иначе
ТабличныйДокумент.ПолеСлева = 10;
ТабличныйДокумент.ПолеСправа = 10;
КонецЕсли;

           
Макет = ПолучитьМакет("Макет");

// Получаем Области
ОбластьПриложение = Макет.ПолучитьОбласть("Приложение");
ОбластьСумка = Макет.ПолучитьОбласть("Сумка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
    ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
ОбластьОпись = Макет.ПолучитьОбласть ("Опись");
ОбластьАктВскрытия = Макет.ПолучитьОбласть("АктВскрытия");
ОбластьПодписьОпись = Макет.ПолучитьОбласть("ПодписьОпись");
ОбластьСумкаК = Макет.ПолучитьОбласть("СумкаК");
    ОбластьПодписьК = Макет.ПолучитьОбласть("ПодписьК");
ОбластьСведения = Макет.ПолучитьОбласть ("Сведения");
ОбластьРазрыв = Макет.ПолучитьОбласть("Разрыв");

//ОбластьПриложение
ТабличныйДокумент.Вывести(ОбластьПриложение);

//ОбластьСумка
Если СсылкаНаДокумент.Касса.Наименование = "ИП1" ИЛИ СсылкаНаДокумент.Касса.Наименование = "ООО1" Тогда
Сумка = " 1 ";
ИначеЕсли СсылкаНаДокумент.Касса.Наименование = "ИП" ИЛИ СсылкаНаДокумент.Касса.Наименование = "ООО" Тогда
Сумка = " 2 ";
КонецЕсли;
ОбластьСумка.Параметры.Сумка = Сумка;
ОбластьСумка.Параметры.Дата = СсылкаНаДокумент.Дата;

    ТабличныйДокумент.Вывести(ОбластьСумка);

//ОбластьДанные
ОбластьДанные.Параметры.Отправитель = СсылкаНаДокумент.Организация;
ОбластьДанные.Параметры.СчетДебет = "Счет № ";
ОбластьДанные.Параметры.Получатель = СсылкаНаДокумент.СчетОрганизации.Владелец;
ОбластьДанные.Параметры.СчетКредит ="Счет № "+ СсылкаНаДокумент.СчетОрганизации.НомерСчета;
ОбластьДанные.Параметры.Сумма = СсылкаНаДокумент.СуммаДокумента;
ОбластьДанные.Параметры.ИНН = СсылкаНаДокумент.СчетОрганизации.Владелец.ИНН;
ОбластьДанные.Параметры.БанкВноситель = СсылкаНаДокумент.Организация.БанковскийСчетПоУмолчанию.Банк.Наименование;
ОбластьДанные.Параметры.БикВноситель = СсылкаНаДокумент.Организация.БанковскийСчетПоУмолчанию.Банк.Код;
ОбластьДанные.Параметры.БанкПолучатель = СсылкаНаДокумент.СчетОрганизации.Банк.Наименование;
ОбластьДанные.Параметры.БикПолучатель =  СсылкаНаДокумент.СчетОрганизации.Банк.Код;
ОбластьДанные.Параметры.СуммаПрописью = ЧислоПрописью(СсылкаНаДокумент.СуммаДокумента,"Л=ru_RU;ДП=Истина;НП=Истина;","рубль, рубля, рублей, м, копейка, копейки, копеек, ж");
ТабличныйДокумент.Вывести(ОбластьДанные);

//ОбластьПодписи
ТабличныйДокумент.Вывести(ОбластьПодписи);
//Дублирование Таблицы
ТабличныйДокумент.Вывести(ОбластьСумка);
ТабличныйДокумент.Вывести(ОбластьДанные);
ТабличныйДокумент.Вывести(ОбластьПодписи);
ТабличныйДокумент.Вывести(ОбластьРазрыв);
  //Область Опись
ОбластьАктВскрытия.Параметры.Дата = СсылкаНаДокумент.Дата;
ТабличныйДокумент.Вывести(ОбластьОпись);
ТабличныйДокумент.Вывести(ОбластьАктВскрытия);
ТабличныйДокумент.Вывести(ОбластьПодписьОпись);
ТабличныйДокумент.Вывести(ОбластьОпись);
ТабличныйДокумент.Вывести(ОбластьАктВскрытия);
ТабличныйДокумент.Вывести(ОбластьПодписьОпись);
ТабличныйДокумент.Вывести(ОбластьРазрыв);
//Область К
ОбластьСумкаК.Параметры.Сумка = Сумка;
ОбластьСумкаК.Параметры.Дата = СсылкаНаДокумент.Дата;
ТабличныйДокумент.Вывести(ОбластьСумкаК);

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

//Область Сведения
ТабличныйДокумент.Вывести(ОбластьАктВскрытия);
Возврат ТабличныйДокумент;
КонецФункции

Теги:

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

Рейтинг@Mail.ru

Поиск