LXIX1000101
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Функция ПечатьАктаСверки1() СписокДокументовСФ = Новый СписокЗначений; СписокДокументовСФ.Добавить("СчетФактураВыданный"); СписокДокументовСФ.Добавить("СчетФактураПолученный"); Если ПоДаннымОрганизации.Количество() = 0 и ПоДаннымКонтрагента.Количество() = 0 и ОстатокНаНачало = 0 Тогда Сообщить("Нет данных для печати. Используйте кнопку ""Заполнить."""); КонецЕсли; СтруктурнаяЕдиницаОрганизация = ОбщегоНазначения.ПолучитьСтруктурнуюЕдиницу(Организация, СтруктурноеПодразделение); ТабДок = Новый ТабличныйДокумент; ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки"; Макет = ПолучитьМакет("АктСверки1"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьНачОстатки = Макет.ПолучитьОбласть("НачОстатки"); ОбластьОбороты = Макет.ПолучитьОбласть("Обороты"); ОбластьСФ = Макет.ПолучитьОбласть("СФ"); ОбластьОборотыИтог = Макет.ПолучитьОбласть("ОборотыИтог"); ОбластьКонОстатки = Макет.ПолучитьОбласть("КонОстатки"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока"); НазваниеОрганизации = СтруктурнаяЕдиницаОрганизация.НаименованиеПолное; Если ПустаяСтрока(НазваниеОрганизации) Тогда НазваниеОрганизации = Организация; КонецЕсли; НаименованиеКонтрагента = Контрагент.НаименованиеПолное; Если ПустаяСтрока(НаименованиеКонтрагента) Тогда НаименованиеКонтрагента = Контрагент; КонецЕсли; ОбластьЗаголовок.Параметры.НазваниеОрганизации = НазваниеОрганизации; ОбластьЗаголовок.Параметры.НаименованиеКонтрагента = НаименованиеКонтрагента; ОписаниеПериода = "Период: " + ПредставлениеПериода(НачалоДня(ДатаНачала), КонецДня(ДатаОкончания), "ФП = Истина"); ИмяПредставителяОрганизации = ПредставительОрганизации; ИмяПредсатвителяКонтрагента = ПредставительКонтрагента; ТекстЗаголовка = "взаимных расчетов за период с " + Формат(ДатаНачала, "ДФ=dd.MM.yyyy") + " по " + Формат(ДатаОкончания, "ДФ=dd.MM.yyyy") + Символы.ПС + "между " + НазваниеОрганизации + Символы.ПС + "и " + НаименованиеКонтрагента; Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + СокрЛП(ДоговорКонтрагента.Наименование); КонецЕсли; ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка; ДанныеПредставителяОрганизации = ПроцедурыУправленияПерсоналом.ДанныеФизЛица(Организация, ПредставительОрганизации, ДатаОкончания); ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия),"",ДанныеПредставителяОрганизации.Фамилия + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя),""," "+ДанныеПредставителяОрганизации.Имя) + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество),""," "+ДанныеПредставителяОрганизации.Отчество)); СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, " + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность) + " " + НазваниеОрганизации + " " + ?(ФИОПредставителя<>"",ФИОПредставителя,"_______________________") + ", с одной стороны, " + "и " + ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность) + " " + НаименованиеКонтрагента + " " + ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПредставительКонтрагента) + ", с другой стороны, " + "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:"; ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица; Если НЕ ЗначениеЗаполнено(ВалютаДокумента) ТОгда ОбластьЗаголовок.Параметры.ВалютаДокумента = мВалютаРегламентированногоУчета; Иначе ОбластьЗаголовок.Параметры.ВалютаДокумента = ВалютаДокумента; КонецЕсли; ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ИтСуммаОборотДт = 0; ИтСуммаОборотКт = 0; ИтСуммаОборотДтКонтр = 0; ИтСуммаОборотКтКонтр = 0; НачОстДебет = ?(ОстатокНаНачало > 0, ОстатокНаНачало, 0); НачОстКредит = ?(ОстатокНаНачало < 0, -ОстатокНаНачало, 0); ОстатокНаКонец = ОстатокНаНачало + ПоДаннымОрганизации.Итог("Дебет") - ПоДаннымОрганизации.Итог("Кредит"); КонОстДебет = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0); КонОстКредит = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0); ОстатокНаКонецК = -ОстатокНаНачало + ПоДаннымКонтрагента.Итог("Дебет") - ПоДаннымКонтрагента.Итог("Кредит"); КонОстДебетК = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0); КонОстКредитК = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0); ОбластьНачОстатки.Параметры.ДатаНачала = Формат(ДатаНачала, "ДЛФ=DD"); ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = НачОстДебет; ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = НачОстКредит; ТабДок.Вывести(ОбластьНачОстатки); ТабДок.НачатьАвтогруппировкуСтрок(); МаксИндекс = Макс(ПоДаннымОрганизации.Количество(), ПоДаннымКонтрагента.Количество()) - 1; Для Инд = 0 По МаксИндекс Цикл Если Инд < ПоДаннымОрганизации.Количество() Тогда СтрокаОрганизации = ПоДаннымОрганизации[Инд]; Регистратор = СтрокаОрганизации.Документ; СуммаОборотДт = СтрокаОрганизации.Дебет; СуммаОборотКт = СтрокаОрганизации.Кредит; ОбластьОбороты.Параметры.СуммаОборотДт = СуммаОборотДт; ОбластьОбороты.Параметры.СуммаОборотКт = СуммаОборотКт; ИтСуммаОборотДт = ИтСуммаОборотДт + СуммаОборотДт; ИтСуммаОборотКт = ИтСуммаОборотКт + СуммаОборотКт; РегистраторПредставление = ""; Если не СтрокаОрганизации.Документ = Неопределено Тогда РегистраторПредставление = СтрокаОрганизации.Документ.Метаданные().Синоним +" " + ОбщегоНазначения.ПолучитьНомерНаПечать(СтрокаОрганизации.Документ, глСписокПрефиксовУзлов) + " от " + Формат(СтрокаОрганизации.Документ.Дата, "ДФ=dd.MM.yyyy"); Если СтрокаОрганизации.Документ.Метаданные().Реквизиты.Найти("ВидВходящегоДокумента") <> Неопределено Тогда Если ЗначениеЗаполнено(СтрокаОрганизации.Документ.НомерВходящегоДокумента) И ЗначениеЗаполнено(СтрокаОрганизации.Документ.ДатаВходящегоДокумента) Тогда РегистраторПредставление = РегистраторПредставление + ", " + СтрокаОрганизации.Документ.ВидВходящегоДокумента + " № вх. " + СтрокаОрганизации.Документ.НомерВходящегоДокумента + " от " + Формат(СтрокаОрганизации.Документ.ДатаВходящегоДокумента,"ДФ=dd.MM.yyyy"); КонецЕсли; КонецЕсли; КонецЕсли; ОбластьОбороты.Параметры.РегистраторПредставление = РегистраторПредставление; ОбластьОбороты.Параметры.Регистратор = СтрокаОрганизации.Документ; ОбластьОбороты.Параметры.ДатаДокумента = Формат(СтрокаОрганизации.Дата,"ЧЦ=21; ЧДЦ=2; ДФ=dd.MM.yy"); Иначе ОбластьОбороты.Параметры.СуммаОборотДт = ""; ОбластьОбороты.Параметры.СуммаОборотКт = ""; ОбластьОбороты.Параметры.РегистраторПредставление = ""; ОбластьОбороты.Параметры.Регистратор = ""; ОбластьОбороты.Параметры.ДатаДокумента = ""; КонецЕсли; Если Инд < ПоДаннымКонтрагента.Количество() Тогда СтрокаОрганизацииКонтр = ПоДаннымКонтрагента[Инд]; Регистратор = СтрокаОрганизацииКонтр.Документ; СуммаОборотДт = СтрокаОрганизацииКонтр.Дебет; СуммаОборотКт = СтрокаОрганизацииКонтр.Кредит; ОбластьОбороты.Параметры.СуммаОборотДтКонтр = СуммаОборотДт; ОбластьОбороты.Параметры.СуммаОборотКтКонтр = СуммаОборотКт; ИтСуммаОборотДтКонтр = ИтСуммаОборотДтКонтр + СуммаОборотДт; ИтСуммаОборотКтКонтр = ИтСуммаОборотКтКонтр + СуммаОборотКт; РегистраторПредставлениеКонтр = ""; Если не СтрокаОрганизацииКонтр.Документ = Неопределено Тогда РегистраторПредставлениеКонтр = СтрокаОрганизацииКонтр.Документ.Метаданные().Синоним +" " + ОбщегоНазначения.ПолучитьНомерНаПечать(СтрокаОрганизацииКонтр.Документ, глСписокПрефиксовУзлов) + " от " + Формат(СтрокаОрганизацииКонтр.Документ.Дата, "ДФ=dd.MM.yyyy"); Если СтрокаОрганизацииКонтр.Документ.Метаданные().Реквизиты.Найти("ВидВходящегоДокумента") <> Неопределено Тогда Если ЗначениеЗаполнено(СтрокаОрганизацииКонтр.Документ.НомерВходящегоДокумента) И ЗначениеЗаполнено(СтрокаОрганизацииКонтр.Документ.ДатаВходящегоДокумента) Тогда РегистраторПредставлениеКонтр = РегистраторПредставлениеКонтр + ", " + СтрокаОрганизацииКонтр.Документ.ВидВходящегоДокумента + " № вх. " + СтрокаОрганизацииКонтр.Документ.НомерВходящегоДокумента + " от " + Формат(СтрокаОрганизацииКонтр.Документ.ДатаВходящегоДокумента,"ДФ=dd.MM.yyyy"); КонецЕсли; КонецЕсли; КонецЕсли; ОбластьОбороты.Параметры.РегистраторПредставлениеКонтр = РегистраторПредставлениеКонтр; ОбластьОбороты.Параметры.ДатаДокументаКонтр = Формат(СтрокаОрганизацииКонтр.Дата,"ЧЦ=21; ЧДЦ=2; ДФ=dd.MM.yy"); Иначе ОбластьОбороты.Параметры.СуммаОборотДтКонтр = ""; ОбластьОбороты.Параметры.СуммаОборотКтКонтр = ""; ОбластьОбороты.Параметры.РегистраторПредставлениеКонтр = ""; ОбластьОбороты.Параметры.ДатаДокументаКонтр = ""; КонецЕсли; Если СтрокаОрганизации.Документ.Метаданные().Представление() <> "Реализация ТМЗ и услуг" тогда ТабДок.Вывести(ОбластьОбороты); КонецЕсли; //выведем подчиненные счета-фактуры, если имеются ДокументСФ = Неопределено; ДокументСФКонтр = Неопределено; Выводить = Ложь; Для Каждого СФ Из СписокДокументовСФ Цикл Если СтрокаОрганизации <> Неопределено Тогда ДокументСФ = ОбщегоНазначения.НайтиПодчиненныйДокумент(СтрокаОрганизации.Документ, СФ.Значение); КонецЕсли; Если СтрокаОрганизацииКонтр <> Неопределено Тогда ДокументСФКонтр = ОбщегоНазначения.НайтиПодчиненныйДокумент(СтрокаОрганизацииКонтр.Документ, СФ.Значение); КонецЕсли; Если ДокументСФ <> Неопределено Тогда Если СФ.Значение = "СчетФактураПолученный" Тогда Документ = Документы.СчетФактураПолученный.ПустаяСсылка().Метаданные().Синоним; Если ЗначениеЗаполнено(ДокументСФ.НомерВходящегоДокумента) Тогда Документ = Документ + " № вх. " + ДокументСФ.НомерВходящегоДокумента; КонецЕсли; Если ЗначениеЗаполнено(ДокументСФ.ДатаВходящегоДокумента) Тогда Документ = Документ + " от " + Формат(ДокументСФ.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy"); КонецЕсли; Иначе // Документ = ДокументСФ; Документ = ДокументСФ.Метаданные().Синоним +" " + ОбщегоНазначения.ПолучитьНомерНаПечать(ДокументСФ, глСписокПрефиксовУзлов) + " от " + Формат(ДокументСФ.Дата, "ДФ=dd.MM.yyyy"); КонецЕсли; ОбластьСФ.Параметры.ДокументСФ = Документ; ОбластьСФ.Параметры.СуммаОборотДт = ДокументСФ.СуммаДокумента; ОбластьСФ.Параметры.ДатаДокумента = Формат(ДокументСФ.Дата, "ДФ=dd.MM.yy"); ОбластьСФ.Параметры.РасшифровкаСФ = ДокументСф; Выводить = Истина; FF=ДокументСФ.Метаданные().Синоним; КонецЕсли; Если ДокументСФКонтр <> Неопределено Тогда Выводить = Истина; Если СФ.Значение = "СчетФактураПолученный" Тогда Документ = Документы.СчетФактураПолученный.ПустаяСсылка().Метаданные().Синоним; Если ЗначениеЗаполнено(ДокументСФКонтр.НомерВходящегоДокумента) Тогда Документ = Документ + " № вх. " + ДокументСФКонтр.НомерВходящегоДокумента; КонецЕсли; Если ЗначениеЗаполнено(ДокументСФКонтр.ДатаВходящегоДокумента) Тогда Документ = Документ + " от " + Формат(ДокументСФКонтр.ДатаВходящегоДокумента, "ДФ=dd.MM.yyyy"); КонецЕсли; Иначе Документ = ДокументСФКонтр; Документ = ДокументСФКонтр.Метаданные().Синоним +" " + ОбщегоНазначения.ПолучитьНомерНаПечать(ДокументСФКонтр, глСписокПрефиксовУзлов) + " от " + Формат(ДокументСФКонтр.Дата, "ДФ=dd.MM.yyyy"); КонецЕсли; ОбластьСФ.Параметры.ДокументСФКонтр = Документ; ОбластьСФ.Параметры.РасшифровкаСФКонтр = ДокументСфКонтр; КонецЕсли; КонецЦикла; Если Выводить Тогда Если FF = "Счет-фактура выданный" Тогда ТабДок.Вывести(ОбластьСФ); КонецЕсли; КонецЕсли; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); Если НЕ СверкаСогласована Тогда НачальныйНомер = 1; Для Итерация = 1 По 5 Цикл ТабДок.Вывести(ОбластьПустаяСтрока); НачальныйНомер = НачальныйНомер + 1; КонецЦикла; КонецЕсли; ОбластьОборотыИтог.Параметры.СуммаОборотДт = ИтСуммаОборотДт; ОбластьОборотыИтог.Параметры.СуммаОборотКт = ИтСуммаОборотКт; Если СверкаСогласована тогда ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ИтСуммаОборотДтКонтр; ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ИтСуммаОборотКтКонтр; КонецЕсли; ТабДок.Вывести(ОбластьОборотыИтог); ОбластьКонОстатки.Параметры.ДатаОкончания = Формат(КонецДня(ДатаОкончания), "ДЛФ=DD"); ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = КонОстДебет; ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = КонОстКредит; Если СверкаСогласована тогда ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = КонОстДебетК; ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = КонОстКредитК; КонецЕсли; ТабДок.Вывести(ОбластьКонОстатки); // Результаты сверки Если НЕ ЗначениеЗаполнено(ВалютаДокумента) ТОгда ВалютаРезультата = мВалютаРегламентированногоУчета; Иначе ВалютаРезультата = ВалютаДокумента; КонецЕсли; Если ПоДаннымОрганизации.Количество() = 0 Тогда РезультатыСверки = ""; ИначеЕсли НЕ ЗначениеЗаполнено(ДатаОкончания) Тогда РезультатыСверки = "<не указана дата сверки>"; ИначеЕсли НЕ ЗначениеЗаполнено(Контрагент) Тогда РезультатыСверки = "<не указан контрагент>"; Иначе РезультатыСверки = "на " + Формат(ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность "; Если ОстатокНаКонец > 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " " + Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(ВалютаРезультата); ИначеЕсли ОстатокНаКонец < 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " " + Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(ВалютаРезультата); Иначе РезультатыСверки = РезультатыСверки + "отсутствует."; КонецЕсли; КонецЕсли; ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки; Если СверкаСогласована тогда ОбластьПодвал.Параметры.ПоДаннымКонтрагента = "По данным " + СокрЛП(НаименованиеКонтрагента); Если ПоДаннымКонтрагента.Количество() = 0 Тогда РезультатыСверки = ""; ИначеЕсли НЕ ЗначениеЗаполнено(ДатаОкончания) Тогда РезультатыСверки = "<не указана дата сверки>"; ИначеЕсли НЕ ЗначениеЗаполнено(Контрагент) Тогда РезультатыСверки = "<не указан контрагент>"; Иначе РезультатыСверки = "на " + Формат(ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность "; Если ОстатокНаКонецК < 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " " + Формат(-ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " " + строка(ВалютаРезультата); ИначеЕсли ОстатокНаКонецК > 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " " + Формат(ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " " + строка(ВалютаРезультата); Иначе РезультатыСверки = РезультатыСверки + "отсутствует."; КонецЕсли; КонецЕсли; ОбластьПодвал.Параметры.РезультатыСверкиК = РезультатыСверки; Если ОстатокНаКонец+ОстатокНаКонецК <> 0 Тогда ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "+Формат(?(ОстатокНаКонец+ОстатокНаКонецК>0,1,-1)*(ОстатокНаКонец+ОстатокНаКонецК), "ЧЦ=21; ЧДЦ=2") +" "+ Строка(ВалютаРезультата); ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС+ ИтогСверки+Символы.ПС+" "; КонецЕсли; КонецЕсли; ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(НазваниеОрганизации); ОбластьПодвал.Параметры.НаименованиеКонтрагента = СокрЛП(НаименованиеКонтрагента); ОбластьПодвал.Параметры.Должность = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Должность),"________________",ДанныеПредставителяОрганизации.Должность); ОбластьПодвал.Параметры.ДолжностьК = ?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента.Должность),"________________",ПредставительКонтрагента.Должность); ОбластьПодвал.Параметры.ФИОПредставителя = "("+?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Представление),"_______________________",ДанныеПредставителяОрганизации.Представление)+")"; ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(ПредставительКонтрагента),"_______________________",ПредставительКонтрагента)+")"; ТабДок.Вывести(ОбластьПодвал); ТабДок.АвтоМасштаб = Истина; Возврат ТабДок; КонецФункции | Всего записей: 36 | Зарегистр. 15-06-2011 | Отправлено: 12:56 22-04-2015 | Исправлено: LXIX1000101, 12:57 22-04-2015 |
|