Возможно ли программно заменить кнопку печати?
Здравствуйте, в базе подкреплен стандартный макет, его нужно было изменить, поэтому я сделала это с помощью внешней обработки, подкрепила ее в базу, но теперь в предприятии у меня для печати две одинаковые кнопки. Возможно ли заменить старую кнопку на новую или старую скрыть как-то? Или как сделать чтоб кнопка была одна, а уже из нее можно было развернуть и вызвать старую и новую печать?
1С:Предприятие 8.3 (8.3.14.1694) Бухгалтерия ред 2.1
1С:Предприятие 8.3 (8.3.14.1694) Бухгалтерия ред 2.1
Прикрепленные файлы:

По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну в Российском версии удалить печатную форму можно даже в настройке печати
https://v8pro.ru/instruction/hide-print-forms-1c/ .
А вам нужно смотреть процедуры ДобавитьКомандыПечати
А вам нужно смотреть процедуры ДобавитьКомандыПечати
(9) Может у вас найдется минутка посмотреть, если не сложно, хоть ты убей, не могу найти что нужно.
Функция ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки()
ТекстЗапроса =
"ВЫБРАТЬ
| Акт.Ссылка КАК АктСверки,
| ВЫБОР
| КОГДА Акт.РазбитьПоДоговорам
| ТОГДА ТЧПоДаннымОрганизации.Договор
| ИНАЧЕ NULL
| КОНЕЦ КАК Договор,
| ТЧПоДаннымОрганизации.НомерСтроки КАК НомерСтроки,
| ТЧПоДаннымОрганизации.Дата КАК Дата,
| NULL КАК ДатаК,
| ТЧПоДаннымОрганизации.Документ КАК Документ,
| ТЧПоДаннымОрганизации.Представление КАК Представление,
| NULL КАК ПредставлениеК,
| ТЧПоДаннымОрганизации.Дебет КАК Дебет,
| ТЧПоДаннымОрганизации.Кредит КАК Кредит,
| 0 КАК ДебетК,
| 0 КАК КредитК,
| 0 КАК НомерТабЧасти
|ПОМЕСТИТЬ ДанныеДокумента
|ИЗ
| Документ.АктСверкиВзаиморасчетов КАК Акт
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК ТЧПоДаннымОрганизации
| ПО Акт.Ссылка = ТЧПоДаннымОрганизации.Ссылка
|ГДЕ
| Акт.Ссылка В(&МассивДокументов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Акт.Ссылка,
| ВЫБОР
| КОГДА Акт.РазбитьПоДоговорам
| ТОГДА ТЧПоДаннымКонтрагента.Договор
| ИНАЧЕ NULL
| КОНЕЦ,
| ТЧПоДаннымКонтрагента.НомерСтроки,
| NULL,
| ТЧПоДаннымКонтрагента.Дата,
| NULL,
| NULL,
| ТЧПоДаннымКонтрагента.Представление,
| 0,
| 0,
| ТЧПоДаннымКонтрагента.Дебет,
| ТЧПоДаннымКонтрагента.Кредит,
| 1
|ИЗ
| Документ.АктСверкиВзаиморасчетов КАК Акт
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК ТЧПоДаннымКонтрагента
| ПО Акт.Ссылка = ТЧПоДаннымКонтрагента.Ссылка
|ГДЕ
| Акт.Ссылка В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| АктСверки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеДокумента.АктСверки КАК АктСверки,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Дата КАК МинДата,
| ДанныеДокумента.Документ,
| ДанныеДокумента.Представление,
| ДанныеДокумента.ДатаК,
| ДанныеДокумента.ПредставлениеК,
| ДанныеДокумента.Дебет КАК СуммаДогДт,
| ДанныеДокумента.Кредит КАК СуммаДогКт,
| ДанныеДокумента.ДебетК КАК СуммаДогДтКонтр,
| ДанныеДокумента.КредитК КАК СуммаДогКтКонтр,
| АктСверкиВзаиморасчетов.Организация КАК Организация,
| АктСверкиВзаиморасчетов.Контрагент КАК Контрагент,
| АктСверкиВзаиморасчетов.Дата КАК ДатаАктаСверки,
| АктСверкиВзаиморасчетов.ПредставительОрганизации КАК ПредставительОрганизации,
| АктСверкиВзаиморасчетов.ПредставительКонтрагента КАК ПредставительКонтрагента,
| АктСверкиВзаиморасчетов.ДатаНачала КАК ДатаНачала,
| АктСверкиВзаиморасчетов.ДатаОкончания КАК ДатаОкончания,
| АктСверкиВзаиморасчетов.ОстатокНаНачало КАК ОстатокНаНачало,
| АктСверкиВзаиморасчетов.Расхождение КАК Расхождение,
| АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагентаВШапке,
| АктСверкиВзаиморасчетов.ВалютаДокумента КАК ВалютаДокумента,
| АктСверкиВзаиморасчетов.РазбитьПоДоговорам КАК РазбитьПоДоговорам,
| АктСверкиВзаиморасчетов.СверкаСогласована КАК СверкаСогласована,
//1С-Минск
| АктСверкиВзаиморасчетов.МестоСоставленияАкта КАК МестоСоставленияАкта,
//1С-Минск
| ДанныеДокумента.НомерТабЧасти КАК НомерТабЧасти
|ИЗ
| ДанныеДокумента КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
| ПО ДанныеДокумента.АктСверки = АктСверкиВзаиморасчетов.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НомерТабЧасти,
| ДанныеДокумента.НомерСтроки
|ИТОГИ
| МИНИМУМ(МинДата),
| СУММА(СуммаДогДт),
| СУММА(СуммаДогКт),
| СУММА(СуммаДогДтКонтр),
| СУММА(СуммаДогКтКонтр),
| МАКСИМУМ(Организация),
| МАКСИМУМ(Контрагент),
| МАКСИМУМ(ДатаАктаСверки),
| МАКСИМУМ(ПредставительОрганизации),
| МАКСИМУМ(ПредставительКонтрагента),
| МАКСИМУМ(ДатаНачала),
| МАКСИМУМ(ДатаОкончания),
| МАКСИМУМ(ОстатокНаНачало),
| МАКСИМУМ(Расхождение),
| МАКСИМУМ(ДоговорКонтрагентаВШапке),
| МАКСИМУМ(ВалютаДокумента),
| МАКСИМУМ(РазбитьПоДоговорам),
| МАКСИМУМ(СверкаСогласована),
//1С-Минск
| МАКСИМУМ(МестоСоставленияАкта)
//1С-Минск
|ПО
| АктСверки,
| Договор";
Возврат ТекстЗапроса;
КонецФункции
// Функция формирует табличный документ с печатной формой накладной,
//
// Возвращаемое значение:
// Табличный документ - печатная форма накладной
//
Функция ПечатьАктаСверки(МассивОбъектов, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов";
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.АктСверкиВзаиморасчетов.ПФ_MXL_АктСверки_Локализация");
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.Текст = ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки();
Шапка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "АктСверки");
ПервыйДокумент = Истина;
Пока Шапка.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
// Получаем области:
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНачОстатки = Макет.ПолучитьОбласть("НачОстатки");
ОбластьДоговор = Макет.ПолучитьОбласть("Договор");
ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги");
ОбластьОбороты = Макет.ПолучитьОбласть("Обороты");
ОбластьОборотыИтог = Макет.ПолучитьОбласть("ОборотыИтог");
ОбластьКонОстатки = Макет.ПолучитьОбласть("КонОстатки");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
// Заполняем шапку:
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаАктаСверки);
ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаАктаСверки);
ПредставлениеКонтрагента = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьЗаголовок.Параметры.НазваниеОрганизации = ПредставлениеОрганизации;
ОбластьЗаголовок.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента;
ДатаНачалаОтчета = ?(ЗначениеЗаполнено(Шапка.ДатаНачала), Шапка.ДатаНачала, Шапка.МинДата);
ОписаниеПериода = ?(ЗначениеЗаполнено(ДатаНачалаОтчета),"за период: " + ПредставлениеПериода(НачалоДня( ДатаНачалаОтчета), КонецДня( Шапка.ДатаОкончания), "ФП = Истина"),"");
ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода + Символы.ПС
+ "между " + ПредставлениеОрганизации + Символы.ПС + "и " + ПредставлениеКонтрагента;
ДоговорКонтрагента = Шапка.ДоговорКонтрагентаВШапке;
Если ЗначениеЗаполнено(ДоговорКонтрагента) И НЕ ДоговорКонтрагента.ЭтоГруппа Тогда
ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + ДоговорКонтрагента;
КонецЕсли;
ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;
ДанныеПредставителяОрганизации = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(Шапка.Организация, Шапка.ПредставительОрганизации, Шапка.ДатаАктаСверки);
ДанныеПредставителяКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Шапка.ПредставительКонтрагента, "Должность, Фамилия, Имя, Отчество");
ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия), "",ДанныеПредставителяОрганизации.Фамилия
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя), "", " "+ ДанныеПредставителяОрганизации.Имя)
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество), "", " "+ ДанныеПредставителяОрганизации.Отчество));
СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),
"________________", ДанныеПредставителяОрганизации.Должность) + " " + ПредставлениеОрганизации
+ " " + ?(ФИОПредставителя <> "", ФИОПредставителя, "_______________________") + ", с одной стороны, "
+ "и " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента) ИЛИ НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность),
"________________", ДанныеПредставителяКонтрагента.Должность)
+ " " + ПредставлениеКонтрагента + " " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента),
"_______________________", Шапка.ПредставительКонтрагента) + ", с другой стороны, "
+ "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";
ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;
ОбластьЗаголовок.Параметры.ВалютаДокумента = Шапка.ВалютаДокумента;
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(Шапка.ОстатокНаНачало > 0, Шапка.ОстатокНаНачало, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(Шапка.ОстатокНаНачало < 0, -Шапка.ОстатокНаНачало, 0);
ТабличныйДокумент.Вывести(ОбластьНачОстатки);
ОборотыДт = Шапка.СуммаДогДт;
ОборотыКт = Шапка.СуммаДогКт;
ОборотыДтКонтр = Шапка.СуммаДогДтКонтр;
ОборотыКтКонтр = Шапка.СуммаДогКтКонтр;
ОбходПоДоговорам = Шапка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор");
Пока ОбходПоДоговорам.Следующий() Цикл
Если Шапка.РазбитьПоДоговорам Тогда
//Выводим заголовок с договором
ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор;
ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор;
ТабличныйДокумент.Вывести(ОбластьДоговор);
ОбходПоДокументам=ОбходПоДоговорам.Выбрать();
Иначе
ОбходПоДокументам=ОбходПоДоговорам.Выбрать();
КонецЕсли;
//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента, РегистраторПредставление, Регистратор, СуммаОборотДт, СуммаОборотКт",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт));
КонецЕсли;
Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр));
КонецЕсли;
КонецЦикла;
//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество() < СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество() > СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","",""));
КонецЦикла;
КонецЕсли;
Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабличныйДокумент.Вывести(ОбластьОбороты);
КонецЦикла;
Если Шапка.РазбитьПоДоговорам Тогда
//Выводим итоги по каждому договору
ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам);
ТабличныйДокумент.Вывести(ОбластьДоговорИтоги);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
ОбластьОборотыИтог.Параметры.СуммаОборотДт = ОборотыДт;
ОбластьОборотыИтог.Параметры.СуммаОборотКт = ОборотыКт;
Если Шапка.СверкаСогласована тогда
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ОборотыДтКонтр;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ОборотыКтКонтр;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьОборотыИтог);
ОстатокНаКонец = Шапка.ОстатокНаНачало + ОборотыДт - ОборотыКт;
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);
Если Шапка.СверкаСогласована тогда
ОстатокНаКонецК = Шапка.ОстатокНаНачало - ОборотыДтКонтр + ОборотыКтКонтр;
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьКонОстатки);
// Результаты сверки
Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда
РезультатыСверки = "<не указана дата сверки>";
ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда
РезультатыСверки = "<не указан контрагент>";
Иначе
РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
Если ОстатокНаКонец > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеОрганизации + " "
+ Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, Шапка.ВалютаДокумента,Ложь)+")" ;
ИначеЕсли ОстатокНаКонец < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеКонтрагента + " "
+ Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, Шапка.ВалютаДокумента,Ложь)+")" ;
Иначе
РезультатыСверки = РезультатыСверки + "отсутствует.";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;
Если Шапка.СверкаСогласована тогда
ОбластьПодвал.Параметры.ПоДаннымКонтрагента = "По данным " + ПредставлениеКонтрагента;
Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда
РезультатыСверки = "<не указана дата сверки>";
ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда
РезультатыСверки = "<не указан контрагент>";
Иначе
РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
Если ОстатокНаКонецК > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеОрганизации + " "
+ Формат(ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+ " ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонецК, Шапка.ВалютаДокумента,Ложь)+")" ;
ИначеЕсли ОстатокНаКонецК < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеКонтрагента + " "
+ Формат(-ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонецК, Шапка.ВалютаДокумента,Ложь)+")" ;
Иначе
РезультатыСверки = РезультатыСверки + "отсутствует.";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверкиК = РезультатыСверки;
Если Шапка.Расхождение <> 0 Тогда
ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "
+ Формат(?(Шапка.Расхождение > 0, 1, -1) * Шапка.Расхождение, "ЧЦ=21; ЧДЦ=2")
+ " "+ Строка(Шапка.ВалютаДокумента)
+ " ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(
?(Шапка.Расхождение > 0, 1, -1) * Шапка.Расхождение, Шапка.ВалютаДокумента, Ложь)+")" ;
ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС + ИтогСверки+Символы.ПС+" ";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.НазваниеОрганизации = ПредставлениеОрганизации;
ОбластьПодвал.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента;
ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),
"________________", ДанныеПредставителяОрганизации.Должность);
ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность),
"________________", ДанныеПредставителяКонтрагента.Должность);
ОбластьПодвал.Параметры.ФИОПредставителя = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),
"_______________________",ДанныеПредставителяОрганизации.Представление)+")";
ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента),
"_______________________",ОбщегоНазначенияБПВызовСервера.ФамилияИнициалыФизЛица(
ДанныеПредставителяКонтрагента.Фамилия + " " + ДанныеПредставителяКонтрагента.Имя + " " + ДанныеПредставителяКонтрагента.Отчество))+")";
ТабличныйДокумент.Вывести(ОбластьПодвал);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, Шапка.АктСверки);
КонецЦикла; // Пока Шапка.Следующий()
Возврат ТабличныйДокумент;
КонецФункции
// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
// ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
// МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
// ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
// ПараметрыВывода - Структура - Параметры сформированных табличных документов
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСверки") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"АктСверки",
"Акт сверки взаиморасчетов",
ПечатьАктаСверки_Локализация(МассивОбъектов, ОбъектыПечати), //1С-Минск
,
"Документ.АктСверкиВзаиморасчетов.ПФ_MXL_АктСверки_Локализация"); //ПФ_MXL_АктСверки 1С-Минск
КонецЕсли;
КонецПроцедуры
//1С-Минск
Функция ПечатьАктаСверки_Локализация(МассивОбъектов, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов";
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.АктСверкиВзаиморасчетов.ПФ_MXL_АктСверки_Локализация");
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.Текст = ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки();
Шапка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "АктСверки");
ПервыйДокумент = Истина;
Пока Шапка.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
// Получаем области:
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНачОстатки = Макет.ПолучитьОбласть("НачОстатки");
ОбластьДоговор = Макет.ПолучитьОбласть("Договор");
ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги");
ОбластьОбороты = Макет.ПолучитьОбласть("Обороты");
ОбластьОборотыИтог = Макет.ПолучитьОбласть("ОборотыИтог");
ОбластьКонОстатки = Макет.ПолучитьОбласть("КонОстатки");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
// Заполняем шапку:
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаАктаСверки);
ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаАктаСверки);
ПредставлениеКонтрагента = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьЗаголовок.Параметры.НазваниеОрганизации = ПредставлениеОрганизации;
ОбластьЗаголовок.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента;
ОбластьЗаголовок.Параметры.ДатаДокумента = Формат(Шапка.ДатаАктаСверки, "ДФ=""дд ММММ гггг 'г.'""");
ОбластьЗаголовок.Параметры.МестоСоставленияАкта = Шапка.МестоСоставленияАкта;
ДатаНачалаОтчета = ?(ЗначениеЗаполнено(Шапка.ДатаНачала), Шапка.ДатаНачала, Шапка.МинДата);
ОписаниеПериода = "за период: " + ПредставлениеПериода(НачалоДня( ДатаНачалаОтчета), КонецДня( Шапка.ДатаОкончания), "ФП = Истина");
ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода + Символы.ПС
+ "между " + ПредставлениеОрганизации + Символы.ПС + "и " + ПредставлениеКонтрагента;
ДоговорКонтрагента = Шапка.ДоговорКонтрагентаВШапке;
Если ЗначениеЗаполнено(ДоговорКонтрагента) И НЕ ДоговорКонтрагента.ЭтоГруппа Тогда
ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + ДоговорКонтрагента;
КонецЕсли;
ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;
ДанныеПредставителяОрганизации = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(Шапка.Организация, Шапка.ПредставительОрганизации, Шапка.ДатаАктаСверки);
ДанныеПредставителяКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Шапка.ПредставительКонтрагента, "Должность, Фамилия, Имя, Отчество"); // 1С-Минск.
ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия), "",ДанныеПредставителяОрганизации.Фамилия
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя), "", " "+ ДанныеПредставителяОрганизации.Имя)
+ ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество), "", " "+ ДанныеПредставителяОрганизации.Отчество));
СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),
"________________", ДанныеПредставителяОрганизации.Должность) + " " + ПредставлениеОрганизации
+ " " + ?(ФИОПредставителя <> "", ФИОПредставителя, "_______________________") + ", с одной стороны, "
+ "и " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента) ИЛИ НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность),
"________________", ДанныеПредставителяКонтрагента.Должность)
+ " " + ПредставлениеКонтрагента + " " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента),
"_______________________", Шапка.ПредставительКонтрагента) + ", с другой стороны, "
+ "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";
ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;
ОбластьЗаголовок.Параметры.ВалютаДокумента = Шапка.ВалютаДокумента;
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(Шапка.ОстатокНаНачало > 0, Шапка.ОстатокНаНачало, 0);
ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(Шапка.ОстатокНаНачало < 0, -Шапка.ОстатокНаНачало, 0);
ТабличныйДокумент.Вывести(ОбластьНачОстатки);
ОборотыДт = Шапка.СуммаДогДт;
ОборотыКт = Шапка.СуммаДогКт;
ОборотыДтКонтр = Шапка.СуммаДогДтКонтр;
ОборотыКтКонтр = Шапка.СуммаДогКтКонтр;
ОбходПоДоговорам = Шапка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор");
Пока ОбходПоДоговорам.Следующий() Цикл
Если Шапка.РазбитьПоДоговорам Тогда
//Выводим заголовок с договором
ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор;
ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор;
ТабличныйДокумент.Вывести(ОбластьДоговор);
ОбходПоДокументам=ОбходПоДоговорам.Выбрать();
Иначе
ОбходПоДокументам=ОбходПоДоговорам.Выбрать();
КонецЕсли;
//Создадим список документов по организации и контрагенту
СписокДокументов = новый массив;
СписокДокументовК = новый массив;
Пока ОбходПоДокументам.Следующий() Цикл
Если ОбходПоДокументам.Дата<>NULL Тогда
СписокДокументов.Добавить(новый структура("ДатаДокумента, РегистраторПредставление, Регистратор, СуммаОборотДт, СуммаОборотКт",
ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт));
КонецЕсли;
Если ОбходПоДокументам.ДатаК<>NULL Тогда
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр",
ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр));
КонецЕсли;
КонецЦикла;
//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
Если СписокДокументов.Количество() < СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","",""));
КонецЦикла;
ИначеЕсли СписокДокументов.Количество() > СписокДокументовК.Количество() Тогда
Для инд = МинИндекс По МаксИндекс-1 Цикл
СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","",""));
КонецЦикла;
КонецЕсли;
Для Инд = 0 По МаксИндекс Цикл
ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);
ТабличныйДокумент.Вывести(ОбластьОбороты);
КонецЦикла;
Если Шапка.РазбитьПоДоговорам Тогда
//Выводим итоги по каждому договору
ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам);
ТабличныйДокумент.Вывести(ОбластьДоговорИтоги);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
ОбластьОборотыИтог.Параметры.СуммаОборотДт = ОборотыДт;
ОбластьОборотыИтог.Параметры.СуммаОборотКт = ОборотыКт;
Если Шапка.СверкаСогласована тогда
ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ОборотыДтКонтр;
ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ОборотыКтКонтр;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьОборотыИтог);
ОстатокНаКонец = Шапка.ОстатокНаНачало + ОборотыДт - ОборотыКт;
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);
Если Шапка.СверкаСогласована тогда
ОстатокНаКонецК = Шапка.ОстатокНаНачало - ОборотыДтКонтр + ОборотыКтКонтр;
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0);
ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьКонОстатки);
// Результаты сверки
Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда
РезультатыСверки = "<не указана дата сверки>";
ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда
РезультатыСверки = "<не указан контрагент>";
Иначе
РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
Если ОстатокНаКонец > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеОрганизации + " "
+ Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, Шапка.ВалютаДокумента,Ложь)+")" ;
ИначеЕсли ОстатокНаКонец < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеКонтрагента + " "
+ Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, Шапка.ВалютаДокумента,Ложь)+")" ;
Иначе
РезультатыСверки = РезультатыСверки + "отсутствует.";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;
Если Шапка.СверкаСогласована тогда
ОбластьПодвал.Параметры.ПоДаннымКонтрагента = "По данным " + ПредставлениеКонтрагента;
Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда
РезультатыСверки = "<не указана дата сверки>";
ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда
РезультатыСверки = "<не указан контрагент>";
Иначе
РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
Если ОстатокНаКонецК > 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеОрганизации + " "
+ Формат(ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+ " ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонецК, Шапка.ВалютаДокумента,Ложь)+")" ;
ИначеЕсли ОстатокНаКонецК < 0 Тогда
РезультатыСверки = РезультатыСверки + "в пользу " + ПредставлениеКонтрагента + " "
+ Формат(-ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " "
+ строка(Шапка.ВалютаДокумента)
+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонецК, Шапка.ВалютаДокумента,Ложь)+")" ;
Иначе
РезультатыСверки = РезультатыСверки + "отсутствует.";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.РезультатыСверкиК = РезультатыСверки;
Если Шапка.Расхождение <> 0 Тогда
ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "
+ Формат(?(Шапка.Расхождение > 0, 1, -1) * Шапка.Расхождение, "ЧЦ=21; ЧДЦ=2")
+ " "+ Строка(Шапка.ВалютаДокумента)
+ " ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(
?(Шапка.Расхождение > 0, 1, -1) * Шапка.Расхождение, Шапка.ВалютаДокумента, Ложь)+")" ;
ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС + ИтогСверки+Символы.ПС+" ";
КонецЕсли;
КонецЕсли;
ОбластьПодвал.Параметры.НазваниеОрганизации = ПредставлениеОрганизации;
ОбластьПодвал.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента;
//выводит юридические адреса и телефоны
ОбластьПодвал.Параметры.ЮрАдресОрганизации = СведенияОбОрганизации.ЮридическийАдрес;
ОбластьПодвал.Параметры.ТелефонОрганизации = СведенияОбОрганизации.Телефоны;
ОбластьПодвал.Параметры.ЮрАдресКонтрагента = СведенияОКонтрагенте.ЮридическийАдрес;
ОбластьПодвал.Параметры.ТелефонКонтрагента = СведенияОКонтрагенте.Телефоны;
ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),
"________________", ДанныеПредставителяОрганизации.Должность);
ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность),
"________________", ДанныеПредставителяКонтрагента.Должность);
ОбластьПодвал.Параметры.ФИОПредставителя = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),
"_______________________",ДанныеПредставителяОрганизации.Представление)+")";
ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента),
"_______________________",ОбщегоНазначенияБПВызовСервера.ФамилияИнициалыФизЛица(
ДанныеПредставителяКонтрагента.Фамилия + " " + ДанныеПредставителяКонтрагента.Имя + " " + ДанныеПредставителяКонтрагента.Отчество))+")";
ТабличныйДокумент.Вывести(ОбластьПодвал);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, Шапка.АктСверки);
КонецЦикла; // Пока Шапка.Следующий()
Возврат ТабличныйДокумент;
КонецФункции
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот