|
Внешняя печатная форма | ☑ | ||
---|---|---|---|---|
0
jinny84
25.07.19
✎
13:00
|
Создал внешнею печатную форму, в программа добавил, при нажатии кнопки печать выбираю её и нечего не происходит. Код ниже
Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Документ.АктСверкиВзаиморасчетов"); ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", "Акт сверки расширенный"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); ПараметрыРегистрации.Вставить("Версия", "0.1"); ПараметрыРегистрации.Вставить("Информация", "Акт сверки расширенный"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Акт сверки расширенный", "АктСверкиРасширенный", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции // Формирует и возвращает текст запроса для выборки данных, // необходимых для формирования печатной формы Функция ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки() ТекстЗапроса = "ВЫБРАТЬ | Акт.Ссылка КАК АктСверки, | ВЫБОР | КОГДА Акт.РазбитьПоДоговорам | ТОГДА ТЧПоДаннымОрганизации.Договор | ИНАЧЕ NULL | КОНЕЦ КАК Договор, | ТЧПоДаннымОрганизации.НомерСтроки КАК НомерСтроки, | ТЧПоДаннымОрганизации.Дата КАК Дата, | NULL КАК ДатаК, | ТЧПоДаннымОрганизации.Документ КАК Документ, | ТЧПоДаннымОрганизации.Представление КАК Представление, | NULL КАК ПредставлениеК, | ТЧПоДаннымОрганизации.Дебет КАК Дебет, | ТЧПоДаннымОрганизации.Кредит КАК Кредит, | 0 КАК ДебетК, | 0 КАК КредитК, | 0 КАК НомерТабЧасти |ПОМЕСТИТЬ ДанныеДокумента |ИЗ | Документ.АктСверкиВзаиморасчетов КАК Акт | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК ТЧПоДаннымОрганизации | ПО Акт.Ссылка = ТЧПоДаннымОрганизации.Ссылка |ГДЕ | Акт.Ссылка В(&МассивДокументов) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Акт.Ссылка, | ВЫБОР | КОГДА Акт.РазбитьПоДоговорам | ТОГДА ТЧПоДаннымКонтрагента.Договор | ИНАЧЕ NULL | КОНЕЦ, | ТЧПоДаннымКонтрагента.НомерСтроки, | NULL, | ТЧПоДаннымКонтрагента.Дата, | NULL, | NULL, | ТЧПоДаннымКонтрагента.Представление, | 0, | 0, | ТЧПоДаннымКонтрагента.Дебет, | ТЧПоДаннымКонтрагента.Кредит, | 1 |ИЗ | Документ.АктСверкиВзаиморасчетов КАК Акт | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК ТЧПоДаннымКонтрагента | ПО Акт.Ссылка = ТЧПоДаннымКонтрагента.Ссылка |ГДЕ | Акт.Ссылка В(&МассивДокументов) | |ИНДЕКСИРОВАТЬ ПО | АктСверки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеДокумента.АктСверки КАК АктСверки, | ДанныеДокумента.Договор КАК Договор, | ДанныеДокумента.НомерСтроки КАК НомерСтроки, | ДанныеДокумента.Дата КАК Дата, | ДанныеДокумента.Дата КАК МинДата, | ДанныеДокумента.Документ, | ДанныеДокумента.Представление, | ДанныеДокумента.ДатаК, | ДанныеДокумента.ПредставлениеК, | ДанныеДокумента.Дебет КАК СуммаДогДт, | ДанныеДокумента.Кредит КАК СуммаДогКт, | ДанныеДокумента.ДебетК КАК СуммаДогДтКонтр, | ДанныеДокумента.КредитК КАК СуммаДогКтКонтр, | АктСверкиВзаиморасчетов.ПИФ КАК ПИФ, | АктСверкиВзаиморасчетов.Контрагент КАК Контрагент, | АктСверкиВзаиморасчетов.Дата КАК ДатаАктаСверки, | АктСверкиВзаиморасчетов.ПредставительОрганизации КАК ПредставительОрганизации, | АктСверкиВзаиморасчетов.ПредставительКонтрагента КАК ПредставительКонтрагента, | АктСверкиВзаиморасчетов.ДатаНачала КАК ДатаНачала, | АктСверкиВзаиморасчетов.ДатаОкончания КАК ДатаОкончания, | АктСверкиВзаиморасчетов.ОстатокНаНачало КАК ОстатокНаНачало, | АктСверкиВзаиморасчетов.Расхождение КАК Расхождение, | АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагентаВШапке, | АктСверкиВзаиморасчетов.ВалютаДокумента КАК ВалютаДокумента, | АктСверкиВзаиморасчетов.РазбитьПоДоговорам КАК РазбитьПоДоговорам, | АктСверкиВзаиморасчетов.СверкаСогласована КАК СверкаСогласована, | ДанныеДокумента.НомерТабЧасти КАК НомерТабЧасти |ИЗ | ДанныеДокумента КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов | ПО ДанныеДокумента.АктСверки = АктСверкиВзаиморасчетов.Ссылка | |УПОРЯДОЧИТЬ ПО | НомерТабЧасти, | ДанныеДокумента.НомерСтроки |ИТОГИ | МИНИМУМ(МинДата), | СУММА(СуммаДогДт), | СУММА(СуммаДогКт), | СУММА(СуммаДогДтКонтр), | СУММА(СуммаДогКтКонтр), | МАКСИМУМ(ПИФ), | МАКСИМУМ(Контрагент), | МАКСИМУМ(ДатаАктаСверки), | МАКСИМУМ(ПредставительОрганизации), | МАКСИМУМ(ПредставительКонтрагента), | МАКСИМУМ(ДатаНачала), | МАКСИМУМ(ДатаОкончания), | МАКСИМУМ(ОстатокНаНачало), | МАКСИМУМ(Расхождение), | МАКСИМУМ(ДоговорКонтрагентаВШапке), | МАКСИМУМ(ВалютаДокумента), | МАКСИМУМ(РазбитьПоДоговорам), | МАКСИМУМ(СверкаСогласована) |ПО | АктСверки, | Договор"; Возврат ТекстЗапроса; КонецФункции // Функция формирует табличный документ с печатной формой накладной, // // Возвращаемое значение: // Табличный документ - печатная форма накладной // Функция ПечатьАктаСверки(МассивОбъектов, ОбъектыПечати) УстановитьПривилегированныйРежим(Истина); ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.РазмерКолонтитулаСверху = 0; ТабличныйДокумент.РазмерКолонтитулаСнизу = 0; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов"; Макет = ПолучитьМакет("ПФ_MXL_АктСверки"); Запрос = Новый Запрос(); Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов); Запрос.Текст = ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки(); Шапка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "АктСверки"); ПервыйДокумент = Истина; Пока Шапка.Следующий() Цикл Если Не ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; // Запомним номер строки, с которой начали выводить текущий документ. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // Получаем области: ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); //сальдо начальное общее НЕ нужно выводить //ОбластьНачОстатки = Макет.ПолучитьОбласть("НачОстатки"); ОбластьДоговор = Макет.ПолучитьОбласть("Договор"); //ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"); ОбластьОбороты = Макет.ПолучитьОбласть("Обороты"); //ОбластьОборотыИтог = Макет.ПолучитьОбласть("ОборотыИтог"); //сальдо конечное общее НЕ нужно выводить //ОбластьКонОстатки = Макет.ПолучитьОбласть("КонОстатки"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьНачОстаткиДоговор = Макет.ПолучитьОбласть("НачОстаткиДоговор"); ОбластьКонОстаткиДоговор = Макет.ПолучитьОбласть("КонОстаткиДоговор"); // Заполняем шапку: СведенияОбОрганизации = регламентированнаяотчетность.ПолучитьСведенияОПИФ(Шапка.Организация, Шапка.ДатаАктаСверки); ПредставлениеОрганизации = формированиепечатныхформ.ОписаниеПИФ(СведенияОбОрганизации, "ПолноеНаименование,"); СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаАктаСверки); ПредставлениеКонтрагента = ЭлектронноеВзаимодействиеПереопределяемый.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,"); ОбластьЗаголовок.Параметры.НазваниеОрганизации = ПредставлениеОрганизации; ОбластьЗаголовок.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента; ДатаНачалаОтчета = ?(ЗначениеЗаполнено(Шапка.ДатаНачала), Шапка.ДатаНачала, Шапка.МинДата); ОписаниеПериода = ?(ЗначениеЗаполнено(ДатаНачалаОтчета),"за период: " + ПредставлениеПериода(НачалоДня( ДатаНачалаОтчета), КонецДня( Шапка.ДатаОкончания), "ФП = Истина"),""); ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода + Символы.ПС + "между " + ПредставлениеОрганизации + Символы.ПС + "и " + ПредставлениеКонтрагента; ДоговорКонтрагента = Шапка.ДоговорКонтрагентаВШапке; Если ЗначениеЗаполнено(ДоговорКонтрагента) И НЕ ДоговорКонтрагента.ЭтоГруппа Тогда ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + ДоговорКонтрагента; КонецЕсли; ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка; ДанныеПредставителяОрганизации = регламентированнаяотчетность.ПолучитьСведенияОПИФ(Шапка.Организация, Шапка.ПредставительОрганизации, Шапка.ДатаАктаСверки); ДанныеПредставителяКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Шапка.ПредставительКонтрагента, "Должность, Фамилия, Имя, Отчество"); ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия), "",ДанныеПредставителяОрганизации.Фамилия + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя), "", " "+ ДанныеПредставителяОрганизации.Имя) + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество), "", " "+ ДанныеПредставителяОрганизации.Отчество)); СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность), "________________", ДанныеПредставителяОрганизации.Должность) + " " + ПредставлениеОрганизации + " " + ?(ФИОПредставителя <> "", ФИОПредставителя, "_______________________") + ", с одной стороны, " + "и " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента) ИЛИ НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность), "________________", ДанныеПредставителяКонтрагента.Должность) + " " + ПредставлениеКонтрагента + " " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента), "_______________________", Шапка.ПредставительКонтрагента) + ", с другой стороны, " + "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:"; ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица; ОбластьЗаголовок.Параметры.ВалютаДокумента = Шапка.ВалютаДокумента; ТабличныйДокумент.Вывести(ОбластьЗаголовок); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); //ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(Шапка.ОстатокНаНачало > 0, Шапка.ОстатокНаНачало, 0); //ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(Шапка.ОстатокНаНачало < 0, -Шапка.ОстатокНаНачало, 0); //ТабличныйДокумент.Вывести(ОбластьНачОстатки); ОборотыДт = Шапка.СуммаДогДт; ОборотыКт = Шапка.СуммаДогКт; ОборотыДтКонтр = Шапка.СуммаДогДтКонтр; ОборотыКтКонтр = Шапка.СуммаДогКтКонтр; ФильтрСписокСчетов = Новый Массив(); Для каждого СтрокаСчета Из Шапка.АктСверки.СписокСчетов Цикл Если ЗначениеЗаполнено(СтрокаСчета.Счет) И СтрокаСчета.УчаствуетВРасчетах Тогда ФильтрСписокСчетов.Добавить(СтрокаСчета.Счет); КонецЕсли; КонецЦикла; ОбходПоДоговорам = Шапка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор"); Пока ОбходПоДоговорам.Следующий() И ЗначениеЗаполнено(ОбходПоДоговорам.Договор) Цикл Если Шапка.РазбитьПоДоговорам Тогда //Выводим заголовок с договором ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор; ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор; ТабличныйДокумент.Вывести(ОбластьДоговор); //Получаем остатки по договору и выводим ЗапросПоДоговору = Новый Запрос; ЗапросПоДоговору.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗапросПоДоговору.УстановитьПараметр("ДатаНачала", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), Неопределено, Новый Граница (НачалоДня(Шапка.ДатаНачала), ВидГраницы.Исключая))); ЗапросПоДоговору.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания), Неопределено, Новый Граница(КонецДня(Шапка.ДатаОкончания), ВидГраницы.Включая))); ЗапросПоДоговору.УстановитьПараметр("Организация", Шапка.Организация); ЗапросПоДоговору.УстановитьПараметр("Контрагент", Шапка.Контрагент); ЗапросПоДоговору.УстановитьПараметр("Валюта", ?(НЕ ЗначениеЗаполнено(Шапка.ВалютаДокумента) ИЛИ (Шапка.ВалютаДокумента = ВалютаРегламентированногоУчета), Неопределено, Шапка.ВалютаДокумента)); ЗапросПоДоговору.УстановитьПараметр("ФильтрСписокСчетов", ФильтрСписокСчетов); АналитикаРасчетов = Новый Массив(); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры); ЗапросПоДоговору.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов); ЗапросПоДоговору.УстановитьПараметр("ДоговорКонтрагента", ОбходПоДоговорам.Договор); ЗапросПоДоговору.Текст = "ВЫБРАТЬ | Управленческий.Ссылка КАК Счет |ПОМЕСТИТЬ ФильтрСписокСчетов |ИЗ | ПланСчетов.Управленческий КАК Управленческий |ГДЕ | Управленческий.Ссылка В ИЕРАРХИИ(&ФильтрСписокСчетов) | |ИНДЕКСИРОВАТЬ ПО | Счет |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка КАК Договор |ПОМЕСТИТЬ ДоговораКонтрагента |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Ссылка В ИЕРАРХИИ(&ДоговорКонтрагента) И | &ДоговорКонтрагента <> НЕОПРЕДЕЛЕНО | |ИНДЕКСИРОВАТЬ ПО | Договор |;"; ВыборкаВТ = ЗапросПоДоговору.Выполнить().Выбрать(); ЗапросПоДоговору.Текст = ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), "ВЫБРАТЬ | 0 КАК ОстатокНаНачало, | 0 КАК ОстатокНаКонец", "ВЫБРАТЬ | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА УправленческийОстаткиНаНачало.СуммаОстаток | ИНАЧЕ УправленческийОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ КАК ОстатокНаНачало, | 0 КАК ОстатокНаКонец |ИЗ | РегистрБухгалтерии.Управленческий.Остатки( | &ДатаНачала, | Счет В | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | ПИФ = &ПИФ | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 = &ДоговорКонтрагента | КОНЕЦ) КАК УправленческийОстаткиНаНачало"); ЗапросПоДоговору.Текст = ЗапросПоДоговору.Текст + " | |ОБЪЕДИНИТЬ ВСЕ |"; ЗапросПоДоговору.Текст = ЗапросПоДоговору.Текст + "ВЫБРАТЬ | 0 КАК ОстатокНаНачало, | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА УправленческийОстаткиНаНачало.СуммаОстаток | ИНАЧЕ УправленческийОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ КАК ОстатокНаКонец |ИЗ | РегистрБухгалтерии.Управленческий.Остатки( | &ДатаОкончания, | Счет В | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | ПИФ = &ПИФ | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 = &ДоговорКонтрагента | КОНЕЦ) КАК УправленческийОстаткиНаНачало |ИТОГИ | СУММА(ОстатокНаНачало), | СУММА(ОстатокНаКонец) |ПО | ОБЩИЕ"; Выборка = ЗапросПоДоговору.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ"); Выборка.Следующий(); ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокДтДоговор = ?(Выборка.ОстатокНаНачало > 0, Выборка.ОстатокНаНачало, 0); ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокКтДоговор = ?(Выборка.ОстатокНаНачало < 0, -Выборка.ОстатокНаНачало, 0); ТабличныйДокумент.Вывести(ОбластьНачОстаткиДоговор); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокДтДоговор = ?(Выборка.ОстатокНаКонец > 0, Выборка.ОстатокНаКонец, 0); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокКтДоговор = ?(Выборка.ОстатокНаКонец < 0, -Выборка.ОстатокНаКонец, 0); //-- ОбходПоДокументам=ОбходПоДоговорам.Выбрать(); Иначе ОбходПоДокументам=ОбходПоДоговорам.Выбрать(); КонецЕсли; //Создадим список документов по организации и контрагенту СписокДокументов = новый массив; СписокДокументовК = новый массив; НеБылВывод = истина; //-------------------------------------------- Пока ОбходПоДокументам.Следующий() Цикл Если ОбходПоДокументам.Дата<>NULL Тогда СписокДокументов.Добавить(новый структура("ДатаДокумента, РегистраторПредставление, Регистратор, СуммаОборотДт, СуммаОборотКт", ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт)); КонецЕсли; Если ОбходПоДокументам.ДатаК<>NULL Тогда СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр", ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр)); КонецЕсли; КонецЦикла; //Для упрощения вывода, сравним списки по количеству элементов, добавив пустые МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1; МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1; Если СписокДокументов.Количество() < СписокДокументовК.Количество() Тогда Для инд = МинИндекс По МаксИндекс-1 Цикл СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","","")); КонецЦикла; ИначеЕсли СписокДокументов.Количество() > СписокДокументовК.Количество() Тогда Для инд = МинИндекс По МаксИндекс-1 Цикл СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","","")); КонецЦикла; КонецЕсли; Для Инд = 0 По МаксИндекс Цикл НеБылВывод = ложь; ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]); ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]); ТабличныйДокумент.Вывести(ОбластьОбороты); КонецЦикла; Если Шапка.РазбитьПоДоговорам Тогда //Выводим итоги по каждому договору //ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам); //ТабличныйДокумент.Вывести(ОбластьДоговорИтоги); //++ ТабличныйДокумент.Вывести(ОбластьКонОстаткиДоговор); //-- Иначе Прервать; КонецЕсли; КонецЦикла; //-------------------------------------------- //------------------------------------------ //Если НЕ СписокДокументов = неопределено тогда Если ( СписокДокументовК.Количество()=0) или НеБылВывод тогда //Если Шапка.РазбитьПоДоговорам Тогда // ВывестиДоговораБезОборотов(ТабличныйДокумент,Шапка,Макет,ФильтрСписокСчетов); // КонецЕсли; Запрос1 = Новый Запрос; Запрос1.УстановитьПараметр("Ссылка", Шапка.АктСверки); Запрос1.УстановитьПараметр("Счет", ФильтрСписокСчетов); Запрос1.УстановитьПараметр("Субконто1", Шапка.Контрагент); Запрос1.УстановитьПараметр("Организация", Шапка.Организация); Запрос1.УстановитьПараметр("НачПер", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), Неопределено, Новый Граница (НачалоДня(Шапка.ДатаНачала), ВидГраницы.Включая))); Запрос1.УстановитьПараметр("КонПер", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания), Неопределено, Новый Граница(КонецДня(Шапка.ДатаОкончания), ВидГраницы.Включая))); Запрос1.Текст = "ВЫБРАТЬ | АктСверкиВзаиморасчетовПоДаннымОрганизации.Договор |ПОМЕСТИТЬ ВТ |ИЗ | Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК АктСверкиВзаиморасчетовПоДаннымОрганизации |ГДЕ | АктСверкиВзаиморасчетовПоДаннымОрганизации.Ссылка = &Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | АктСверкиВзаиморасчетовПоДаннымКонтрагента.Договор |ИЗ | Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК АктСверкиВзаиморасчетовПоДаннымКонтрагента |ГДЕ | АктСверкиВзаиморасчетовПоДаннымКонтрагента.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВЫБОР | КОГДА ХозрасчетныйОстатки.Субконто2 ЕСТЬ NULL | ТОГДА ХозрасчетныйОстатки1.Субконто2 | ИНАЧЕ ХозрасчетныйОстатки.Субконто2 | КОНЕЦ КАК Субконто2, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокДт, 0) КАК СуммаОстатокДт, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокКт, 0) КАК СуммаОстатокКт, | ЕСТЬNULL(ХозрасчетныйОстатки1.СуммаОстатокДт, 0) КАК КонСуммаОстатокДт, | ЕСТЬNULL(ХозрасчетныйОстатки1.СуммаОстатокКт, 0) КАК КонСуммаОстатокКт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &НачПер, | Счет В ИЕРАРХИИ (&Счет), | , | НЕ Субконто2 В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Договор | ИЗ | ВТ КАК ВТ) | И Субконто1 = &Субконто1 | И Организация = &Организация) КАК ХозрасчетныйОстатки | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки( | &КонПер, | Счет В ИЕРАРХИИ (&Счет), | , | НЕ Субконто2 В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Договор | ИЗ | ВТ КАК ВТ) | И Субконто1 = &Субконто1 | И Организация = &Организация) КАК ХозрасчетныйОстатки1 | ПО ХозрасчетныйОстатки.Субконто2 = ХозрасчетныйОстатки1.Субконто2"; Результат = Запрос1.Выполнить(); Выборка = Результат.Выбрать(); ОблДоговор = Макет.ПолучитьОбласть("Договор"); ОблНачОстаткиДоговор = Макет.ПолучитьОбласть("НачОстаткиДоговор"); ОблКонОстаткиДоговор = Макет.ПолучитьОбласть("КонОстаткиДоговор"); Пока Выборка.Следующий() цикл Если ЗначениеЗаполнено(Выборка.Субконто2) тогда Если ТипЗнч(Выборка.Субконто2) = Тип("СправочникСсылка.ДоговорыКонтрагентов") тогда ОблДоговор.Параметры.Договор = Выборка.Субконто2; ТабличныйДокумент.Вывести(ОблДоговор); ОблНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокДтДоговор = ?(НЕ Выборка.СуммаОстатокДт = 0, Выборка.СуммаОстатокДт, 0); ОблНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокКтДоговор = ?(НЕ Выборка.СуммаОстатокКт = 0, Выборка.СуммаОстатокКт, 0); ТабличныйДокумент.Вывести(ОблНачОстаткиДоговор); ОблКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокДтДоговор = ?(НЕ Выборка.КонСуммаОстатокДт = 0, Выборка.КонСуммаОстатокДт, 0); ОблКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокКтДоговор = ?(НЕ Выборка.СуммаОстатокКт = 0, Выборка.КонСуммаОстатокКт, 0); ТабличныйДокумент.Вывести(ОблКонОстаткиДоговор); КонецЕсли; КонецЕсли; КонецЦикла; ОстатокНаКонец = Шапка.ОстатокНаНачало + ОборотыДт - ОборотыКт; //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0); //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0); Если Шапка.СверкаСогласована тогда ОстатокНаКонецК = Шапка.ОстатокНаНачало - ОборотыДтКонтр + ОборотыКтКонтр; //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0); //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0); КонецЕсли; //сальдо конечное общее НЕ нужно выводить //ТабличныйДокумент.Вывести(ОбластьКонОстатки); // Результаты сверки НЕ НАДО ВЫВОДИТЬ! УДАЛЕНА 18 СТРОКА ПОДВАЛА по данным организации //Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда // РезультатыСверки = "<не указана дата сверки>"; //ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда // РезультатыСверки = "<не указан контрагент>"; //Иначе // РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=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
jinny84
25.07.19
✎
13:04
|
Извините не весь код, и не свернул
[spoiler] Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Документ.АктСверкиВзаиморасчетов"); ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", "Акт сверки расширенный"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); ПараметрыРегистрации.Вставить("Версия", "0.1"); ПараметрыРегистрации.Вставить("Информация", "Акт сверки расширенный"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Акт сверки расширенный", "АктСверкиРасширенный", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции // Формирует и возвращает текст запроса для выборки данных, // необходимых для формирования печатной формы Функция ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки() ТекстЗапроса = "ВЫБРАТЬ | Акт.Ссылка КАК АктСверки, | ВЫБОР | КОГДА Акт.РазбитьПоДоговорам | ТОГДА ТЧПоДаннымОрганизации.Договор | ИНАЧЕ NULL | КОНЕЦ КАК Договор, | ТЧПоДаннымОрганизации.НомерСтроки КАК НомерСтроки, | ТЧПоДаннымОрганизации.Дата КАК Дата, | NULL КАК ДатаК, | ТЧПоДаннымОрганизации.Документ КАК Документ, | ТЧПоДаннымОрганизации.Представление КАК Представление, | NULL КАК ПредставлениеК, | ТЧПоДаннымОрганизации.Дебет КАК Дебет, | ТЧПоДаннымОрганизации.Кредит КАК Кредит, | 0 КАК ДебетК, | 0 КАК КредитК, | 0 КАК НомерТабЧасти |ПОМЕСТИТЬ ДанныеДокумента |ИЗ | Документ.АктСверкиВзаиморасчетов КАК Акт | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК ТЧПоДаннымОрганизации | ПО Акт.Ссылка = ТЧПоДаннымОрганизации.Ссылка |ГДЕ | Акт.Ссылка В(&МассивДокументов) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Акт.Ссылка, | ВЫБОР | КОГДА Акт.РазбитьПоДоговорам | ТОГДА ТЧПоДаннымКонтрагента.Договор | ИНАЧЕ NULL | КОНЕЦ, | ТЧПоДаннымКонтрагента.НомерСтроки, | NULL, | ТЧПоДаннымКонтрагента.Дата, | NULL, | NULL, | ТЧПоДаннымКонтрагента.Представление, | 0, | 0, | ТЧПоДаннымКонтрагента.Дебет, | ТЧПоДаннымКонтрагента.Кредит, | 1 |ИЗ | Документ.АктСверкиВзаиморасчетов КАК Акт | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК ТЧПоДаннымКонтрагента | ПО Акт.Ссылка = ТЧПоДаннымКонтрагента.Ссылка |ГДЕ | Акт.Ссылка В(&МассивДокументов) | |ИНДЕКСИРОВАТЬ ПО | АктСверки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеДокумента.АктСверки КАК АктСверки, | ДанныеДокумента.Договор КАК Договор, | ДанныеДокумента.НомерСтроки КАК НомерСтроки, | ДанныеДокумента.Дата КАК Дата, | ДанныеДокумента.Дата КАК МинДата, | ДанныеДокумента.Документ, | ДанныеДокумента.Представление, | ДанныеДокумента.ДатаК, | ДанныеДокумента.ПредставлениеК, | ДанныеДокумента.Дебет КАК СуммаДогДт, | ДанныеДокумента.Кредит КАК СуммаДогКт, | ДанныеДокумента.ДебетК КАК СуммаДогДтКонтр, | ДанныеДокумента.КредитК КАК СуммаДогКтКонтр, | АктСверкиВзаиморасчетов.ПИФ КАК ПИФ, | АктСверкиВзаиморасчетов.Контрагент КАК Контрагент, | АктСверкиВзаиморасчетов.Дата КАК ДатаАктаСверки, | АктСверкиВзаиморасчетов.ПредставительОрганизации КАК ПредставительОрганизации, | АктСверкиВзаиморасчетов.ПредставительКонтрагента КАК ПредставительКонтрагента, | АктСверкиВзаиморасчетов.ДатаНачала КАК ДатаНачала, | АктСверкиВзаиморасчетов.ДатаОкончания КАК ДатаОкончания, | АктСверкиВзаиморасчетов.ОстатокНаНачало КАК ОстатокНаНачало, | АктСверкиВзаиморасчетов.Расхождение КАК Расхождение, | АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагентаВШапке, | АктСверкиВзаиморасчетов.ВалютаДокумента КАК ВалютаДокумента, | АктСверкиВзаиморасчетов.РазбитьПоДоговорам КАК РазбитьПоДоговорам, | АктСверкиВзаиморасчетов.СверкаСогласована КАК СверкаСогласована, | ДанныеДокумента.НомерТабЧасти КАК НомерТабЧасти |ИЗ | ДанныеДокумента КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов | ПО ДанныеДокумента.АктСверки = АктСверкиВзаиморасчетов.Ссылка | |УПОРЯДОЧИТЬ ПО | НомерТабЧасти, | ДанныеДокумента.НомерСтроки |ИТОГИ | МИНИМУМ(МинДата), | СУММА(СуммаДогДт), | СУММА(СуммаДогКт), | СУММА(СуммаДогДтКонтр), | СУММА(СуммаДогКтКонтр), | МАКСИМУМ(ПИФ), | МАКСИМУМ(Контрагент), | МАКСИМУМ(ДатаАктаСверки), | МАКСИМУМ(ПредставительОрганизации), | МАКСИМУМ(ПредставительКонтрагента), | МАКСИМУМ(ДатаНачала), | МАКСИМУМ(ДатаОкончания), | МАКСИМУМ(ОстатокНаНачало), | МАКСИМУМ(Расхождение), | МАКСИМУМ(ДоговорКонтрагентаВШапке), | МАКСИМУМ(ВалютаДокумента), | МАКСИМУМ(РазбитьПоДоговорам), | МАКСИМУМ(СверкаСогласована) |ПО | АктСверки, | Договор"; Возврат ТекстЗапроса; КонецФункции // Функция формирует табличный документ с печатной формой накладной, // // Возвращаемое значение: // Табличный документ - печатная форма накладной // Функция ПечатьАктаСверки(МассивОбъектов, ОбъектыПечати) УстановитьПривилегированныйРежим(Истина); ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.РазмерКолонтитулаСверху = 0; ТабличныйДокумент.РазмерКолонтитулаСнизу = 0; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов"; Макет = ПолучитьМакет("ПФ_MXL_АктСверки"); Запрос = Новый Запрос(); Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов); Запрос.Текст = ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки(); Шапка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "АктСверки"); ПервыйДокумент = Истина; Пока Шапка.Следующий() Цикл Если Не ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; // Запомним номер строки, с которой начали выводить текущий документ. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // Получаем области: ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); //сальдо начальное общее НЕ нужно выводить //ОбластьНачОстатки = Макет.ПолучитьОбласть("НачОстатки"); ОбластьДоговор = Макет.ПолучитьОбласть("Договор"); //ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"); ОбластьОбороты = Макет.ПолучитьОбласть("Обороты"); //ОбластьОборотыИтог = Макет.ПолучитьОбласть("ОборотыИтог"); //сальдо конечное общее НЕ нужно выводить //ОбластьКонОстатки = Макет.ПолучитьОбласть("КонОстатки"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьНачОстаткиДоговор = Макет.ПолучитьОбласть("НачОстаткиДоговор"); ОбластьКонОстаткиДоговор = Макет.ПолучитьОбласть("КонОстаткиДоговор"); // Заполняем шапку: СведенияОбОрганизации = регламентированнаяотчетность.ПолучитьСведенияОПИФ(Шапка.Организация, Шапка.ДатаАктаСверки); ПредставлениеОрганизации = формированиепечатныхформ.ОписаниеПИФ(СведенияОбОрганизации, "ПолноеНаименование,"); СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаАктаСверки); ПредставлениеКонтрагента = ЭлектронноеВзаимодействиеПереопределяемый.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,"); ОбластьЗаголовок.Параметры.НазваниеОрганизации = ПредставлениеОрганизации; ОбластьЗаголовок.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента; ДатаНачалаОтчета = ?(ЗначениеЗаполнено(Шапка.ДатаНачала), Шапка.ДатаНачала, Шапка.МинДата); ОписаниеПериода = ?(ЗначениеЗаполнено(ДатаНачалаОтчета),"за период: " + ПредставлениеПериода(НачалоДня( ДатаНачалаОтчета), КонецДня( Шапка.ДатаОкончания), "ФП = Истина"),""); ТекстЗаголовка = "взаимных расчетов " + ОписаниеПериода + Символы.ПС + "между " + ПредставлениеОрганизации + Символы.ПС + "и " + ПредставлениеКонтрагента; ДоговорКонтрагента = Шапка.ДоговорКонтрагентаВШапке; Если ЗначениеЗаполнено(ДоговорКонтрагента) И НЕ ДоговорКонтрагента.ЭтоГруппа Тогда ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + ДоговорКонтрагента; КонецЕсли; ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка; ДанныеПредставителяОрганизации = регламентированнаяотчетность.ПолучитьСведенияОПИФ(Шапка.Организация, Шапка.ПредставительОрганизации, Шапка.ДатаАктаСверки); ДанныеПредставителяКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Шапка.ПредставительКонтрагента, "Должность, Фамилия, Имя, Отчество"); ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия), "",ДанныеПредставителяОрганизации.Фамилия + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя), "", " "+ ДанныеПредставителяОрганизации.Имя) + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество), "", " "+ ДанныеПредставителяОрганизации.Отчество)); СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность), "________________", ДанныеПредставителяОрганизации.Должность) + " " + ПредставлениеОрганизации + " " + ?(ФИОПредставителя <> "", ФИОПредставителя, "_______________________") + ", с одной стороны, " + "и " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента) ИЛИ НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность), "________________", ДанныеПредставителяКонтрагента.Должность) + " " + ПредставлениеКонтрагента + " " + ?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента), "_______________________", Шапка.ПредставительКонтрагента) + ", с другой стороны, " + "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:"; ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица; ОбластьЗаголовок.Параметры.ВалютаДокумента = Шапка.ВалютаДокумента; ТабличныйДокумент.Вывести(ОбластьЗаголовок); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); //ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = ?(Шапка.ОстатокНаНачало > 0, Шапка.ОстатокНаНачало, 0); //ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = ?(Шапка.ОстатокНаНачало < 0, -Шапка.ОстатокНаНачало, 0); //ТабличныйДокумент.Вывести(ОбластьНачОстатки); ОборотыДт = Шапка.СуммаДогДт; ОборотыКт = Шапка.СуммаДогКт; ОборотыДтКонтр = Шапка.СуммаДогДтКонтр; ОборотыКтКонтр = Шапка.СуммаДогКтКонтр; ФильтрСписокСчетов = Новый Массив(); Для каждого СтрокаСчета Из Шапка.АктСверки.СписокСчетов Цикл Если ЗначениеЗаполнено(СтрокаСчета.Счет) И СтрокаСчета.УчаствуетВРасчетах Тогда ФильтрСписокСчетов.Добавить(СтрокаСчета.Счет); КонецЕсли; КонецЦикла; ОбходПоДоговорам = Шапка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Договор"); Пока ОбходПоДоговорам.Следующий() И ЗначениеЗаполнено(ОбходПоДоговорам.Договор) Цикл Если Шапка.РазбитьПоДоговорам Тогда //Выводим заголовок с договором ОбластьДоговор.Параметры.Договор = ОбходПоДоговорам.Договор; ОбластьДоговор.Параметры.Регистратор = ОбходПоДоговорам.Договор; ТабличныйДокумент.Вывести(ОбластьДоговор); //Получаем остатки по договору и выводим ЗапросПоДоговору = Новый Запрос; ЗапросПоДоговору.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗапросПоДоговору.УстановитьПараметр("ДатаНачала", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), Неопределено, Новый Граница (НачалоДня(Шапка.ДатаНачала), ВидГраницы.Исключая))); ЗапросПоДоговору.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания), Неопределено, Новый Граница(КонецДня(Шапка.ДатаОкончания), ВидГраницы.Включая))); ЗапросПоДоговору.УстановитьПараметр("Организация", Шапка.Организация); ЗапросПоДоговору.УстановитьПараметр("Контрагент", Шапка.Контрагент); ЗапросПоДоговору.УстановитьПараметр("Валюта", ?(НЕ ЗначениеЗаполнено(Шапка.ВалютаДокумента) ИЛИ (Шапка.ВалютаДокумента = ВалютаРегламентированногоУчета), Неопределено, Шапка.ВалютаДокумента)); ЗапросПоДоговору.УстановитьПараметр("ФильтрСписокСчетов", ФильтрСписокСчетов); АналитикаРасчетов = Новый Массив(); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры); ЗапросПоДоговору.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов); ЗапросПоДоговору.УстановитьПараметр("ДоговорКонтрагента", ОбходПоДоговорам.Договор); ЗапросПоДоговору.Текст = "ВЫБРАТЬ | Управленческий.Ссылка КАК Счет |ПОМЕСТИТЬ ФильтрСписокСчетов |ИЗ | ПланСчетов.Управленческий КАК Управленческий |ГДЕ | Управленческий.Ссылка В ИЕРАРХИИ(&ФильтрСписокСчетов) | |ИНДЕКСИРОВАТЬ ПО | Счет |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка КАК Договор |ПОМЕСТИТЬ ДоговораКонтрагента |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Ссылка В ИЕРАРХИИ(&ДоговорКонтрагента) И | &ДоговорКонтрагента <> НЕОПРЕДЕЛЕНО | |ИНДЕКСИРОВАТЬ ПО | Договор |;"; ВыборкаВТ = ЗапросПоДоговору.Выполнить().Выбрать(); ЗапросПоДоговору.Текст = ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), "ВЫБРАТЬ | 0 КАК ОстатокНаНачало, | 0 КАК ОстатокНаКонец", "ВЫБРАТЬ | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА УправленческийОстаткиНаНачало.СуммаОстаток | ИНАЧЕ УправленческийОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ КАК ОстатокНаНачало, | 0 КАК ОстатокНаКонец |ИЗ | РегистрБухгалтерии.Управленческий.Остатки( | &ДатаНачала, | Счет В | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | ПИФ = &ПИФ | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 = &ДоговорКонтрагента | КОНЕЦ) КАК УправленческийОстаткиНаНачало"); ЗапросПоДоговору.Текст = ЗапросПоДоговору.Текст + " | |ОБЪЕДИНИТЬ ВСЕ |"; ЗапросПоДоговору.Текст = ЗапросПоДоговору.Текст + "ВЫБРАТЬ | 0 КАК ОстатокНаНачало, | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА УправленческийОстаткиНаНачало.СуммаОстаток | ИНАЧЕ УправленческийОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ КАК ОстатокНаКонец |ИЗ | РегистрБухгалтерии.Управленческий.Остатки( | &ДатаОкончания, | Счет В | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | ПИФ = &ПИФ | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 = &ДоговорКонтрагента | КОНЕЦ) КАК УправленческийОстаткиНаНачало |ИТОГИ | СУММА(ОстатокНаНачало), | СУММА(ОстатокНаКонец) |ПО | ОБЩИЕ"; Выборка = ЗапросПоДоговору.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ"); Выборка.Следующий(); ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокДтДоговор = ?(Выборка.ОстатокНаНачало > 0, Выборка.ОстатокНаНачало, 0); ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокКтДоговор = ?(Выборка.ОстатокНаНачало < 0, -Выборка.ОстатокНаНачало, 0); ТабличныйДокумент.Вывести(ОбластьНачОстаткиДоговор); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокДтДоговор = ?(Выборка.ОстатокНаКонец > 0, Выборка.ОстатокНаКонец, 0); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокКтДоговор = ?(Выборка.ОстатокНаКонец < 0, -Выборка.ОстатокНаКонец, 0); //-- ОбходПоДокументам=ОбходПоДоговорам.Выбрать(); Иначе ОбходПоДокументам=ОбходПоДоговорам.Выбрать(); КонецЕсли; //Создадим список документов по организации и контрагенту СписокДокументов = новый массив; СписокДокументовК = новый массив; НеБылВывод = истина; //-------------------------------------------- Пока ОбходПоДокументам.Следующий() Цикл Если ОбходПоДокументам.Дата<>NULL Тогда СписокДокументов.Добавить(новый структура("ДатаДокумента, РегистраторПредставление, Регистратор, СуммаОборотДт, СуммаОборотКт", ОбходПоДокументам.Дата,ОбходПоДокументам.Представление,ОбходПоДокументам.Документ,ОбходПоДокументам.СуммаДогДт,ОбходПоДокументам.СуммаДогКт)); КонецЕсли; Если ОбходПоДокументам.ДатаК<>NULL Тогда СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр", ОбходПоДокументам.ДатаК,ОбходПоДокументам.ПредставлениеК,ОбходПоДокументам.СуммаДогДтКонтр,ОбходПоДокументам.СуммаДогКтКонтр)); КонецЕсли; КонецЦикла; //Для упрощения вывода, сравним списки по количеству элементов, добавив пустые МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1; МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1; Если СписокДокументов.Количество() < СписокДокументовК.Количество() Тогда Для инд = МинИндекс По МаксИндекс-1 Цикл СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","","")); КонецЦикла; ИначеЕсли СписокДокументов.Количество() > СписокДокументовК.Количество() Тогда Для инд = МинИндекс По МаксИндекс-1 Цикл СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","","")); КонецЦикла; КонецЕсли; Для Инд = 0 По МаксИндекс Цикл НеБылВывод = ложь; ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]); ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]); ТабличныйДокумент.Вывести(ОбластьОбороты); КонецЦикла; Если Шапка.РазбитьПоДоговорам Тогда //Выводим итоги по каждому договору //ОбластьДоговорИтоги.Параметры.Заполнить(ОбходПоДоговорам); //ТабличныйДокумент.Вывести(ОбластьДоговорИтоги); //++ ТабличныйДокумент.Вывести(ОбластьКонОстаткиДоговор); //-- Иначе Прервать; КонецЕсли; КонецЦикла; //-------------------------------------------- //------------------------------------------ //Если НЕ СписокДокументов = неопределено тогда Если ( СписокДокументовК.Количество()=0) или НеБылВывод тогда //Если Шапка.РазбитьПоДоговорам Тогда // ВывестиДоговораБезОборотов(ТабличныйДокумент,Шапка,Макет,ФильтрСписокСчетов); // КонецЕсли; Запрос1 = Новый Запрос; Запрос1.УстановитьПараметр("Ссылка", Шапка.АктСверки); Запрос1.УстановитьПараметр("Счет", ФильтрСписокСчетов); Запрос1.УстановитьПараметр("Субконто1", Шапка.Контрагент); Запрос1.УстановитьПараметр("Организация", Шапка.Организация); Запрос1.УстановитьПараметр("НачПер", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), Неопределено, Новый Граница (НачалоДня(Шапка.ДатаНачала), ВидГраницы.Включая))); Запрос1.УстановитьПараметр("КонПер", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания), Неопределено, Новый Граница(КонецДня(Шапка.ДатаОкончания), ВидГраницы.Включая))); Запрос1.Текст = "ВЫБРАТЬ | АктСверкиВзаиморасчетовПоДаннымОрганизации.Договор |ПОМЕСТИТЬ ВТ |ИЗ | Документ.АктСверкиВзаиморасчетов.ПоДаннымОрганизации КАК АктСверкиВзаиморасчетовПоДаннымОрганизации |ГДЕ | АктСверкиВзаиморасчетовПоДаннымОрганизации.Ссылка = &Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | АктСверкиВзаиморасчетовПоДаннымКонтрагента.Договор |ИЗ | Документ.АктСверкиВзаиморасчетов.ПоДаннымКонтрагента КАК АктСверкиВзаиморасчетовПоДаннымКонтрагента |ГДЕ | АктСверкиВзаиморасчетовПоДаннымКонтрагента.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВЫБОР | КОГДА ХозрасчетныйОстатки.Субконто2 ЕСТЬ NULL | ТОГДА ХозрасчетныйОстатки1.Субконто2 | ИНАЧЕ ХозрасчетныйОстатки.Субконто2 | КОНЕЦ КАК Субконто2, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокДт, 0) КАК СуммаОстатокДт, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстатокКт, 0) КАК СуммаОстатокКт, | ЕСТЬNULL(ХозрасчетныйОстатки1.СуммаОстатокДт, 0) КАК КонСуммаОстатокДт, | ЕСТЬNULL(ХозрасчетныйОстатки1.СуммаОстатокКт, 0) КАК КонСуммаОстатокКт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &НачПер, | Счет В ИЕРАРХИИ (&Счет), | , | НЕ Субконто2 В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Договор | ИЗ | ВТ КАК ВТ) | И Субконто1 = &Субконто1 | И Организация = &Организация) КАК ХозрасчетныйОстатки | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки( | &КонПер, | Счет В ИЕРАРХИИ (&Счет), | , | НЕ Субконто2 В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Договор | ИЗ | ВТ КАК ВТ) | И Субконто1 = &Субконто1 | И Организация = &Организация) КАК ХозрасчетныйОстатки1 | ПО ХозрасчетныйОстатки.Субконто2 = ХозрасчетныйОстатки1.Субконто2"; Результат = Запрос1.Выполнить(); Выборка = Результат.Выбрать(); ОблДоговор = Макет.ПолучитьОбласть("Договор"); ОблНачОстаткиДоговор = Макет.ПолучитьОбласть("НачОстаткиДоговор"); ОблКонОстаткиДоговор = Макет.ПолучитьОбласть("КонОстаткиДоговор"); Пока Выборка.Следующий() цикл Если ЗначениеЗаполнено(Выборка.Субконто2) тогда Если ТипЗнч(Выборка.Субконто2) = Тип("СправочникСсылка.ДоговорыКонтрагентов") тогда ОблДоговор.Параметры.Договор = Выборка.Субконто2; ТабличныйДокумент.Вывести(ОблДоговор); ОблНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокДтДоговор = ?(НЕ Выборка.СуммаОстатокДт = 0, Выборка.СуммаОстатокДт, 0); ОблНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокКтДоговор = ?(НЕ Выборка.СуммаОстатокКт = 0, Выборка.СуммаОстатокКт, 0); ТабличныйДокумент.Вывести(ОблНачОстаткиДоговор); ОблКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокДтДоговор = ?(НЕ Выборка.КонСуммаОстатокДт = 0, Выборка.КонСуммаОстатокДт, 0); ОблКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокКтДоговор = ?(НЕ Выборка.СуммаОстатокКт = 0, Выборка.КонСуммаОстатокКт, 0); ТабличныйДокумент.Вывести(ОблКонОстаткиДоговор); КонецЕсли; КонецЕсли; КонецЦикла; ОстатокНаКонец = Шапка.ОстатокНаНачало + ОборотыДт - ОборотыКт; //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0); //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0); Если Шапка.СверкаСогласована тогда ОстатокНаКонецК = Шапка.ОстатокНаНачало - ОборотыДтКонтр + ОборотыКтКонтр; //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0); //ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0); КонецЕсли; //сальдо конечное общее НЕ нужно выводить //ТабличныйДокумент.Вывести(ОбластьКонОстатки); // Результаты сверки НЕ НАДО ВЫВОДИТЬ! УДАЛЕНА 18 СТРОКА ПОДВАЛА по данным организации //Если НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания) Тогда // РезультатыСверки = "<не указана дата сверки>"; //ИначеЕсли НЕ ЗначениеЗаполнено(Шапка.Контрагент) Тогда // РезультатыСверки = "<не указан контрагент>"; //Иначе // РезультатыСверки = "на " + Формат(Шапка.ДатаОкончания, "ДФ=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) * Шапка.Расхождение, Шапка.ВалютаДокумента, Ложь)+")" ; // ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС + ИтогСверки+Символы.ПС+" "; // КонецЕсли; //КонецЕсли; ОбластьПусто = Макет.ПолучитьОбласть("Пусто"); ТабличныйДокумент.Вывести(ОбластьПусто); ОбластьПодвал.Параметры.НазваниеОрганизации = ПредставлениеОрганизации; ОбластьПодвал.Параметры.НаименованиеКонтрагента = ПредставлениеКонтрагента; //ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность), //"________________", ДанныеПредставителяОрганизации.Должность); //ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяКонтрагента.Должность), //"________________", ДанныеПредставителяКонтрагента.Должность); // //СКАТ ФамилияИнициалыФизЛица // ОбластьПодвал.Параметры.ФИОПредставителя = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставит |
|||
2
Случайный прохожий
25.07.19
✎
13:05
|
Дочитал до конца, а там разрыв на самом интересном месте :(
|
|||
3
jinny84
25.07.19
✎
13:06
|
(2) ОбластьПодвал.Параметры.ФИОПредставителя = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации),
"_______________________",ДанныеПредставителяОрганизации.Представление)+")"; ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(Шапка.ПредставительКонтрагента), "_______________________" ,ФизическиеЛицаКлиентСервер.ФамилияИнициалы(ДанныеПредставителяКонтрагента))+")"; ТабличныйДокумент.Вывести(ОбластьПодвал); // В табличном документе зададим имя области, в которую был // выведен объект. Нужно для возможности печати покомплектно. УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.АктСверки); КонецЦикла; // Пока Шапка.Следующий() Возврат ТабличныйДокумент; КонецФункции Процедура ВывестиДоговораБезОборотов(ТабличныйДокумент,Шапка,Макет,ФильтрСписокСчетов) ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); ЗапросПоДоговору = Новый Запрос; ЗапросПоДоговору.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗапросПоДоговору.УстановитьПараметр("ДатаНачала", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаНачала), Неопределено, Новый Граница (НачалоДня(Шапка.ДатаНачала), ВидГраницы.Включая))); ЗапросПоДоговору.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(Шапка.ДатаОкончания), Неопределено, Новый Граница(КонецДня(Шапка.ДатаОкончания), ВидГраницы.Включая))); ЗапросПоДоговору.УстановитьПараметр("Организация", Шапка.Организация); ЗапросПоДоговору.УстановитьПараметр("Контрагент", Шапка.Контрагент); ЗапросПоДоговору.УстановитьПараметр("Валюта", ?(НЕ ЗначениеЗаполнено(Шапка.ВалютаДокумента) ИЛИ (Шапка.ВалютаДокумента = ВалютаРегламентированногоУчета), Неопределено, Шапка.ВалютаДокумента)); ЗапросПоДоговору.УстановитьПараметр("ФильтрСписокСчетов", ФильтрСписокСчетов); АналитикаРасчетов = Новый Массив(); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры); ЗапросПоДоговору.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов); ЗапросПоДоговору.Текст = "ВЫБРАТЬ | Хозрасчетный.Ссылка КАК Счет |ПОМЕСТИТЬ ФильтрСписокСчетов |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | Хозрасчетный.Ссылка В ИЕРАРХИИ(&ФильтрСписокСчетов) | |ИНДЕКСИРОВАТЬ ПО | Счет |;"; ВыборкаВТ = ЗапросПоДоговору.Выполнить().Выбрать(); ЗапросПоДоговору.УстановитьПараметр("ДоговорКонтрагента",НЕОПРЕДЕЛЕНО); ЗапросПоДоговору.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ХозрасчетныйОстаткиНаНачало.СуммаОстаток | ИНАЧЕ ХозрасчетныйОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ КАК ОстатокНаНачало, | 0 КАК ОстатокНаКонец, | ХозрасчетныйОстаткиНаНачало.Субконто1, | ХозрасчетныйОстаткиНаНачало.Субконто2, | ХозрасчетныйОстаткиНаНачало.СуммаОстатокДт, | ХозрасчетныйОстаткиНаНачало.СуммаОстатокКт, | ХозрасчетныйОстаткиНаНачало.СуммаОстаток |ПОМЕСТИТЬ Остатки |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &ДатаНачала, | Счет В ИЕРАРХИИ | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | Организация = &Организация | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 В ИЕРАРХИИ (&ДоговорКонтрагента) | КОНЕЦ) КАК ХозрасчетныйОстаткиНаНачало | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | 0, | ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ХозрасчетныйОстаткиНаНачало.СуммаОстаток | ИНАЧЕ ХозрасчетныйОстаткиНаНачало.ВалютнаяСуммаОстаток | КОНЕЦ, | ХозрасчетныйОстаткиНаНачало.Субконто1, | ХозрасчетныйОстаткиНаНачало.Субконто2, | ХозрасчетныйОстаткиНаНачало.СуммаОстатокДт, | ХозрасчетныйОстаткиНаНачало.СуммаОстатокКт, | ХозрасчетныйОстаткиНаНачало.СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &ДатаОкончания, | Счет В ИЕРАРХИИ | (ВЫБРАТЬ | ФильтрСписокСчетов.Счет | ИЗ | ФильтрСписокСчетов), | &АналитикаРасчетов, | Организация = &Организация | И ВЫБОР | КОГДА &Валюта = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Валюта = &Валюта | КОНЕЦ | И Субконто1 = &Контрагент | И ВЫБОР | КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО | ТОГДА ИСТИНА | ИНАЧЕ Субконто2 В ИЕРАРХИИ (&ДоговорКонтрагента) | КОНЕЦ) КАК ХозрасчетныйОстаткиНаНачало |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Остатки.Субконто1, | Остатки.Субконто2, | СУММА(Остатки.ОстатокНаНачало) КАК ОстатокНаНачало, | СУММА(Остатки.ОстатокНаКонец) КАК ОстатокНаКонец, | СУММА(Остатки.СуммаОстатокДт) КАК СуммаОстатокДт, | СУММА(Остатки.СуммаОстатокКт) КАК СуммаОстатокКт, | СУММА(Остатки.СуммаОстаток) КАК СуммаОстаток |ПОМЕСТИТЬ ОстаткиПоДоговорам |ИЗ | Остатки КАК Остатки | |СГРУППИРОВАТЬ ПО | Остатки.Субконто1, | Остатки.Субконто2 |; |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиПоДоговорам.Субконто1, | ОстаткиПоДоговорам.Субконто2 КАК Договор, | ОстаткиПоДоговорам.ОстатокНаНачало, | ОстаткиПоДоговорам.ОстатокНаКонец КАК ОстатокНаКонец |ИЗ | ОстаткиПоДоговорам КАК ОстаткиПоДоговорам |ГДЕ | ОстаткиПоДоговорам.ОстатокНаНачало = ОстаткиПоДоговорам.ОстатокНаКонец | |УПОРЯДОЧИТЬ ПО | ОстаткиПоДоговорам.Субконто2.Наименование"; ВыборкаДоговор = ЗапросПоДоговору.Выполнить().Выбрать(); ОбластьДоговор = Макет.ПолучитьОбласть("Договор"); //ОбластьДоговорИтоги = Макет.ПолучитьОбласть("ДоговорИтоги"); ОбластьНачОстаткиДоговор = Макет.ПолучитьОбласть("НачОстаткиДоговор"); ОбластьКонОстаткиДоговор = Макет.ПолучитьОбласть("КонОстаткиДоговор"); Пока ВыборкаДоговор.Следующий() Цикл ОбластьДоговор.Параметры.Договор = ВыборкаДоговор.Договор; ТабличныйДокумент.Вывести(ОбластьДоговор); ОстатокНаНачалоДоговор = ВыборкаДоговор.ОстатокНаНачало; ОстатокНаКонецДоговор = ВыборкаДоговор.ОстатокНаКонец; ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокДтДоговор = ?(ОстатокНаНачалоДоговор > 0, ОстатокНаНачалоДоговор, 0); ОбластьНачОстаткиДоговор.Параметры.СуммаНачальныйОстатокКтДоговор = ?(ОстатокНаНачалоДоговор < 0, -ОстатокНаНачалоДоговор, 0); ТабличныйДокумент.Вывести(ОбластьНачОстаткиДоговор); //ОбластьДоговорИтоги.Параметры.СуммаДогДт = 0; //ОбластьДоговорИтоги.Параметры.СуммаДогКт = 0; //ТабличныйДокумент.Вывести(ОбластьДоговорИтоги); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокДтДоговор = ?(ОстатокНаКонецДоговор > 0, ОстатокНаКонецДоговор, 0); ОбластьКонОстаткиДоговор.Параметры.СуммаКонечныйОстатокКтДоговор = ?(ОстатокНаКонецДоговор < 0, -ОстатокНаКонецДоговор, 0); ТабличныйДокумент.Вывести(ОбластьКонОстаткиДоговор); КонецЦикла; КонецПроцедуры // ВывестиДоговораБезОборотов() // Сформировать печатные формы объектов // // ВХОДЯЩИЕ: // ИменаМакетов - Строка - Имена макетов, перечисленные через запятую // МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать // ПараметрыПечати - Структура - Структура дополнительных параметров печати // // ИСХОДЯЩИЕ: // КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы // ПараметрыВывода - Структура - Параметры сформированных табличных документов // Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСверкиРасширенный") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "АктСверкиРасширенный", "Акт сверки взаиморасчетов расширенный", ПечатьАктаСверки(МассивОбъектов, ОбъектыПечати), , "ПФ_MXL_АктСверки"); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |