Тут представлен модуль документа Заявки на кассовый расход. При
печати данного документа печатаеться 3 листа,...что слишком много
тоесть на
1стр он печатает 1. реквизиты документов, подпись
ответственных лиц,
на втором 2"реквезиты документа, 3 "реквизиты
контрагента, подпись
ответственных лиц,
на третем листе расшифровка заявки на кассовый расход подпись
ответственных лиц,
а нужно чтоб он переносил печать только при случае если на страницы
действительно не хватает места.
//////////////////////////////////////////////////////////// ////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем НачальнаяДатаДокумента;
Перем СтараяФирма;
Перем Новый;
Перем ФКРУчреждения;
Перем ВыбФКР;
Перем ТекущаяЗакладка;
Перем ТаблицаПечФорм; // список печатных форм документа
Перем НомерТекущейФормы;
// Предопределенные списки для выбора значений в формах
Перем СпПоказательТипа;
Перем СпПоказательОснования;
Перем СтатусСоставителя;
// Буферный переменные для печати колонтитулов
Перем ВсегоСтраниц;
Перем пНомерДокумента;
Перем пДатаДок;
Перем ТекстШапкиРаздела;
//////////////////////////////////////////////////////////// ////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
//
Функция Падеж(ДатаСтр)
СтрВозврат = СокрЛП(ДатаСтр);
Окончание = Прав(СтрВозврат, 9);
Если (Лев(Окончание, 1) = "й") ИЛИ (Лев(Окончание, 1) = "ь") Тогда
СтрокаДоп = "я";
Основание = 9;
Иначе
СтрокаДоп = "а";
Основание = 8;
КонецЕсли;
СтрВозврат = Лев(СтрВозврат, СтрДлина(СтрВозврат) - Основание) + СтрокаДоп + Сред(Окончание, 2);
Возврат СтрВозврат;
КонецФункции
//******************************************************************************
Функция ВывестиРазделБланка(Чистовик, Черновик = "", Подвал, НомСтрБланка)
Чистовик.ВывестиСекцию(Подвал);
Чистовик.НоваяСтраница();
ТекстШапкиРаздела = "Форма 0531801, с." + Строка(НомСтрБланка) + "
|Номер Заявки на кассовый расход " + НомерДок + "
|от «" + ДатаЧисло(ДатаДок) + "» " + Падеж(Нрег(ПериодСтр(НачМесяца(ДатаДок), КонМесяца(ДатаДок))));
Заголовок = Чистовик.ПолучитьСекцию("ШапкаРаздела");
Чистовик.ВывестиСекцию(Заголовок);
Если ПустоеЗначение(Черновик) = 0 Тогда
// Очищаем черновик
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
Черновик.ВывестиСекцию(Подвал);
Черновик.ВывестиСекцию(Заголовок);
КонецЕсли;
Возврат Заголовок;
КонецФункции
//******************************************************************************
Процедура ОпределениеОЛ()
Руководитель = ВыбраннаяФирма.Руководитель.Получить(ДатаДок);
Бухгалтер = ВыбраннаяФирма.ГлБухгалтер.Получить(ДатаДок);
КонецПроцедуры //ОпределениеРуководителя()
//******************************************************************************
// РасчетНДС()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет расчет суммы НДС
//
Процедура РасчетНДС()
Если СтавкаНДС.Выбран() = 1 Тогда
СтНДС = СтавкаНДС.Ставка;
Иначе
СтНДС = 0;
КонецЕсли;
Если ВИнВалюте = 1 Тогда
СумДок = СуммаДокументаВВалюте;
Иначе
СумДок = СуммаДокумента;
КонецЕсли;
СуммаНДС = СумДок*СтНДС/(100+СтНДС);
КонецПроцедуры // РасчетНДС()
//******************************************************************************
// ОчиститьНалоговыеРеквизиты()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Очищает налоговые реквизиты
//
Процедура ОчиститьНалоговыеРеквизиты()
СтатусСоставителяПлДок = "";
ПоказательОснования = "";
ПоказательПериода = "";
ПоказательНомера = "";
ПоказательДаты = "";
ПоказательТипа = "";
КодОКАТО = "";
ВыбранныйНалог = "";
КодБК = "";
КонецПроцедуры // ОчиститьНалоговыеРеквизиты()
//*****************************************************************************
// ОтобразитьРасшифровки()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Обновляет текст расшифровок налоговых показателей.
//
Процедура ОтобразитьРасшифровки()
Перем Представление;
Если НалоговыйПлатеж = 1 Тогда
Позиция = СтатусСоставителя.НайтиЗначение(СтатусСоставителяПлДок);
Если Позиция > 0 Тогда
СтатусСоставителя.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаСтатусСоставителя.Заголовок(Представление);
КонецЕсли;
Позиция = СпПоказательОснования.НайтиЗначение(ПоказательОснования);
Если Позиция > 0 Тогда
СпПоказательОснования.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаПоказательОснования.Заголовок(Представление);
КонецЕсли;
Позиция = СпПоказательТипа.НайтиЗначение(ПоказательТипа);
Если Позиция > 0 Тогда
СпПоказательТипа.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаПоказательТипаПлатежа.Заголовок(Представление);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ОтобразитьРасшифровки()
//******************************************************************************
// УправлениеВидимостьюДоступностью()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Управление видимостью / доступностью элементов диалога в зависимости от
// значения закладки и других условий.
//
Процедура УправлениеВидимостьюДоступностью()
Форма.ВалютаДокумента.Видимость(ВИнВалюте);
Форма.Курс.Видимость(ВИнВалюте);
Форма.Кратность.Видимость(ВИнВалюте);
Форма.СуммаДокументаВВалюте.Видимость(ВИнВалюте);
Форма.СуммаВал.Доступность(ВИнВалюте);
Форма.НадписьВалюта.Видимость(ВИнВалюте);
Форма.НадписьКурс.Видимость(ВИнВалюте);
Форма.НадписьКратность.Видимость(ВИнВалюте);
Форма.НадписьСуммаВВалюте.Видимость(ВИнВалюте);
//Если (КВД = Перечисление.КодВидаДеятельности.ВремРасп) И (НалоговыйПлатеж = 1) Тогда
// Форма.КонтрагентВремРасп.Видимость(1);
//Иначе
// Форма.КонтрагентВремРасп.Видимость(0);
//КонецЕсли;
КонецПроцедуры // УправлениеВидимостьюДоступностью()
//******************************************************************************
// ВывестиСекциюПостранично(НоваяСекция, Чистовик, Черновик, СекцияПодвала = 0, СекцияЗаголовка = 0)
//
// Параметры:
// НоваяСекция - секция таблицы, которую необходимо вывести
// Чистовик - таблица, куда необходимо вывести секцию
// Черновик - таблица, используемая для расчета необходимости новой страницы в Чистовике
// СекцияПодвала - секция, выводимая в подвале на каждом листе
// СекцияЗаголовка - секция, выводимая в заголовке на каждом листе
//
// Возвращаемое значение:
// Нет.
//
// Описание:
// Выводит секцию в таблицу с учетом разбиения на несколько страниц
// с заголовком и подвалом на каждой.
//
Процедура ВывестиСекциюПостранично(НоваяСекция, Чистовик, Черновик, СекцияПодвала = 0, СекцияЗаголовка = 0)
// Инициализируется черновик, если он пустой
Если Черновик.ВысотаТаблицы() = 0 Тогда
Если ПустоеЗначение(СекцияПодвала) = 0 Тогда
Черновик.ВывестиСекцию(СекцияПодвала);
КонецЕсли;
Если ПустоеЗначение(СекцияЗаголовка) = 0 Тогда
Черновик.ВывестиСекцию(СекцияЗаголовка);
КонецЕсли;
КонецЕсли;
// Выполняется проверка необходимости перехода на новую страницу
БылоСтраниц = Черновик.КоличествоСтраниц();
Черновик.ВывестиСекцию(НоваяСекция);
Если (БылоСтраниц <> Черновик.КоличествоСтраниц()) Тогда
// Очищаем черновик
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
// Добавляем, если нужно, подвал в Чистовик и в очищенный Черновик
Если ПустоеЗначение(СекцияПодвала) = 0 Тогда
Черновик.ВывестиСекцию(СекцияПодвала);
Чистовик.ВывестиСекцию(СекцияПодвала);
КонецЕсли;
// Переводим страницу в Чистовике
Чистовик.НоваяСтраница();
ВсегоСтраниц = ВсегоСтраниц + 1;
// Добавляем, если нужно, заголовок в Чистовик и в очищенный Черновик
Если ПустоеЗначение(СекцияЗаголовка) = 0 Тогда
Черновик.ВывестиСекцию(СекцияЗаголовка);
Чистовик.ВывестиСекцию(СекцияЗаголовка);
КонецЕсли;
// Добавляем секцию в черновик, ведь его очистили после пробного вывода
Черновик.ВывестиСекцию(НоваяСекция);
КонецЕсли;
// Выводим секцию в Чистовик
Чистовик.ВывестиСекцию(НоваяСекция);
КонецПроцедуры // ВывестиСекциюПостранично()
//******************************************************************************
// Печать(СразуНаПринтер, КолЭкз)
//
// Параметры:
// СразуНаПринтер - (1) если печать на принтер, (0) - с предварительным просмотром
// КолЭкз - количество экземпляров печати
//
// Возвращаемое значение:
// нет.
//
// Описание:
//
Процедура Печать(СразуНаПринтер = 0,КолЭкз = 1)
Если ВИнВалюте = 1 Тогда
Если СуммаДокументаВВалюте <> Итог("СуммаВал") Тогда
Сообщить(ГлПредставлениеДокумента(ТекущийДокумент(),1));
Сообщить("- сумма документа в валюте ("+Строка(СуммаДокументаВВалюте)+") не равна итогу
табличной части ("+Строка(Итог("СуммаВал")));
КонецЕсли;
КонецЕсли;
Если СуммаДокумента <> Итог("Сумма") Тогда
Сообщить(ГлПредставлениеДокумента(ТекущийДокумент(),1));
Сообщить("- сумма документа ("+Строка(СуммаДокумента)+") не равна итогу табличной части
("+Строка(Итог("Сумма")));
КонецЕсли;
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("0531801");
Таб.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
ВсегоСтраниц = 1;
Состояние("Формируется шапка документа");
пНомерДокумента = глПреобразоватьНомерДок(НомерДок,ВыбраннаяФирма);
пНомерДокумента = НомерДок;
пДатаДок = "от " + Формат(ДатаДок,"ДДДММММГГГГ");
пДатаДокЦ= Формат(ДатаДок,"ДДДММГГГГ");
пДатаДок_2 = Формат(ДатаДок,"ДДДММММГГГГ");
СписокДанных=СоздатьОбъект("СписокЗначений");
//ЦБ="";
//Если Константа.ОднаКассоваяКнига=Да Тогда
// ЦБ=Константа.ЦентрализованнаяБухгалтерия;
//КонецЕсли;
//Если ПустоеЗначение(ЦБ)=1 Тогда
СписокДанных.Установить( "Контекст", Контекст);
//Иначе
// СписокДанных.Установить( "Контекст", ЦБ);
//КонецЕсли;
пНомерЛС = "";
ВыбратьСтроки();
Если ПолучитьСтроку() = 1 Тогда
пНомерЛС = РазделЛицевогоСчета.Номер;
КонецЕсли;
СписокДанных.Установить( "Дата",ДатаДок );
СписокДанных.Установить( "ОфициальноеНаименование","" );
СписокДанных.Установить( "ФИОБух", "" );
СписокДанных.Установить( "ФИОРук", "" );
СписокДанных.Установить( "ДолжностьРук", "" );
СписокДанных.Установить( "ДолжностьБух", "" );
СписокДанных.Установить( "Министерство", "" );
СписокДанных.Установить( "КодБюджетополучателя" , "" );
СписокДанных.Установить( "КодППП" , "" );
СписокДанных.Установить( "НаименованиеБюджета" , "" );
ГлПолучитьДанные(СписокДанных);
пНаименованиеКлиента = СписокДанных.Получить("ОфициальноеНаименование");
//ОргБухФИО = глФИО(СписокДанных.Получить("ФИОБух"),1);
//ОргБухДолжность = СписокДанных.Получить("ДолжностьБух");
//ОргРукФИО = глФИО(СписокДанных.Получить("ФИОРук"),1);
//ОргРукДолжность = СписокДанных.Получить("ДолжностьРук");
ОргБухФИО = глФИО(Бухгалтер,1);
ОргБухДолжность = Бухгалтер.Должность.Получить(ДатаДок);
ОргРукФИО = глФИО(Руководитель,1);
ОргРукДолжность = Руководитель.Должность.Получить(ДатаДок);
пКодРПБС = СписокДанных.Получить("КодБюджетополучателя");
Если Сред(пНомерЛС, 5, 1) <> "1" Тогда
пКодРПБС = "";
КонецЕсли;
пНаименованиеГлавы = СписокДанных.Получить("Министерство");
пГлава = СписокДанных.Получить("КодППП");
пНаименованиеБюджета = СписокДанных.Получить("НаименованиеБюджета");
пФинансовыйОрган = ОрганКазначейства.ФинОрганНаименование;
пНаименованиеОФК = ОрганКазначейства.ПолнНаимен;
пКОФК = ОрганКазначейства.Код;
пПредельнаяДатаИсполнения = Формат(ПредельнаяДатаИсполнения,"ДДДММГГГГ");
пНомерОбязательства = НомерОбязательства;
Если ПустоеЗначение(ВалютаДокумента) = 1 Тогда
КодОКВ = "643";
Иначе
КодОКВ = ВалютаДокумента.Код;
КонецЕсли;
ПризнакАванса = ?(ПризнакАвансовогоПлатежа = 0, "Нет", "Да");
НазначениеПлатежа = ППНазначениеПлатежа;
// реквизиты контрагента
ПолучательПП = "";
БанкПолучателя = "";
Кредит = "";
БИКБанкаПолучателя = "";
СчетБанкаПолучателя = "";
ПолучательИНН = "";
ПолучательКПП = "";
ПечатьКПППол = СчетКонтрагента.ВсегдаУказыватьКПП;
глПлатежныеРеквизиты(СчетКонтрагента,ДатаДок,ПолучательИНН,ПолучательКПП, ПолучательПП, БанкПолучателя,
Кредит, БИКБанкаПолучателя,СчетБанкаПолучателя,НалоговыйПлатеж,,"Нет");
КонтрагентНаименование = ПолучательПП;
КонтрагентИНН = ПолучательИНН;
КонтрагентКПП = ПолучательКПП;
Если ПустоеЗначение(СчетКонтрагента.КазначействоОрганизации) = 0 Тогда
КонтрагентЛицевойСчет = СчетКонтрагента.Номер;
КонтрагентБанковскийСчет = СчетКонтрагента.НомерСчетаКазначейства;
Иначе
КонтрагентЛицевойСчет = "";
КонтрагентБанковскийСчет = СчетКонтрагента.Номер;
КонецЕсли;
КонтрагентНаименованиеБанка = БанкПолучателя;
КонтрагентБИКБанка = БИКБанкаПолучателя;
КонтрагентКорСчетБанка = СчетБанкаПолучателя;
// Суммы документа
Если (ПустоеЗначение(ВалютаДокумента) = 1) ИЛИ (ВалютаДокумента.Код = "643") Тогда
ППСуммаДокумента = "0";
ППСуммаДокументаВВалюте = Формат(СуммаДокумента,"Ч15.2");
Иначе
ППСуммаДокумента = Формат(СуммаДокумента,"Ч15.2");
ППСуммаДокументаВВалюте = Формат(СуммаДокументаВВалюте,"Ч15.2");
КонецЕсли;
// Получаем заголовок
СекцияЗаголовка = Таб.ПолучитьСекцию("Раздел5_Шапка");
// Получаем подвал
СекцияПодвала = Таб.ПолучитьСекцию("Подвал");
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
// Выводим заголовок
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Заголовок"), Таб, Черновик, СекцияПодвала);
// Выводим раздел №1
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел1"), Таб, Черновик, СекцияПодвала);
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
Если НалоговыйПлатеж = 0 Тогда
// Выводим раздел №2
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел2"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
КонецЕсли;
// Выводим раздел №3
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел3"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
Если НалоговыйПлатеж = 1 Тогда
// Выводим раздел №4
Контроль=1;
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(Контекст,"Контекст");
СписокПараметров.ДобавитьЗначение(СтатусСоставителяПлДок,"П101");
СписокПараметров.ДобавитьЗначение(КодБК,"П104");
СписокПараметров.ДобавитьЗначение(КодОКАТО,"П105");
СписокПараметров.ДобавитьЗначение(ПоказательОснования,"П106");
СписокПараметров.ДобавитьЗначение(ПоказательПериода,"П107");
СписокПараметров.ДобавитьЗначение(ПоказательНомера,"П108");
СписокПараметров.ДобавитьЗначение(ПоказательДаты,"П109");
СписокПараметров.ДобавитьЗначение(ПоказательТипа,"П110");
СписокПараметров.ДобавитьЗначение(Контроль,"Контроль");
ОткрытьФормуМодально("Обработка.ПеречислениеНалога",СписокПараметров);
ПНСтатусСоставителя = СтатусСоставителяПлДок;
ПНКодБК = ?(ПустаяСтрока(КодБК)=1,"0", КодБК);
ПНКодОКАТО = ?(ПустаяСтрока(КодОКАТО)=1,"0", КодОКАТО);
ПНПоказательОснования = ?(ПустаяСтрока( ПоказательОснования)=1,"0", ПоказательОснования);
ПНПоказательПериода = ?(ПустаяСтрока(ПоказательПериода)=1,"0", ПоказательПериода);
ПНПоказательНомера = ?(ПустаяСтрока(ПоказательНомера)=1,"0",ПоказательНомера);
ПНПоказательДаты = ?(ПустоеЗначение(ПоказательДаты)=1,"0",ПоказательДаты);
ПНПоказательТипа = ?(ПустоеЗначение( ПоказательТипа)=1,"0", ПоказательТипа);
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел4"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
КонецЕсли;
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 3);
// Выводим раздел №5
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Заголовок"), Таб, Черновик, СекцияПодвала,
ЗалоговокРаздела);
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Шапка"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Состояние("Формируется строка расшифровки № " + НомерСтроки);
// Выводим очередную строку на печать
КодБКПлательщика = "" + КБКНазначениеПлатежа.ДляКодаСчета + КОСГУНазначениеПлатежа.Код;
ВидСредствДляИсполнения = Строка(РазделЛицевогоСчета.ВидКазначейскогоСчета);
// Суммы строки расшифровки
СуммаВВалюте = Формат(СуммаВал,"Ч15.2");
Если (ПустоеЗначение(ВалютаДокумента) = 1) ИЛИ (ВалютаДокумента.Код = "643") Тогда
СуммаВРублях = "0";
СуммаВВалюте = Формат(Сумма,"Ч15.2");
Иначе
СуммаВВалюте = Формат(СуммаВал,"Ч15.2");
СуммаВРублях = Формат(Сумма,"Ч15.2");
КонецЕсли;
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Строка"), Таб, Черновик, СекцияПодвала,
Таб.ПолучитьСекцию("ШапкаРазд5Стр"));
КонецЦикла;
// Выводим подвал
Таб.ВывестиСекцию("Подвал");
// Выводим Отметку ФК
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("ОтметкаФК"), Таб, Черновик);
Если СразуНаПринтер = 0 Тогда
Таб.Опции(0,0,0,0,"ОпцииПечатиЗаявкаНаКассовыйРасход");
Таб.ТолькоПросмотр(1);
Таб.Показать("Заявка на кассовый расход № "+ глПреобразоватьНомерДок(НомерДок,ВыбраннаяФирма) +" от
"+ДатаДок,"");
Иначе
Таб.Опции(0,0,0,0,"ОпцииПечатиЗаявкаНаКассовыйРасход");
Таб.КоличествоЭкземпляров(КолЭкз);
Таб.Напечатать(0);
КонецЕсли;
Состояние("");
КонецПроцедуры // Печать()
//******************************************************************************
// ПоКнопкеПечать()
//
// Вызывается из формул элементов диалога:
// Кнопка "кнПечать".
//
// Описание:
// Определяется соответствующая печатная форма.
//
Процедура ПоКнопкеПечать(СразуНаПринтер = 0,КолЭкз = 1)
Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
Возврат;
КонецЕсли;
Если ПустоеЗначение(НомерТекущейФормы) = 1 Тогда
НомерТекущейФормы = 1;
Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка"));
КонецЕсли;
Если НомерТекущейФормы = 1 Тогда
Печать(СразуНаПринтер, КолЭкз);
Иначе
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(Контекст, "Контекст");
Параметры.ДобавитьЗначение(СразуНаПринтер, "Устройство");
Параметры.ДобавитьЗначение(КолЭкз, "КоличествоКопий");
ОткрытьФорму("Отчет", Параметры,
глКаталогПечФорм+ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы,"Файл"));
КонецЕсли;
КонецПроцедуры // ПоКнопкеПечать()
//******************************************************************************
// ПоКнопкеВыборПечатнойФормы()
//
// Вызывается из формул элементов диалога:
// Кнопка "кнВыбПечать".
//
// Описание:
// - открывает список для выбора способа печати.
// - формирует таблицу по выбранному способу.
//
Процедура ПоКнопкеВыборПечатнойФормы()
ВыбНомер = глВыборПечатнойФормы("Документ." + Вид(), ТаблицаПечФорм);
Если ВыбНомер > 0 Тогда
НомерТекущейФормы = ВыбНомер;
Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка"));
ПоКнопкеПечать();
КонецЕсли;
КонецПроцедуры // ПоКнопкеВыборПечатнойФормы()
//******************************************************************************
// ПеречислениеНалога()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет вызов обработки для заполнения налоговых реквизитов
// и заполняет их введенными значениями
//
Процедура ПеречислениеНалога()
Если КоличествоСтрок()>0 Тогда
Если Вопрос("Табличная часть документа будет очищена!
|Продолжить?","Да+Нет")="Нет" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
УдалитьСтроки();
КодБК="";
Контроль=0;
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(Контекст,"Контекст");
СписокПараметров.ДобавитьЗначение(СтатусСоставителяПлДок,"П101");
СписокПараметров.ДобавитьЗначение(КодБК,"П104");
СписокПараметров.ДобавитьЗначение(КодОКАТО,"П105");
СписокПараметров.ДобавитьЗначение(ПоказательОснования,"П106");
СписокПараметров.ДобавитьЗначение(ПоказательПериода,"П107");
СписокПараметров.ДобавитьЗначение(ПоказательНомера,"П108");
СписокПараметров.ДобавитьЗначение(ПоказательДаты,"П109");
СписокПараметров.ДобавитьЗначение(ПоказательТипа,"П110");
СписокПараметров.ДобавитьЗначение(Контроль,"Контроль");
ОткрытьФормуМодально("Обработка.ПеречислениеНалога",СписокПараметров);
Если ПустаяСтрока(КодБК)=1 Тогда
КодБК=СокрЛП(ВыбранныйНалог.Налог.КодАдминистратора.Код)+СокрЛП(ВыбранныйНалог.Налог.КодБК.Код)+СокрЛП(ВыбранныйНалог.Налог.КодБК.ОГС.Код);
КонецЕсли;
Если ПустаяСтрока(КодОКАТО)=1 Тогда
КодОКАТО=ВыбранныйНалог.КодОКАТО;
КонецЕсли;
Если ВыбраннаяФирма <> СтараяФирма Тогда
глПриИзмененииФирмы(Контекст);
СтараяФирма = ВыбраннаяФирма;
КонецЕсли;
ППНазначениеПлатежа = ВыбранныйНалог.НазначениеПлатежа;
ОтобразитьРасшифровки();
КонецПроцедуры // ПеречислениеНалога()
//******************************************************************************
// ПересчитатьРублевыеСуммы()
//
Процедура ПересчитатьРублевыеСуммы()
СуммаДокумента = СуммаДокументаВВалюте * Курс / Кратность;
РасчетНДС();
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Сумма = СуммаВал * Курс / Кратность;
КонецЦикла;
КонецПроцедуры
//******************************************************************************
// ПриВыбореСуммыДокументаВВалюте()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе валютной суммы документа:
// корректирует кратность и расчитывает сумму документа
//
Процедура ПриВыбореСуммыДокументаВВалюте()
Если Кратность = 0 Тогда
Кратность = 1;
КонецЕсли;
СуммаДокумента = СуммаДокументаВВалюте * Курс / Кратность;
РасчетНДС();
КонецПроцедуры // ПриВыбореСуммыДокументаВВалюте()
//******************************************************************************
//
//
Процедура ПриИзмененииСуммыВал()
Сумма = СуммаВал * Курс / Кратность;
КонецПроцедуры
//******************************************************************************
// ПриВыбореВалютыДокумента()
//
// Параметры:
// Парам - 1 - всегда установливать курс и кратность
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе валюты:
// устанавливает курс и кратность, расчитывает сумму документа
//
Процедура ПриВыбореВалютыДокумента(Парам=0)
Если ВалютаДокумента.Выбран()=1 Тогда
Если Парам=1 Тогда
Курс = ВалютаДокумента.Курс.Получить(ДатаДок);
Кратность = ВалютаДокумента.Кратность.Получить(ДатаДок);
КонецЕсли;
Иначе
Если Парам=1 Тогда
Курс = 1;
Кратность = 1;
КонецЕсли;
КонецЕсли;
Если Кратность = 0 Тогда
Кратность = 1;
КонецЕсли;
ПересчитатьРублевыеСуммы()
КонецПроцедуры // ПриВыбореВалютыДокумента()
//******************************************************************************
// ПриУстановкеПризнакаВИнВалюте()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при изменении признака валютного платежа:
// если требуется очищает валютные реквизиты и устанавливает
// их видимость для редактирования
//
Процедура ПриУстановкеПризнакаВИнВалюте()
Если ВИнВалюте = 0 Тогда
ВалютаДокумента = "";
Курс = 1;
Крастность = 1;
СуммаДокументаВВалюте = СуммаДокумента;
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры
//******************************************************************************
// ПриУстановкеПризнакаНалог()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при изменении признака налогового платежа:
// если требуется очищает налоговые реквизиты и устанавливает
// их доступность для редактирования
//
Процедура ПриУстановкеПризнакаНалог()
Если ТекущаяЗакладка = 1 Тогда
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
ОчиститьНалоговыеРеквизиты();
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры
//******************************************************************************
// ПриВыбореДоговора()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе договора:
// устанавливает значения реквизитов документа основания,указанные в договоре
//
Процедура ПриВыбореДоговора()
ДокументОснованиеВид = Договор.ВидОбязательства;
ДокументОснованиеДата = Договор.ДатаДоговора;
ДокументОснованиеНомер = Договор.НомерДоговора;
ДокументОснованиеПредмет = Договор.Содержание;
ППНазначениеПлатежа = Договор.НазначениеПлатежа
КонецПроцедуры // ПриВыбореДоговора()
//******************************************************************************
// ПриВыбореФирмы()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе фирмы:
// запоминает текущее значение и устанавливает значения реквизитов
//
Процедура ПриВыбореФирмы()
Фирма = СоздатьОбъект("Справочник.Фирмы");
Фирма.НайтиЭлемент(ВыбраннаяФирма);
Если Фирма.Выбрать("Выберите учреждение","ФормаСписка") = 1 Тогда
ВыбраннаяФирма = Фирма.ТекущийЭлемент();
КонецЕсли;
Если ВыбраннаяФирма <> СтараяФирма Тогда
Если КоличествоСтрок()>0 Тогда
Если Вопрос("Табличная часть документа будет очищена!
|Продолжить?","Да+Нет")="Нет" Тогда
ВыбраннаяФирма=СтараяФирма;
Возврат;
КонецЕсли;
КонецЕсли;
УдалитьСтроки();
глПриИзмененииФирмы(Контекст);
СтараяФирма = ВыбраннаяФирма;
ФКРУчреждения.ИспользоватьВладельца(ВыбраннаяФирма);
Если Договор.Владелец <> ВыбраннаяФирма.Организация Тогда
Договор = "";
ПриВыбореДоговора();
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
РазделЛицевогоСчета = "";
КонецЦикла;
ОпределениеОЛ();
КонецЕсли;
КонецПроцедуры // ПриВыбореФирмы()
//******************************************************************************
// ПриВыбореКонтрагента()
//
Процедура ПриВыбореКонтрагента()
Если СчетКонтрагента.ВладелецСчета <> Контрагент Тогда
СчетКонтрагента = "";
КонецЕсли;
Если СчетКонтрагента.Выбран()=0 Тогда
СчетКонтрагента=Контрагент.ОсновнойЛицевойСчет;
КонецЕсли;
Если (Договор.Контрагент <> Контрагент) И (ПустоеЗначение(Договор.Контрагент)=0) Тогда
Договор = Контрагент.ОсновнойДоговор;
ПриВыбореДоговора();
КонецЕсли;
КонецПроцедуры
//////////////////////////////////////////////////////////// ////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура.
//
Процедура ВводНового(Копирование);
Новый=1;
СтатусВозврата(глВводНовогоДокумента(Контекст));
ЛицевойСчет = ВыбраннаяФирма.ОсновнойЛицевойСчет;
Если ПустоеЗначение(ЛицевойСчет.КодВидаДеятельности) = 1 Тогда
КВД = Перечисление.КодВидаДеятельности.Бюджет;
Иначе
КВД = ЛицевойСчет.КодВидаДеятельности;
КонецЕсли;
Очередность = 6;
ВидПлатежа="Электронно";
ОпределениеОЛ();
КонецПроцедуры // ВводНового()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриОткрытии()
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1,"Заявка");
Форма.Закладки.ДобавитьЗначение(2,"Расшифровка");
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
ТекущаяЗакладка = 1;
глПроверкаРазрешенияРедактирования(Контекст);
Если Форма.ТолькоПросмотр() = 1 Тогда
Форма.КнопкаОК.Доступность(0);
Форма.кнВыбораФирмы.Доступность(0);
Форма.КнопкаПоУмолчанию("кнЗакрыть");
Иначе
Форма.КнопкаПоУмолчанию("КнопкаОК");
КонецЕсли;
НачальнаяДатаДокумента = ДатаДок;
СтараяФирма = ВыбраннаяФирма;
ФКРУчреждения=СоздатьОбъект("Справочник.ФКРУчреждения");
ФКРУчреждения.ИспользоватьВладельца(ВыбраннаяФирма);
НомерТекущейФормы = глУстановкаКнопкиПечать(Контекст, "Документ." + Вид(),ТаблицаПечФорм);
Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
Если Форма.Параметр.Получить("Действие") = "Печать" Тогда
//СразуНаПечать= Форма.Параметр.Получить("СразуНаПечать");
//ПоКнопкеПечать(СразуНаПечать);
ПоКнопкеПечать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
УправлениеВидимостьюДоступностью();
ОтобразитьРасшифровки();
КонецПроцедуры // ПриОткрытии()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриВыбореЗакладки(Ном,Значение);
ТекущаяЗакладка = Значение;
Если Значение=1 Тогда
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
ИначеЕсли Значение=2 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Расшифровка",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры // ПриВыбореЗакладки()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
Если ИдентЭлемДиалога = "СчетКонтрагента" Тогда
ФлагСтандОбр = 0;
Если Контрагент.Выбран()=1 Тогда
Параметр = Контрагент;
ОткрытьФорму("Справочник.ЛицевыеСчета.ФормаСписка", Параметр);
КонецЕсли;
ИначеЕсли (ИдентЭлемДиалога = "Руководитель") ИЛИ (ИдентЭлемДиалога = "Бухгалтер") Тогда
ФлагСтандОбр = 0;
Параметр = ВыбраннаяФирма;
ОткрытьФорму("Справочник.Сотрудники",Параметр);
ИначеЕсли ИдентЭлемДиалога = "Договор" Тогда
ФлагСтандОбр = 0;
Если Контрагент.Выбран()=1 Тогда
ТипОбязательства = "Контрагент";
Меню=СоздатьОбъект("СписокЗначений");
Меню.ДобавитьЗначение("Контрагент", "Договоры контрагента");
Меню.ДобавитьЗначение("Общие", "Общие договоры");
Параметр=СоздатьОбъект("СписокЗначений");
Параметр.ДобавитьЗначение(ВыбраннаяФирма);
Если Меню.ВыбратьЗначение(ТипОбязательства,,,,1)<>1 Тогда
Возврат;
КонецЕсли;
Если ТипОбязательства = "Контрагент" Тогда
Параметр.ДобавитьЗначение(Контрагент);
Иначе
Параметр.ДобавитьЗначение(ПолучитьПустоеЗначение("Справочник.Контрагенты"));
КонецЕсли;
ОткрытьФорму("Справочник.Договоры.ФормаСписка", Параметр);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="КБКНазначениеПлатежа" Тогда
ФлагСтандОбр = 0;
Параметр = ВыбраннаяФирма;
ФКРУчреждения.НайтиЭлемент(ВыбФКР);
Если ФКРУчреждения.Выбрать("КБК", "ДляВыбора") = 1 Тогда
КБКНазначениеПлатежа=ФКРУчреждения.ТекущийЭлемент().ФКР;
ВыбФКР=ФКРУчреждения.ТекущийЭлемент();
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="КОСГУНазначениеПлатежа" Тогда
// нам не всегда надо именно ЭКР
СчОГС="";
Если КБКНазначениеПлатежа.Выбран()=1 Тогда
Если (КБКНазначениеПлатежа.ВидКлассификатора=Перечисление.ВидКлассификатора.Разделы) Тогда
СчОГС=СчетПоКоду("304.05");
ИначеЕсли
(КБКНазначениеПлатежа.ВидКлассификатора=Перечисление.ВидКлассификатора.КлассификацияДоходов) Тогда
СчОГС=СчетПоКоду("210.02");
КонецЕсли;
КонецЕсли;
Если ПустоеЗначение(СчОГС)=0 Тогда
ФлагСтандОбр = 0;
СписокОГС="";
глДопустимыеОГССчета(СчОГС,,,СписокОГС);
ОткрытьФорму("Справочник.ОГС.ДляВыбораСОтбором", СписокОГС);
Если Форма.МодальныйРежим()=1 Тогда
Если ПустоеЗначение(СписокОГС) = 0 Тогда
КОСГУНазначениеПлатежа = СписокОГС.ТекущийЭлемент();
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="ДопКлассификация" Тогда
Если КОСГУНазначениеПлатежа.Выбран()=0 Тогда
ФлагСтандОбр = 0;
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "ВыбранныйНалог" Тогда
ФлагСтандОбр = 0;
Если ВыбраннаяФирма.Выбран()=1 Тогда
ОткрытьФорму("Справочник.НалогиИОтчисленияФирм.ФормаСписка", ВыбраннаяФирма);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "РазделЛицевогоСчета" Тогда
ФлагСтандОбр = 0;
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(ВыбраннаяФирма, "Фирма");
Парам.ДобавитьЗначение(ОрганКазначейства, "Казначейство");
Парам.ДобавитьЗначение(КВД, "КВД");
ОткрытьФормуМодально("Обработка.ВыборРазделаЛицевогоСчета", Парам);
Если ТипЗначенияСтр(Парам)="Справочник" Тогда
УстановитьАтрибут(ИдентЭлемДиалога,Парам);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "ВидПлатежа" Тогда
Длина = Метаданные.Документ(Вид()).РеквизитШапки("ВидПлатежа").Длина;
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(Формат("Почтой", "С"+Длина));
Список.ДобавитьЗначение(Формат("Телеграфом", "С"+Длина));
Список.ДобавитьЗначение(Формат("Электронно", "С"+Длина));
Список.ДобавитьЗначение(Формат("Срочно", "С"+Длина));
Список.ВыбратьЗначение(ВидПлатежа, "", 0, 60, 2);
// налоговые реквизиты
ИначеЕсли ИдентЭлемДиалога="ПоказательОснования" Тогда
ПокОсн="";
Если СпПоказательОснования.ВыбратьЗначение(ПокОсн,"Выбор основания платежа",,,2)=1 Тогда
ПоказательОснования=ПокОсн;
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="ПоказательТипа" Тогда
ТипПл="";
Если СпПоказательТипа.ВыбратьЗначение(ТипПл,"Выбор типа платежа",,,2)=1 Тогда
ПоказательТипа=ТипПл;
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="ПоказательДаты" Тогда
ПДата="";
ВвестиДату(ПДата,"Введите дату налогового документа");
ПоказательДаты=Строка(Формат(ПДата,"Д ДДММГГГГ"));
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="СтатусСоставителяПлДок" Тогда
СтСоставителяПлДок="";
Если СтатусСоставителя.ВыбратьЗначение(СтатусСоставителяПлДок,"Выбор статуса составителя",,,2)=1 Тогда
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли Лев(ИдентЭлемДиалога,5) ="КодБК" Тогда
// код бюджетной классификации
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("Контекст" , Контекст);
СписокПараметров.Установить("Атрибут" , "КодБК");
СписокПараметров.Установить("ЛицевойСчет" , "СчетКонтрагента");
Если ИдентЭлемДиалога ="КодБКПолучателя" Тогда
СписокПараметров.Установить("ВидБКАтрибут" , "ВидБКПолучателя");
СписокПараметров.Установить("Атрибут" , "КодБКПолучателя");
КонецЕсли;
ОткрытьФормуМодально("Обработка.ФормированиеКодаБК",СписокПараметров);
КонецЕсли;
КонецПроцедуры // ПриНачалеВыбораЗначения()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ОбработкаВыбораЗначения(ВыбЗнач,ИдентЭлемДиалога,ФлагСтандОбр)
Если ИдентЭлемДиалога="КОСГУНазначениеПлатежа" Тогда
Если ДопКлассификация.Владелец<>ВыбЗнач Тогда
ДопКлассификация="";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриРедактированииНовойСтроки()
Если ВИнВалюте = 1 Тогда
СуммаВал = 0;
СуммаВал = СуммаДокументаВВалюте - Итог("СуммаВал");
КонецЕсли;
Сумма = 0;
Сумма = СуммаДокумента - Итог("Сумма");
КонецПроцедуры
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗаписи()
Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
АвторПоследний= глПоследнийАвтор();
КонецПроцедуры // ПриЗаписи()
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриЗакрытии()
глОткрытьЖурнал(Контекст, Новый);
КонецПроцедуры // ПриЗакрытии()
//////////////////////////////////////////////////////////// ////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
// Создаем таблицу печатных форм
ТаблицаПечФорм = СоздатьОбъект("ТаблицаЗначений");
ТаблицаПечФорм.НоваяКолонка("Название","Строка",,,,30);
ТаблицаПечФорм.НоваяКолонка("Файл","Строка",,,"Файл",10);
ТаблицаПечФорм.НоваяКолонка("Кнопка","Строка",,,,10);
ТаблицаПечФорм.НоваяКолонка("ФайлОписания","Строка");
// Добавляем информацию о встроенной печатной форме
ТаблицаПечФорм.НоваяСтрока();
ТаблицаПечФорм.Название = "ф.0531801";
ТаблицаПечФорм.Кнопка = "Печать";
// Создаем и заполняем список предопределенных значений показателей типа
СпПоказательТипа=СоздатьОбъект("СписокЗначений");
СпПоказательТипа.УдалитьВсе();
СпПоказательТипа.ДобавитьЗначение("НС","НС - уплата налога или сбора");
СпПоказательТипа.ДобавитьЗначение("ПЛ","ПЛ - уплата платежа");
СпПоказательТипа.ДобавитьЗначение("ГП","ГП - уплата пошлины");
СпПоказательТипа.ДобавитьЗначение("ВЗ","ВЗ - уплата взноса");
СпПоказательТипа.ДобавитьЗначение("АВ","АВ - уплата аванса или предоплата (в том числе декадные платежи)");
СпПоказательТипа.ДобавитьЗначение("ПЕ","ПЕ - уплата пени");
СпПоказательТипа.ДобавитьЗначение("ПЦ","ПЦ - уплата процентов");
СпПоказательТипа.ДобавитьЗначение("СА","СА - налоговые санкции, установленные Налоговым кодексом РФ");
СпПоказательТипа.ДобавитьЗначение("АШ","АШ - административные штрафы");
СпПоказательТипа.ДобавитьЗначение("ИШ","ИШ - иные штрафы, установленные соответствующими нормативными актами");
СпПоказательТипа.ДобавитьЗначение("0", "0 - Невозможно указать конкретное значение показателя");
// Создаем и заполняем список предопределенных значений показателей типа
СпПоказательОснования=СоздатьОбъект("СписокЗначений");
СпПоказательОснования.УдалитьВсе();
СпПоказательОснования.ДобавитьЗначение("ТП","ТП - платежи текущего года");
СпПоказательОснования.ДобавитьЗначение("ЗД","ЗД - добровольное погашение задолженности по истекшим налоговым периодам
при отсутствии требования об уплате налогов");
СпПоказательОснования.ДобавитьЗначение("БФ","БФ - текущие платежи физических лиц-клиентов банка(владельцев счета),
уплачиваемые со своего банковского счета");
СпПоказательОснования.ДобавитьЗначение("ТР","ТР - погашение задолженности по требованию об уплате налогов (сборов) от
налогового органа");
СпПоказательОснования.ДобавитьЗначение("РС","РС - погашение рассроченной задолженности");
СпПоказательОснования.ДобавитьЗначение("ОТ","ОТ - погашение отсроченной задолженности");
СпПоказательОснования.ДобавитьЗначение("РТ","РТ - погашение реструктурируемой задолженности");
СпПоказательОснования.ДобавитьЗначение("ВУ","ВУ - погашение отсроченной задолженности в связи с введением внешнего
управления");
СпПоказательОснования.ДобавитьЗначение("ПР","ПР - погашение задолженности, приостановленной к взысканию");
СпПоказательОснования.ДобавитьЗначение("АП","АП - погашение задолженности по акту проверки");
СпПоказательОснования.ДобавитьЗначение("АР","АР - погашение задолженности по исполнительному документу");
СпПоказательОснования.ДобавитьЗначение("0", "0 - Невозможно указать конкретное значение показателя");
// Создаем и заполняем список предопределенных значений статуса составителя
СтатусСоставителя=СоздатьОбъект("СписокЗначений");
СтатусСоставителя.ДобавитьЗначение("01", "01 - налогоплательщик (плательщик сборов) - юридическое лицо");
СтатусСоставителя.ДобавитьЗначение("02", "02 - налоговый агент");
СтатусСоставителя.ДобавитьЗначение("03", "03 - сборщик налогов и сборов");
СтатусСоставителя.ДобавитьЗначение("04", "04 - налоговый орган");
СтатусСоставителя.ДобавитьЗначение("05", "05 - служба судебных приставов");
СтатусСоставителя.ДобавитьЗначение("06", "06 - участник внешнеэкономической деятельности");
СтатусСоставителя.ДобавитьЗначение("07", "07 - таможенный орган");
СтатусСоставителя.ДобавитьЗначение("08", "08 - плательщик иных обязательных платежей");
СтатусСоставителя.ДобавитьЗначение("09", "09 - налогоплательщик (плательщик сборов) - ИП");
СтатусСоставителя.ДобавитьЗначение("10", "10 - налогоплательщик (плательщик сборов) - частный нотариус");
СтатусСоставителя.ДобавитьЗначение("11", "11 - налогоплательщик (плательщик сборов) - адвокат");
СтатусСоставителя.ДобавитьЗначение("12", "12 - налогоплательщик (плательщик сборов) - глава КФХ");
СтатусСоставителя.ДобавитьЗначение("13", "13 - налогоплательщик (плательщик сборов) - иное физическое лицо");
СтатусСоставителя.ДобавитьЗначение("14", "14 - налогоплательщик, производящий выплаты физическим лицам");
СтатусСоставителя.ДобавитьЗначение("15", "15 - кредитная организация");
печати данного документа печатаеться 3 листа,...что слишком много
тоесть на
1стр он печатает 1. реквизиты документов, подпись
ответственных лиц,
на втором 2"реквезиты документа, 3 "реквизиты
контрагента, подпись
ответственных лиц,
на третем листе расшифровка заявки на кассовый расход подпись
ответственных лиц,
а нужно чтоб он переносил печать только при случае если на страницы
действительно не хватает места.
////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем НачальнаяДатаДокумента;
Перем СтараяФирма;
Перем Новый;
Перем ФКРУчреждения;
Перем ВыбФКР;
Перем ТекущаяЗакладка;
Перем ТаблицаПечФорм; // список печатных форм документа
Перем НомерТекущейФормы;
// Предопределенные списки для выбора значений в формах
Перем СпПоказательТипа;
Перем СпПоказательОснования;
Перем СтатусСоставителя;
// Буферный переменные для печати колонтитулов
Перем ВсегоСтраниц;
Перем пНомерДокумента;
Перем пДатаДок;
Перем ТекстШапкиРаздела;
////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
//
Функция Падеж(ДатаСтр)
СтрВозврат = СокрЛП(ДатаСтр);
Окончание = Прав(СтрВозврат, 9);
Если (Лев(Окончание, 1) = "й") ИЛИ (Лев(Окончание, 1) = "ь") Тогда
СтрокаДоп = "я";
Основание = 9;
Иначе
СтрокаДоп = "а";
Основание = 8;
КонецЕсли;
СтрВозврат = Лев(СтрВозврат, СтрДлина(СтрВозврат) - Основание) + СтрокаДоп + Сред(Окончание, 2);
Возврат СтрВозврат;
КонецФункции
//******************************************************************************
Функция ВывестиРазделБланка(Чистовик, Черновик = "", Подвал, НомСтрБланка)
Чистовик.ВывестиСекцию(Подвал);
Чистовик.НоваяСтраница();
ТекстШапкиРаздела = "Форма 0531801, с." + Строка(НомСтрБланка) + "
|Номер Заявки на кассовый расход " + НомерДок + "
|от «" + ДатаЧисло(ДатаДок) + "» " + Падеж(Нрег(ПериодСтр(НачМесяца(ДатаДок), КонМесяца(ДатаДок))));
Заголовок = Чистовик.ПолучитьСекцию("ШапкаРаздела");
Чистовик.ВывестиСекцию(Заголовок);
Если ПустоеЗначение(Черновик) = 0 Тогда
// Очищаем черновик
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
Черновик.ВывестиСекцию(Подвал);
Черновик.ВывестиСекцию(Заголовок);
КонецЕсли;
Возврат Заголовок;
КонецФункции
//******************************************************************************
Процедура ОпределениеОЛ()
Руководитель = ВыбраннаяФирма.Руководитель.Получить(ДатаДок);
Бухгалтер = ВыбраннаяФирма.ГлБухгалтер.Получить(ДатаДок);
КонецПроцедуры //ОпределениеРуководителя()
//******************************************************************************
// РасчетНДС()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет расчет суммы НДС
//
Процедура РасчетНДС()
Если СтавкаНДС.Выбран() = 1 Тогда
СтНДС = СтавкаНДС.Ставка;
Иначе
СтНДС = 0;
КонецЕсли;
Если ВИнВалюте = 1 Тогда
СумДок = СуммаДокументаВВалюте;
Иначе
СумДок = СуммаДокумента;
КонецЕсли;
СуммаНДС = СумДок*СтНДС/(100+СтНДС);
КонецПроцедуры // РасчетНДС()
//******************************************************************************
// ОчиститьНалоговыеРеквизиты()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Очищает налоговые реквизиты
//
Процедура ОчиститьНалоговыеРеквизиты()
СтатусСоставителяПлДок = "";
ПоказательОснования = "";
ПоказательПериода = "";
ПоказательНомера = "";
ПоказательДаты = "";
ПоказательТипа = "";
КодОКАТО = "";
ВыбранныйНалог = "";
КодБК = "";
КонецПроцедуры // ОчиститьНалоговыеРеквизиты()
//*****************************************************************************
// ОтобразитьРасшифровки()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Обновляет текст расшифровок налоговых показателей.
//
Процедура ОтобразитьРасшифровки()
Перем Представление;
Если НалоговыйПлатеж = 1 Тогда
Позиция = СтатусСоставителя.НайтиЗначение(СтатусСоставителяПлДок);
Если Позиция > 0 Тогда
СтатусСоставителя.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаСтатусСоставителя.Заголовок(Представление);
КонецЕсли;
Позиция = СпПоказательОснования.НайтиЗначение(ПоказательОснования);
Если Позиция > 0 Тогда
СпПоказательОснования.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаПоказательОснования.Заголовок(Представление);
КонецЕсли;
Позиция = СпПоказательТипа.НайтиЗначение(ПоказательТипа);
Если Позиция > 0 Тогда
СпПоказательТипа.ПолучитьЗначение(Позиция,Представление);
Форма.РасшифровкаПоказательТипаПлатежа.Заголовок(Представление);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ОтобразитьРасшифровки()
//******************************************************************************
// УправлениеВидимостьюДоступностью()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Управление видимостью / доступностью элементов диалога в зависимости от
// значения закладки и других условий.
//
Процедура УправлениеВидимостьюДоступностью()
Форма.ВалютаДокумента.Видимость(ВИнВалюте);
Форма.Курс.Видимость(ВИнВалюте);
Форма.Кратность.Видимость(ВИнВалюте);
Форма.СуммаДокументаВВалюте.Видимость(ВИнВалюте);
Форма.СуммаВал.Доступность(ВИнВалюте);
Форма.НадписьВалюта.Видимость(ВИнВалюте);
Форма.НадписьКурс.Видимость(ВИнВалюте);
Форма.НадписьКратность.Видимость(ВИнВалюте);
Форма.НадписьСуммаВВалюте.Видимость(ВИнВалюте);
//Если (КВД = Перечисление.КодВидаДеятельности.ВремРасп) И (НалоговыйПлатеж = 1) Тогда
// Форма.КонтрагентВремРасп.Видимость(1);
//Иначе
// Форма.КонтрагентВремРасп.Видимость(0);
//КонецЕсли;
КонецПроцедуры // УправлениеВидимостьюДоступностью()
//******************************************************************************
// ВывестиСекциюПостранично(НоваяСекция, Чистовик, Черновик, СекцияПодвала = 0, СекцияЗаголовка = 0)
//
// Параметры:
// НоваяСекция - секция таблицы, которую необходимо вывести
// Чистовик - таблица, куда необходимо вывести секцию
// Черновик - таблица, используемая для расчета необходимости новой страницы в Чистовике
// СекцияПодвала - секция, выводимая в подвале на каждом листе
// СекцияЗаголовка - секция, выводимая в заголовке на каждом листе
//
// Возвращаемое значение:
// Нет.
//
// Описание:
// Выводит секцию в таблицу с учетом разбиения на несколько страниц
// с заголовком и подвалом на каждой.
//
Процедура ВывестиСекциюПостранично(НоваяСекция, Чистовик, Черновик, СекцияПодвала = 0, СекцияЗаголовка = 0)
// Инициализируется черновик, если он пустой
Если Черновик.ВысотаТаблицы() = 0 Тогда
Если ПустоеЗначение(СекцияПодвала) = 0 Тогда
Черновик.ВывестиСекцию(СекцияПодвала);
КонецЕсли;
Если ПустоеЗначение(СекцияЗаголовка) = 0 Тогда
Черновик.ВывестиСекцию(СекцияЗаголовка);
КонецЕсли;
КонецЕсли;
// Выполняется проверка необходимости перехода на новую страницу
БылоСтраниц = Черновик.КоличествоСтраниц();
Черновик.ВывестиСекцию(НоваяСекция);
Если (БылоСтраниц <> Черновик.КоличествоСтраниц()) Тогда
// Очищаем черновик
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
// Добавляем, если нужно, подвал в Чистовик и в очищенный Черновик
Если ПустоеЗначение(СекцияПодвала) = 0 Тогда
Черновик.ВывестиСекцию(СекцияПодвала);
Чистовик.ВывестиСекцию(СекцияПодвала);
КонецЕсли;
// Переводим страницу в Чистовике
Чистовик.НоваяСтраница();
ВсегоСтраниц = ВсегоСтраниц + 1;
// Добавляем, если нужно, заголовок в Чистовик и в очищенный Черновик
Если ПустоеЗначение(СекцияЗаголовка) = 0 Тогда
Черновик.ВывестиСекцию(СекцияЗаголовка);
Чистовик.ВывестиСекцию(СекцияЗаголовка);
КонецЕсли;
// Добавляем секцию в черновик, ведь его очистили после пробного вывода
Черновик.ВывестиСекцию(НоваяСекция);
КонецЕсли;
// Выводим секцию в Чистовик
Чистовик.ВывестиСекцию(НоваяСекция);
КонецПроцедуры // ВывестиСекциюПостранично()
//******************************************************************************
// Печать(СразуНаПринтер, КолЭкз)
//
// Параметры:
// СразуНаПринтер - (1) если печать на принтер, (0) - с предварительным просмотром
// КолЭкз - количество экземпляров печати
//
// Возвращаемое значение:
// нет.
//
// Описание:
//
Процедура Печать(СразуНаПринтер = 0,КолЭкз = 1)
Если ВИнВалюте = 1 Тогда
Если СуммаДокументаВВалюте <> Итог("СуммаВал") Тогда
Сообщить(ГлПредставлениеДокумента(ТекущийДокумент(),1));
Сообщить("- сумма документа в валюте ("+Строка(СуммаДокументаВВалюте)+") не равна итогу
табличной части ("+Строка(Итог("СуммаВал")));
КонецЕсли;
КонецЕсли;
Если СуммаДокумента <> Итог("Сумма") Тогда
Сообщить(ГлПредставлениеДокумента(ТекущийДокумент(),1));
Сообщить("- сумма документа ("+Строка(СуммаДокумента)+") не равна итогу табличной части
("+Строка(Итог("Сумма")));
КонецЕсли;
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("0531801");
Таб.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
ВсегоСтраниц = 1;
Состояние("Формируется шапка документа");
пНомерДокумента = глПреобразоватьНомерДок(НомерДок,ВыбраннаяФирма);
пНомерДокумента = НомерДок;
пДатаДок = "от " + Формат(ДатаДок,"ДДДММММГГГГ");
пДатаДокЦ= Формат(ДатаДок,"ДДДММГГГГ");
пДатаДок_2 = Формат(ДатаДок,"ДДДММММГГГГ");
СписокДанных=СоздатьОбъект("СписокЗначений");
//ЦБ="";
//Если Константа.ОднаКассоваяКнига=Да Тогда
// ЦБ=Константа.ЦентрализованнаяБухгалтерия;
//КонецЕсли;
//Если ПустоеЗначение(ЦБ)=1 Тогда
СписокДанных.Установить( "Контекст", Контекст);
//Иначе
// СписокДанных.Установить( "Контекст", ЦБ);
//КонецЕсли;
пНомерЛС = "";
ВыбратьСтроки();
Если ПолучитьСтроку() = 1 Тогда
пНомерЛС = РазделЛицевогоСчета.Номер;
КонецЕсли;
СписокДанных.Установить( "Дата",ДатаДок );
СписокДанных.Установить( "ОфициальноеНаименование","" );
СписокДанных.Установить( "ФИОБух", "" );
СписокДанных.Установить( "ФИОРук", "" );
СписокДанных.Установить( "ДолжностьРук", "" );
СписокДанных.Установить( "ДолжностьБух", "" );
СписокДанных.Установить( "Министерство", "" );
СписокДанных.Установить( "КодБюджетополучателя" , "" );
СписокДанных.Установить( "КодППП" , "" );
СписокДанных.Установить( "НаименованиеБюджета" , "" );
ГлПолучитьДанные(СписокДанных);
пНаименованиеКлиента = СписокДанных.Получить("ОфициальноеНаименование");
//ОргБухФИО = глФИО(СписокДанных.Получить("ФИОБух"),1);
//ОргБухДолжность = СписокДанных.Получить("ДолжностьБух");
//ОргРукФИО = глФИО(СписокДанных.Получить("ФИОРук"),1);
//ОргРукДолжность = СписокДанных.Получить("ДолжностьРук");
ОргБухФИО = глФИО(Бухгалтер,1);
ОргБухДолжность = Бухгалтер.Должность.Получить(ДатаДок);
ОргРукФИО = глФИО(Руководитель,1);
ОргРукДолжность = Руководитель.Должность.Получить(ДатаДок);
пКодРПБС = СписокДанных.Получить("КодБюджетополучателя");
Если Сред(пНомерЛС, 5, 1) <> "1" Тогда
пКодРПБС = "";
КонецЕсли;
пНаименованиеГлавы = СписокДанных.Получить("Министерство");
пГлава = СписокДанных.Получить("КодППП");
пНаименованиеБюджета = СписокДанных.Получить("НаименованиеБюджета");
пФинансовыйОрган = ОрганКазначейства.ФинОрганНаименование;
пНаименованиеОФК = ОрганКазначейства.ПолнНаимен;
пКОФК = ОрганКазначейства.Код;
пПредельнаяДатаИсполнения = Формат(ПредельнаяДатаИсполнения,"ДДДММГГГГ");
пНомерОбязательства = НомерОбязательства;
Если ПустоеЗначение(ВалютаДокумента) = 1 Тогда
КодОКВ = "643";
Иначе
КодОКВ = ВалютаДокумента.Код;
КонецЕсли;
ПризнакАванса = ?(ПризнакАвансовогоПлатежа = 0, "Нет", "Да");
НазначениеПлатежа = ППНазначениеПлатежа;
// реквизиты контрагента
ПолучательПП = "";
БанкПолучателя = "";
Кредит = "";
БИКБанкаПолучателя = "";
СчетБанкаПолучателя = "";
ПолучательИНН = "";
ПолучательКПП = "";
ПечатьКПППол = СчетКонтрагента.ВсегдаУказыватьКПП;
глПлатежныеРеквизиты(СчетКонтрагента,ДатаДок,ПолучательИНН,ПолучательКПП, ПолучательПП, БанкПолучателя,
Кредит, БИКБанкаПолучателя,СчетБанкаПолучателя,НалоговыйПлатеж,,"Нет");
КонтрагентНаименование = ПолучательПП;
КонтрагентИНН = ПолучательИНН;
КонтрагентКПП = ПолучательКПП;
Если ПустоеЗначение(СчетКонтрагента.КазначействоОрганизации) = 0 Тогда
КонтрагентЛицевойСчет = СчетКонтрагента.Номер;
КонтрагентБанковскийСчет = СчетКонтрагента.НомерСчетаКазначейства;
Иначе
КонтрагентЛицевойСчет = "";
КонтрагентБанковскийСчет = СчетКонтрагента.Номер;
КонецЕсли;
КонтрагентНаименованиеБанка = БанкПолучателя;
КонтрагентБИКБанка = БИКБанкаПолучателя;
КонтрагентКорСчетБанка = СчетБанкаПолучателя;
// Суммы документа
Если (ПустоеЗначение(ВалютаДокумента) = 1) ИЛИ (ВалютаДокумента.Код = "643") Тогда
ППСуммаДокумента = "0";
ППСуммаДокументаВВалюте = Формат(СуммаДокумента,"Ч15.2");
Иначе
ППСуммаДокумента = Формат(СуммаДокумента,"Ч15.2");
ППСуммаДокументаВВалюте = Формат(СуммаДокументаВВалюте,"Ч15.2");
КонецЕсли;
// Получаем заголовок
СекцияЗаголовка = Таб.ПолучитьСекцию("Раздел5_Шапка");
// Получаем подвал
СекцияПодвала = Таб.ПолучитьСекцию("Подвал");
Черновик = СоздатьОбъект("Таблица");
Черновик.ПараметрыСтраницы(2,,,,,10,10,10,10,1,,);
// Выводим заголовок
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Заголовок"), Таб, Черновик, СекцияПодвала);
// Выводим раздел №1
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел1"), Таб, Черновик, СекцияПодвала);
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
Если НалоговыйПлатеж = 0 Тогда
// Выводим раздел №2
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел2"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
КонецЕсли;
// Выводим раздел №3
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел3"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
Если НалоговыйПлатеж = 1 Тогда
// Выводим раздел №4
Контроль=1;
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(Контекст,"Контекст");
СписокПараметров.ДобавитьЗначение(СтатусСоставителяПлДок,"П101");
СписокПараметров.ДобавитьЗначение(КодБК,"П104");
СписокПараметров.ДобавитьЗначение(КодОКАТО,"П105");
СписокПараметров.ДобавитьЗначение(ПоказательОснования,"П106");
СписокПараметров.ДобавитьЗначение(ПоказательПериода,"П107");
СписокПараметров.ДобавитьЗначение(ПоказательНомера,"П108");
СписокПараметров.ДобавитьЗначение(ПоказательДаты,"П109");
СписокПараметров.ДобавитьЗначение(ПоказательТипа,"П110");
СписокПараметров.ДобавитьЗначение(Контроль,"Контроль");
ОткрытьФормуМодально("Обработка.ПеречислениеНалога",СписокПараметров);
ПНСтатусСоставителя = СтатусСоставителяПлДок;
ПНКодБК = ?(ПустаяСтрока(КодБК)=1,"0", КодБК);
ПНКодОКАТО = ?(ПустаяСтрока(КодОКАТО)=1,"0", КодОКАТО);
ПНПоказательОснования = ?(ПустаяСтрока( ПоказательОснования)=1,"0", ПоказательОснования);
ПНПоказательПериода = ?(ПустаяСтрока(ПоказательПериода)=1,"0", ПоказательПериода);
ПНПоказательНомера = ?(ПустаяСтрока(ПоказательНомера)=1,"0",ПоказательНомера);
ПНПоказательДаты = ?(ПустоеЗначение(ПоказательДаты)=1,"0",ПоказательДаты);
ПНПоказательТипа = ?(ПустоеЗначение( ПоказательТипа)=1,"0", ПоказательТипа);
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел4"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
КонецЕсли;
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 3);
// Выводим раздел №5
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Заголовок"), Таб, Черновик, СекцияПодвала,
ЗалоговокРаздела);
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Шапка"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Состояние("Формируется строка расшифровки № " + НомерСтроки);
// Выводим очередную строку на печать
КодБКПлательщика = "" + КБКНазначениеПлатежа.ДляКодаСчета + КОСГУНазначениеПлатежа.Код;
ВидСредствДляИсполнения = Строка(РазделЛицевогоСчета.ВидКазначейскогоСчета);
// Суммы строки расшифровки
СуммаВВалюте = Формат(СуммаВал,"Ч15.2");
Если (ПустоеЗначение(ВалютаДокумента) = 1) ИЛИ (ВалютаДокумента.Код = "643") Тогда
СуммаВРублях = "0";
СуммаВВалюте = Формат(Сумма,"Ч15.2");
Иначе
СуммаВВалюте = Формат(СуммаВал,"Ч15.2");
СуммаВРублях = Формат(Сумма,"Ч15.2");
КонецЕсли;
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел5_Строка"), Таб, Черновик, СекцияПодвала,
Таб.ПолучитьСекцию("ШапкаРазд5Стр"));
КонецЦикла;
// Выводим подвал
Таб.ВывестиСекцию("Подвал");
// Выводим Отметку ФК
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("ОтметкаФК"), Таб, Черновик);
Если СразуНаПринтер = 0 Тогда
Таб.Опции(0,0,0,0,"ОпцииПечатиЗаявкаНаКассовыйРасход");
Таб.ТолькоПросмотр(1);
Таб.Показать("Заявка на кассовый расход № "+ глПреобразоватьНомерДок(НомерДок,ВыбраннаяФирма) +" от
"+ДатаДок,"");
Иначе
Таб.Опции(0,0,0,0,"ОпцииПечатиЗаявкаНаКассовыйРасход");
Таб.КоличествоЭкземпляров(КолЭкз);
Таб.Напечатать(0);
КонецЕсли;
Состояние("");
КонецПроцедуры // Печать()
//******************************************************************************
// ПоКнопкеПечать()
//
// Вызывается из формул элементов диалога:
// Кнопка "кнПечать".
//
// Описание:
// Определяется соответствующая печатная форма.
//
Процедура ПоКнопкеПечать(СразуНаПринтер = 0,КолЭкз = 1)
Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
Возврат;
КонецЕсли;
Если ПустоеЗначение(НомерТекущейФормы) = 1 Тогда
НомерТекущейФормы = 1;
Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка"));
КонецЕсли;
Если НомерТекущейФормы = 1 Тогда
Печать(СразуНаПринтер, КолЭкз);
Иначе
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(Контекст, "Контекст");
Параметры.ДобавитьЗначение(СразуНаПринтер, "Устройство");
Параметры.ДобавитьЗначение(КолЭкз, "КоличествоКопий");
ОткрытьФорму("Отчет", Параметры,
глКаталогПечФорм+ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы,"Файл"));
КонецЕсли;
КонецПроцедуры // ПоКнопкеПечать()
//******************************************************************************
// ПоКнопкеВыборПечатнойФормы()
//
// Вызывается из формул элементов диалога:
// Кнопка "кнВыбПечать".
//
// Описание:
// - открывает список для выбора способа печати.
// - формирует таблицу по выбранному способу.
//
Процедура ПоКнопкеВыборПечатнойФормы()
ВыбНомер = глВыборПечатнойФормы("Документ." + Вид(), ТаблицаПечФорм);
Если ВыбНомер > 0 Тогда
НомерТекущейФормы = ВыбНомер;
Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка"));
ПоКнопкеПечать();
КонецЕсли;
КонецПроцедуры // ПоКнопкеВыборПечатнойФормы()
//******************************************************************************
// ПеречислениеНалога()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет вызов обработки для заполнения налоговых реквизитов
// и заполняет их введенными значениями
//
Процедура ПеречислениеНалога()
Если КоличествоСтрок()>0 Тогда
Если Вопрос("Табличная часть документа будет очищена!
|Продолжить?","Да+Нет")="Нет" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
УдалитьСтроки();
КодБК="";
Контроль=0;
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение(Контекст,"Контекст");
СписокПараметров.ДобавитьЗначение(СтатусСоставителяПлДок,"П101");
СписокПараметров.ДобавитьЗначение(КодБК,"П104");
СписокПараметров.ДобавитьЗначение(КодОКАТО,"П105");
СписокПараметров.ДобавитьЗначение(ПоказательОснования,"П106");
СписокПараметров.ДобавитьЗначение(ПоказательПериода,"П107");
СписокПараметров.ДобавитьЗначение(ПоказательНомера,"П108");
СписокПараметров.ДобавитьЗначение(ПоказательДаты,"П109");
СписокПараметров.ДобавитьЗначение(ПоказательТипа,"П110");
СписокПараметров.ДобавитьЗначение(Контроль,"Контроль");
ОткрытьФормуМодально("Обработка.ПеречислениеНалога",СписокПараметров);
Если ПустаяСтрока(КодБК)=1 Тогда
КодБК=СокрЛП(ВыбранныйНалог.Налог.КодАдминистратора.Код)+СокрЛП(ВыбранныйНалог.Налог.КодБК.Код)+СокрЛП(ВыбранныйНалог.Налог.КодБК.ОГС.Код);
КонецЕсли;
Если ПустаяСтрока(КодОКАТО)=1 Тогда
КодОКАТО=ВыбранныйНалог.КодОКАТО;
КонецЕсли;
Если ВыбраннаяФирма <> СтараяФирма Тогда
глПриИзмененииФирмы(Контекст);
СтараяФирма = ВыбраннаяФирма;
КонецЕсли;
ППНазначениеПлатежа = ВыбранныйНалог.НазначениеПлатежа;
ОтобразитьРасшифровки();
КонецПроцедуры // ПеречислениеНалога()
//******************************************************************************
// ПересчитатьРублевыеСуммы()
//
Процедура ПересчитатьРублевыеСуммы()
СуммаДокумента = СуммаДокументаВВалюте * Курс / Кратность;
РасчетНДС();
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Сумма = СуммаВал * Курс / Кратность;
КонецЦикла;
КонецПроцедуры
//******************************************************************************
// ПриВыбореСуммыДокументаВВалюте()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе валютной суммы документа:
// корректирует кратность и расчитывает сумму документа
//
Процедура ПриВыбореСуммыДокументаВВалюте()
Если Кратность = 0 Тогда
Кратность = 1;
КонецЕсли;
СуммаДокумента = СуммаДокументаВВалюте * Курс / Кратность;
РасчетНДС();
КонецПроцедуры // ПриВыбореСуммыДокументаВВалюте()
//******************************************************************************
//
//
Процедура ПриИзмененииСуммыВал()
Сумма = СуммаВал * Курс / Кратность;
КонецПроцедуры
//******************************************************************************
// ПриВыбореВалютыДокумента()
//
// Параметры:
// Парам - 1 - всегда установливать курс и кратность
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе валюты:
// устанавливает курс и кратность, расчитывает сумму документа
//
Процедура ПриВыбореВалютыДокумента(Парам=0)
Если ВалютаДокумента.Выбран()=1 Тогда
Если Парам=1 Тогда
Курс = ВалютаДокумента.Курс.Получить(ДатаДок);
Кратность = ВалютаДокумента.Кратность.Получить(ДатаДок);
КонецЕсли;
Иначе
Если Парам=1 Тогда
Курс = 1;
Кратность = 1;
КонецЕсли;
КонецЕсли;
Если Кратность = 0 Тогда
Кратность = 1;
КонецЕсли;
ПересчитатьРублевыеСуммы()
КонецПроцедуры // ПриВыбореВалютыДокумента()
//******************************************************************************
// ПриУстановкеПризнакаВИнВалюте()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при изменении признака валютного платежа:
// если требуется очищает валютные реквизиты и устанавливает
// их видимость для редактирования
//
Процедура ПриУстановкеПризнакаВИнВалюте()
Если ВИнВалюте = 0 Тогда
ВалютаДокумента = "";
Курс = 1;
Крастность = 1;
СуммаДокументаВВалюте = СуммаДокумента;
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры
//******************************************************************************
// ПриУстановкеПризнакаНалог()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при изменении признака налогового платежа:
// если требуется очищает налоговые реквизиты и устанавливает
// их доступность для редактирования
//
Процедура ПриУстановкеПризнакаНалог()
Если ТекущаяЗакладка = 1 Тогда
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
ОчиститьНалоговыеРеквизиты();
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры
//******************************************************************************
// ПриВыбореДоговора()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе договора:
// устанавливает значения реквизитов документа основания,указанные в договоре
//
Процедура ПриВыбореДоговора()
ДокументОснованиеВид = Договор.ВидОбязательства;
ДокументОснованиеДата = Договор.ДатаДоговора;
ДокументОснованиеНомер = Договор.НомерДоговора;
ДокументОснованиеПредмет = Договор.Содержание;
ППНазначениеПлатежа = Договор.НазначениеПлатежа
КонецПроцедуры // ПриВыбореДоговора()
//******************************************************************************
// ПриВыбореФирмы()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
//
// Описание:
// Выполняет действия при выборе фирмы:
// запоминает текущее значение и устанавливает значения реквизитов
//
Процедура ПриВыбореФирмы()
Фирма = СоздатьОбъект("Справочник.Фирмы");
Фирма.НайтиЭлемент(ВыбраннаяФирма);
Если Фирма.Выбрать("Выберите учреждение","ФормаСписка") = 1 Тогда
ВыбраннаяФирма = Фирма.ТекущийЭлемент();
КонецЕсли;
Если ВыбраннаяФирма <> СтараяФирма Тогда
Если КоличествоСтрок()>0 Тогда
Если Вопрос("Табличная часть документа будет очищена!
|Продолжить?","Да+Нет")="Нет" Тогда
ВыбраннаяФирма=СтараяФирма;
Возврат;
КонецЕсли;
КонецЕсли;
УдалитьСтроки();
глПриИзмененииФирмы(Контекст);
СтараяФирма = ВыбраннаяФирма;
ФКРУчреждения.ИспользоватьВладельца(ВыбраннаяФирма);
Если Договор.Владелец <> ВыбраннаяФирма.Организация Тогда
Договор = "";
ПриВыбореДоговора();
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
РазделЛицевогоСчета = "";
КонецЦикла;
ОпределениеОЛ();
КонецЕсли;
КонецПроцедуры // ПриВыбореФирмы()
//******************************************************************************
// ПриВыбореКонтрагента()
//
Процедура ПриВыбореКонтрагента()
Если СчетКонтрагента.ВладелецСчета <> Контрагент Тогда
СчетКонтрагента = "";
КонецЕсли;
Если СчетКонтрагента.Выбран()=0 Тогда
СчетКонтрагента=Контрагент.ОсновнойЛицевойСчет;
КонецЕсли;
Если (Договор.Контрагент <> Контрагент) И (ПустоеЗначение(Договор.Контрагент)=0) Тогда
Договор = Контрагент.ОсновнойДоговор;
ПриВыбореДоговора();
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура.
//
Процедура ВводНового(Копирование);
Новый=1;
СтатусВозврата(глВводНовогоДокумента(Контекст));
ЛицевойСчет = ВыбраннаяФирма.ОсновнойЛицевойСчет;
Если ПустоеЗначение(ЛицевойСчет.КодВидаДеятельности) = 1 Тогда
КВД = Перечисление.КодВидаДеятельности.Бюджет;
Иначе
КВД = ЛицевойСчет.КодВидаДеятельности;
КонецЕсли;
Очередность = 6;
ВидПлатежа="Электронно";
ОпределениеОЛ();
КонецПроцедуры // ВводНового()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриОткрытии()
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1,"Заявка");
Форма.Закладки.ДобавитьЗначение(2,"Расшифровка");
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
ТекущаяЗакладка = 1;
глПроверкаРазрешенияРедактирования(Контекст);
Если Форма.ТолькоПросмотр() = 1 Тогда
Форма.КнопкаОК.Доступность(0);
Форма.кнВыбораФирмы.Доступность(0);
Форма.КнопкаПоУмолчанию("кнЗакрыть");
Иначе
Форма.КнопкаПоУмолчанию("КнопкаОК");
КонецЕсли;
НачальнаяДатаДокумента = ДатаДок;
СтараяФирма = ВыбраннаяФирма;
ФКРУчреждения=СоздатьОбъект("Справочник.ФКРУчреждения");
ФКРУчреждения.ИспользоватьВладельца(ВыбраннаяФирма);
НомерТекущейФормы = глУстановкаКнопкиПечать(Контекст, "Документ." + Вид(),ТаблицаПечФорм);
Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
Если Форма.Параметр.Получить("Действие") = "Печать" Тогда
//СразуНаПечать= Форма.Параметр.Получить("СразуНаПечать");
//ПоКнопкеПечать(СразуНаПечать);
ПоКнопкеПечать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
УправлениеВидимостьюДоступностью();
ОтобразитьРасшифровки();
КонецПроцедуры // ПриОткрытии()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриВыбореЗакладки(Ном,Значение);
ТекущаяЗакладка = Значение;
Если Значение=1 Тогда
Если НалоговыйПлатеж=0 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,ДокументОснование",2);
Форма.кнДоговор.Видимость(1);
Иначе
Форма.ИспользоватьСлой("Шапка,Кнопки,Основной,НалоговыйПлатеж",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
ИначеЕсли Значение=2 Тогда
Форма.ИспользоватьСлой("Шапка,Кнопки,Расшифровка",2);
Форма.кнДоговор.Видимость(0);
КонецЕсли;
УправлениеВидимостьюДоступностью();
КонецПроцедуры // ПриВыбореЗакладки()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
Если ИдентЭлемДиалога = "СчетКонтрагента" Тогда
ФлагСтандОбр = 0;
Если Контрагент.Выбран()=1 Тогда
Параметр = Контрагент;
ОткрытьФорму("Справочник.ЛицевыеСчета.ФормаСписка", Параметр);
КонецЕсли;
ИначеЕсли (ИдентЭлемДиалога = "Руководитель") ИЛИ (ИдентЭлемДиалога = "Бухгалтер") Тогда
ФлагСтандОбр = 0;
Параметр = ВыбраннаяФирма;
ОткрытьФорму("Справочник.Сотрудники",Параметр);
ИначеЕсли ИдентЭлемДиалога = "Договор" Тогда
ФлагСтандОбр = 0;
Если Контрагент.Выбран()=1 Тогда
ТипОбязательства = "Контрагент";
Меню=СоздатьОбъект("СписокЗначений");
Меню.ДобавитьЗначение("Контрагент", "Договоры контрагента");
Меню.ДобавитьЗначение("Общие", "Общие договоры");
Параметр=СоздатьОбъект("СписокЗначений");
Параметр.ДобавитьЗначение(ВыбраннаяФирма);
Если Меню.ВыбратьЗначение(ТипОбязательства,,,,1)<>1 Тогда
Возврат;
КонецЕсли;
Если ТипОбязательства = "Контрагент" Тогда
Параметр.ДобавитьЗначение(Контрагент);
Иначе
Параметр.ДобавитьЗначение(ПолучитьПустоеЗначение("Справочник.Контрагенты"));
КонецЕсли;
ОткрытьФорму("Справочник.Договоры.ФормаСписка", Параметр);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="КБКНазначениеПлатежа" Тогда
ФлагСтандОбр = 0;
Параметр = ВыбраннаяФирма;
ФКРУчреждения.НайтиЭлемент(ВыбФКР);
Если ФКРУчреждения.Выбрать("КБК", "ДляВыбора") = 1 Тогда
КБКНазначениеПлатежа=ФКРУчреждения.ТекущийЭлемент().ФКР;
ВыбФКР=ФКРУчреждения.ТекущийЭлемент();
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="КОСГУНазначениеПлатежа" Тогда
// нам не всегда надо именно ЭКР
СчОГС="";
Если КБКНазначениеПлатежа.Выбран()=1 Тогда
Если (КБКНазначениеПлатежа.ВидКлассификатора=Перечисление.ВидКлассификатора.Разделы) Тогда
СчОГС=СчетПоКоду("304.05");
ИначеЕсли
(КБКНазначениеПлатежа.ВидКлассификатора=Перечисление.ВидКлассификатора.КлассификацияДоходов) Тогда
СчОГС=СчетПоКоду("210.02");
КонецЕсли;
КонецЕсли;
Если ПустоеЗначение(СчОГС)=0 Тогда
ФлагСтандОбр = 0;
СписокОГС="";
глДопустимыеОГССчета(СчОГС,,,СписокОГС);
ОткрытьФорму("Справочник.ОГС.ДляВыбораСОтбором", СписокОГС);
Если Форма.МодальныйРежим()=1 Тогда
Если ПустоеЗначение(СписокОГС) = 0 Тогда
КОСГУНазначениеПлатежа = СписокОГС.ТекущийЭлемент();
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога="ДопКлассификация" Тогда
Если КОСГУНазначениеПлатежа.Выбран()=0 Тогда
ФлагСтандОбр = 0;
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "ВыбранныйНалог" Тогда
ФлагСтандОбр = 0;
Если ВыбраннаяФирма.Выбран()=1 Тогда
ОткрытьФорму("Справочник.НалогиИОтчисленияФирм.ФормаСписка", ВыбраннаяФирма);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "РазделЛицевогоСчета" Тогда
ФлагСтандОбр = 0;
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(ВыбраннаяФирма, "Фирма");
Парам.ДобавитьЗначение(ОрганКазначейства, "Казначейство");
Парам.ДобавитьЗначение(КВД, "КВД");
ОткрытьФормуМодально("Обработка.ВыборРазделаЛицевогоСчета", Парам);
Если ТипЗначенияСтр(Парам)="Справочник" Тогда
УстановитьАтрибут(ИдентЭлемДиалога,Парам);
КонецЕсли;
ИначеЕсли ИдентЭлемДиалога = "ВидПлатежа" Тогда
Длина = Метаданные.Документ(Вид()).РеквизитШапки("ВидПлатежа").Длина;
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(Формат("Почтой", "С"+Длина));
Список.ДобавитьЗначение(Формат("Телеграфом", "С"+Длина));
Список.ДобавитьЗначение(Формат("Электронно", "С"+Длина));
Список.ДобавитьЗначение(Формат("Срочно", "С"+Длина));
Список.ВыбратьЗначение(ВидПлатежа, "", 0, 60, 2);
// налоговые реквизиты
ИначеЕсли ИдентЭлемДиалога="ПоказательОснования" Тогда
ПокОсн="";
Если СпПоказательОснования.ВыбратьЗначение(ПокОсн,"Выбор основания платежа",,,2)=1 Тогда
ПоказательОснования=ПокОсн;
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="ПоказательТипа" Тогда
ТипПл="";
Если СпПоказательТипа.ВыбратьЗначение(ТипПл,"Выбор типа платежа",,,2)=1 Тогда
ПоказательТипа=ТипПл;
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="ПоказательДаты" Тогда
ПДата="";
ВвестиДату(ПДата,"Введите дату налогового документа");
ПоказательДаты=Строка(Формат(ПДата,"Д ДДММГГГГ"));
ФлагСтандОбр = 0;
ИначеЕсли ИдентЭлемДиалога="СтатусСоставителяПлДок" Тогда
СтСоставителяПлДок="";
Если СтатусСоставителя.ВыбратьЗначение(СтатусСоставителяПлДок,"Выбор статуса составителя",,,2)=1 Тогда
ОтобразитьРасшифровки();
КонецЕсли;
ФлагСтандОбр = 0;
ИначеЕсли Лев(ИдентЭлемДиалога,5) ="КодБК" Тогда
// код бюджетной классификации
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("Контекст" , Контекст);
СписокПараметров.Установить("Атрибут" , "КодБК");
СписокПараметров.Установить("ЛицевойСчет" , "СчетКонтрагента");
Если ИдентЭлемДиалога ="КодБКПолучателя" Тогда
СписокПараметров.Установить("ВидБКАтрибут" , "ВидБКПолучателя");
СписокПараметров.Установить("Атрибут" , "КодБКПолучателя");
КонецЕсли;
ОткрытьФормуМодально("Обработка.ФормированиеКодаБК",СписокПараметров);
КонецЕсли;
КонецПроцедуры // ПриНачалеВыбораЗначения()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ОбработкаВыбораЗначения(ВыбЗнач,ИдентЭлемДиалога,ФлагСтандОбр)
Если ИдентЭлемДиалога="КОСГУНазначениеПлатежа" Тогда
Если ДопКлассификация.Владелец<>ВыбЗнач Тогда
ДопКлассификация="";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриРедактированииНовойСтроки()
Если ВИнВалюте = 1 Тогда
СуммаВал = 0;
СуммаВал = СуммаДокументаВВалюте - Итог("СуммаВал");
КонецЕсли;
Сумма = 0;
Сумма = СуммаДокумента - Итог("Сумма");
КонецПроцедуры
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗаписи()
Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
АвторПоследний= глПоследнийАвтор();
КонецПроцедуры // ПриЗаписи()
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриЗакрытии()
глОткрытьЖурнал(Контекст, Новый);
КонецПроцедуры // ПриЗакрытии()
////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
// Создаем таблицу печатных форм
ТаблицаПечФорм = СоздатьОбъект("ТаблицаЗначений");
ТаблицаПечФорм.НоваяКолонка("Название","Строка",,,,30);
ТаблицаПечФорм.НоваяКолонка("Файл","Строка",,,"Файл",10);
ТаблицаПечФорм.НоваяКолонка("Кнопка","Строка",,,,10);
ТаблицаПечФорм.НоваяКолонка("ФайлОписания","Строка");
// Добавляем информацию о встроенной печатной форме
ТаблицаПечФорм.НоваяСтрока();
ТаблицаПечФорм.Название = "ф.0531801";
ТаблицаПечФорм.Кнопка = "Печать";
// Создаем и заполняем список предопределенных значений показателей типа
СпПоказательТипа=СоздатьОбъект("СписокЗначений");
СпПоказательТипа.УдалитьВсе();
СпПоказательТипа.ДобавитьЗначение("НС","НС - уплата налога или сбора");
СпПоказательТипа.ДобавитьЗначение("ПЛ","ПЛ - уплата платежа");
СпПоказательТипа.ДобавитьЗначение("ГП","ГП - уплата пошлины");
СпПоказательТипа.ДобавитьЗначение("ВЗ","ВЗ - уплата взноса");
СпПоказательТипа.ДобавитьЗначение("АВ","АВ - уплата аванса или предоплата (в том числе декадные платежи)");
СпПоказательТипа.ДобавитьЗначение("ПЕ","ПЕ - уплата пени");
СпПоказательТипа.ДобавитьЗначение("ПЦ","ПЦ - уплата процентов");
СпПоказательТипа.ДобавитьЗначение("СА","СА - налоговые санкции, установленные Налоговым кодексом РФ");
СпПоказательТипа.ДобавитьЗначение("АШ","АШ - административные штрафы");
СпПоказательТипа.ДобавитьЗначение("ИШ","ИШ - иные штрафы, установленные соответствующими нормативными актами");
СпПоказательТипа.ДобавитьЗначение("0", "0 - Невозможно указать конкретное значение показателя");
// Создаем и заполняем список предопределенных значений показателей типа
СпПоказательОснования=СоздатьОбъект("СписокЗначений");
СпПоказательОснования.УдалитьВсе();
СпПоказательОснования.ДобавитьЗначение("ТП","ТП - платежи текущего года");
СпПоказательОснования.ДобавитьЗначение("ЗД","ЗД - добровольное погашение задолженности по истекшим налоговым периодам
при отсутствии требования об уплате налогов");
СпПоказательОснования.ДобавитьЗначение("БФ","БФ - текущие платежи физических лиц-клиентов банка(владельцев счета),
уплачиваемые со своего банковского счета");
СпПоказательОснования.ДобавитьЗначение("ТР","ТР - погашение задолженности по требованию об уплате налогов (сборов) от
налогового органа");
СпПоказательОснования.ДобавитьЗначение("РС","РС - погашение рассроченной задолженности");
СпПоказательОснования.ДобавитьЗначение("ОТ","ОТ - погашение отсроченной задолженности");
СпПоказательОснования.ДобавитьЗначение("РТ","РТ - погашение реструктурируемой задолженности");
СпПоказательОснования.ДобавитьЗначение("ВУ","ВУ - погашение отсроченной задолженности в связи с введением внешнего
управления");
СпПоказательОснования.ДобавитьЗначение("ПР","ПР - погашение задолженности, приостановленной к взысканию");
СпПоказательОснования.ДобавитьЗначение("АП","АП - погашение задолженности по акту проверки");
СпПоказательОснования.ДобавитьЗначение("АР","АР - погашение задолженности по исполнительному документу");
СпПоказательОснования.ДобавитьЗначение("0", "0 - Невозможно указать конкретное значение показателя");
// Создаем и заполняем список предопределенных значений статуса составителя
СтатусСоставителя=СоздатьОбъект("СписокЗначений");
СтатусСоставителя.ДобавитьЗначение("01", "01 - налогоплательщик (плательщик сборов) - юридическое лицо");
СтатусСоставителя.ДобавитьЗначение("02", "02 - налоговый агент");
СтатусСоставителя.ДобавитьЗначение("03", "03 - сборщик налогов и сборов");
СтатусСоставителя.ДобавитьЗначение("04", "04 - налоговый орган");
СтатусСоставителя.ДобавитьЗначение("05", "05 - служба судебных приставов");
СтатусСоставителя.ДобавитьЗначение("06", "06 - участник внешнеэкономической деятельности");
СтатусСоставителя.ДобавитьЗначение("07", "07 - таможенный орган");
СтатусСоставителя.ДобавитьЗначение("08", "08 - плательщик иных обязательных платежей");
СтатусСоставителя.ДобавитьЗначение("09", "09 - налогоплательщик (плательщик сборов) - ИП");
СтатусСоставителя.ДобавитьЗначение("10", "10 - налогоплательщик (плательщик сборов) - частный нотариус");
СтатусСоставителя.ДобавитьЗначение("11", "11 - налогоплательщик (плательщик сборов) - адвокат");
СтатусСоставителя.ДобавитьЗначение("12", "12 - налогоплательщик (плательщик сборов) - глава КФХ");
СтатусСоставителя.ДобавитьЗначение("13", "13 - налогоплательщик (плательщик сборов) - иное физическое лицо");
СтатусСоставителя.ДобавитьЗначение("14", "14 - налогоплательщик, производящий выплаты физическим лицам");
СтатусСоставителя.ДобавитьЗначение("15", "15 - кредитная организация");
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
// Наталья издевается видать
Функция ВывестиРазделБланка(Чистовик, Черновик = "", Подвал, НомСтрБланка)
Чистовик.ВывестиСекцию(Подвал);
Чистовик.НоваяСтраница(); // <---- а это что ????
выводы:
1 жесть
2. читайте сами свои тексты, а нам и своих хватает.
Функция ВывестиРазделБланка(Чистовик, Черновик = "", Подвал, НомСтрБланка)
Чистовик.ВывестиСекцию(Подвал);
Чистовик.НоваяСтраница(); // <---- а это что ????
выводы:
1 жесть
2. читайте сами свои тексты, а нам и своих хватает.
(9,11) А Вы то тут при чём? кто прогера увольнял, тот пускай и правит(или это Вы и есть?), или поручает дело прфессионалу. Вы же не леэете в электрощит, если свет погас и гарью пахнет. Можно, конечно, посмотреть план электропроводки, подготовить инструменты, немного учебники почитать(хотя-бы чтоб пассатижи с кусачками не путать), и только потом попробовать сделать самим, если близко нет электрика, но желательно с электриком консультантом на телефоне.
Вывод на новую страницу производится с помощью метода "НоваяСтраница()" или вставкой перевода страницы в макет печатного документа. Анализируйте в каких местах вызывается перевод на новую страницу, меняйте логику на необходимую Вам. Готовое решение можно поискать в разделе "Заказы" :)
Для печати на 2-х страницах (если не влезет, то больше), меняем следующим образом:
В процедуре Печать() после строк
// Выводим раздел №1
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел1"), Таб, Черновик, СекцияПодвала);
закомментировать след.строку:
//ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
После строки
// Выводим раздел №2
убираем последний параметр в ВывестиСекциюПостранично вот так:
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел2"), Таб, Черновик, СекцияПодвала);
после следующей строки КонецЕсли; вставляем:
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
и после строки
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел4"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
закомментировать след.строку:
//ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 3);
и все.
В процедуре Печать() после строк
// Выводим раздел №1
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел1"), Таб, Черновик, СекцияПодвала);
закомментировать след.строку:
//ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
После строки
// Выводим раздел №2
убираем последний параметр в ВывестиСекциюПостранично вот так:
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел2"), Таб, Черновик, СекцияПодвала);
после следующей строки КонецЕсли; вставляем:
ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 2);
и после строки
ВывестиСекциюПостранично(Таб.ПолучитьСекцию("Раздел4"), Таб, Черновик, СекцияПодвала, ЗалоговокРаздела);
закомментировать след.строку:
//ЗалоговокРаздела = ВывестиРазделБланка(Таб, Черновик, СекцияПодвала, 3);
и все.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот