Реализация товаров и услуг: Акт об оказании услуг с факсимиле в 1С-Рарус: Бухгалтерия для некоммерческой организации (НКО), редакция 5.0

На середину ноября, в редакции 1С-Рарус: Бухгалтерия для некоммерческой организации (НКО), редакция 5.0 отсутствует поддержка актов об оказании услуг с факсимиле.

Проблема несущественная, но неприятная. Для решения этой проблемы был разработан код по эту платформу.

Вся реализация выполняется как внешняя печатная форма

Программный код внешней печатной формы 1С


функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Акт об оказании услуг (факсимиле)"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Акт об оказании услуг (факсимиле)");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Акт об оказании услуг (факсимиле)", "АктОбОказанииУслугФаксимиле", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
конецфункции

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»)); //имя макета печ.формы
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»)); //ВызовСерверногоМетода
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции

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

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

НомерАкта = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(МассивОбъектов[0].Номер,Ложь, Истина);
ИмяСохранения = Строка(«Акт об оказании услуг (факсимиле) № «+НомерАкта+» от «+Формат(МассивОбъектов[0].Дата, «ДЛФ=DD»));

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «АктОбОказанииУслугФаксимиле», ИмяСохранения, СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
МакетОбработки = ПолучитьМакет(«АктОбОказанииУслугФаксимиле»);

//готовим переменные
НомерАкта = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(СсылкаНаДокумент.Номер,Ложь, Истина);

СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СсылкаНаДокумент.Организация, СсылкаНаДокумент.Дата, СсылкаНаДокумент.Организация.ОсновнойБанковскийСчет.НомерСчета);
ПредставлениеИсполнителя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации)
+», р/с » + СсылкаНаДокумент.Организация.ОсновнойБанковскийСчет.НомерСчета
+», в банке «+СсылкаНаДокумент.Организация.ОсновнойБанковскийСчет.Банк
+», БИК «+СсылкаНаДокумент.Организация.ОсновнойБанковскийСчет.Банк.Код
+», к/с «+СсылкаНаДокумент.Организация.ОсновнойБанковскийСчет.Банк.КоррСчет;

ДанныеОтветственногоЛицаОрганизации = ОтветственныеЛицаБП.РеквизитыПодписиУполномоченногоЛица(СсылкаНаДокумент.Организация, СсылкаНаДокумент.Руководитель, СсылкаНаДокумент.ЗаРуководителяНаОсновании, СсылкаНаДокумент.Дата);
ОтветственныеЛицаОрганизации = ОтветственныеЛицаБП.ОтветственныеЛица(СсылкаНаДокумент.Организация, СсылкаНаДокумент.Дата);

СведенияОЗаказчике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СсылкаНаДокумент.Контрагент, СсылкаНаДокумент.Дата, СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.НомерСчета);
ПредставлениеЗаказчика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОЗаказчике);

Если СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.НомерСчета <> «» Тогда
ПредставлениеЗаказчика = ПредставлениеЗаказчика + «, р/с » + СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.НомерСчета;
КонецЕсли;
Если СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.Банк.Наименование <> «» Тогда
ПредставлениеЗаказчика = ПредставлениеЗаказчика + «, в банке » + СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.Банк.Наименование;
КонецЕсли;
БИК = СтрЗаменить(СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.Банк.Код, Символы.НПП, «»);
БИК = СтрЗаменить(БИК, Символ(160), «»);
БИК = СтрЗаменить(БИК, » «, «»);

Если БИК <> «» Тогда
ПредставлениеЗаказчика = ПредставлениеЗаказчика + «, БИК » + БИК;
КонецЕсли;
Если СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.Банк.КоррСчет <> «» Тогда
ПредставлениеЗаказчика = ПредставлениеЗаказчика + «, к/с » + СсылкаНаДокумент.Контрагент.ОсновнойБанковскийСчет.Банк.КоррСчет;
КонецЕсли;

ДвоичныеДанныеФайлаПечать = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(СсылкаНаДокумент.Организация.ФайлПечать);
ФайлПечать = Новый Картинка(ДвоичныеДанныеФайлаПечать);

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

//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть(«Шапка»);
ОбластьШапка.Параметры.НомерАкта = НомерАкта;
ОбластьШапка.Параметры.ДатаАкта = Формат(СсылкаНаДокумент.Дата, «ДЛФ=DD»);
ОбластьШапка.Параметры.ПредставлениеИсполнителя = ПредставлениеИсполнителя;
ОбластьШапка.Параметры.ПредставлениеЗаказчика = ПредставлениеЗаказчика;
ОбластьШапка.Параметры.Договор = СсылкаНаДокумент.ДоговорКонтрагента;
ТабличныйДокумент.Вывести(ОбластьШапка);

//заполняем строки таблицы
ОбластьСтроки = МакетОбработки.ПолучитьОбласть(«Строка»);
Счетчик = 0;
Количество = 0;
ИтоговаяСумма = 0;
Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Услуги Цикл
Счетчик = Счетчик + 1;
ОбластьСтроки.Параметры.НомерПозиции = Счетчик;
ОбластьСтроки.Параметры.НаименованиеПозиции = ТекущаяСтрока.Номенклатура;
ОбластьСтроки.Параметры.КолВоПозиции = ТекущаяСтрока.Количество;
ОбластьСтроки.Параметры.ЕдИзмПозиции = «чел.»;
ОбластьСтроки.Параметры.ЦенаПозиции = ТекущаяСтрока.Цена;
ОбластьСтроки.Параметры.СуммаПозиции = ТекущаяСтрока.Сумма;
ТабличныйДокумент.Вывести(ОбластьСтроки);
Количество = Количество + ТекущаяСтрока.Количество;
ИтоговаяСумма = ИтоговаяСумма + ТекущаяСтрока.Сумма;
КонецЦикла;

//заполняем подвал
ОбластьПодвала = МакетОбработки.ПолучитьОбласть(«Подвал»);
ОбластьПодвала.Параметры.ИтоговоеКоличествоПозиций = Счетчик;
ОбластьПодвала.Параметры.ИтоговаяСуммаПозицииЧисло = Формат(ИтоговаяСумма, «ЧДЦ=2″);
ОбластьПодвала.Параметры.ИтоговаяСуммаПозицииСтрока = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтоговаяСумма, СсылкаНаДокумент.ВалютаДокумента);
ОбластьПодвала.Параметры.ДолжностьИсполнителя = ОтветственныеЛицаОрганизации.РуководительДолжностьПредставление + » » + СсылкаНаДокумент.Организация.НаименованиеСокращенное;
ОбластьПодвала.Параметры.ФамилияИнициалыРуководителя = ДанныеОтветственногоЛицаОрганизации.ФИО.Представление;
ОбластьПодвала.Параметры.ОрганизацияЗаказчика = СсылкаНаДокумент.Контрагент.НаименованиеПолное;
ОбластьПодвала.Рисунки.ПечатьОрганизации.Картинка = ФайлПечать;
ОбластьПодвала.Рисунки.ПодписьРуководителя.Картинка = ФайлПодписьРуководителя;
ТабличныйДокумент.Вывести(ОбластьПодвала);
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции

Скачать акт об оказании услуг с факсимиле

Скачать акт об оказании услуг с факсимиле

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *