Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Доработка документа Перечисление НДФЛ в бюджет РФ

  • Добавить свою публикацию
  • для этого требуется регистрация

Клюев В.В.

http://prof1c.kklab.ru

Доработка документа «Перечисление НДФЛ в бюджет РФ»

 Обычное приложение, УПП ред 1.3

 

Добрый день!

 

Очень много было вопросов по поводу заполнения документа Перечисление НДФЛ в бюджет, много было и споров о том, как всё таки правильно заполнять этот документ (кстати, о том как его заполнять можно почитать на ИТС), но речь сейчас не об этом.

 Со стороны программиста – вопросов не возникает – документ работает и делает свою работу – распределяет по сотрудникам суммы выплаченного НДФЛ по платежному поручению, но о том, как этот документ реализован – и как его неудобно заполнять догадываются только те программисты, которые сами попробовали его заполнить.

 

В целях помощи пользователю – давайте разработаем небольшой функционал, помогающий сделать подбор платежных поручений более удобным, ведь пользователю необходимо четко помнить – какое платежное поручение и когда оно прошло, переходить в журнал документов платежные поручения, для
того чтобы взять оттуда – номер, дату и сумму документа, неудобство это еще большее – если эти операции выполняют разные пользователи – один из которых
отвечает за расчетный блок, а другой за формирование платежных поручений и за их выплату. Доработаем документ – в части удобного подбора платежных
поручений и заполнения необходимых реквизитов.

 

Пример будет основываться на конфигурации УПП ред 1.3. Для практических испытаний) – сделайте копию информационной базы – и все эксперименты проводите с ней.

 

Итак, запустите конфигуратор, откройте конфигурацию (если она не открыта), в списке объектов найдите ветку документы – и в ней документ ПеречислениеНДФЛвБюджет, дважды щелкните мышью для его открытия и перейдите на вкладку Формы.

 

 

Будем дорабатывать форму ФормаДокумента и добавим еще одну форму – «ФормаПодбораПП».

 

Сейчас выберите форму- ФормаДокумента и откройте ее(двойной клик).

 

Теперь на панели инструментов – найдите кнопку «Вставить элемент управления», если ее нет – правая клавиша мыши в свободном пространстве на панели инструментов и установите галочку – на Редактор форм.

 

 

В окне Вставка элемента управления выберите Кнопка и имя «КнопкаЗаполнитьПП» и заголовок «Подобрать п/п», и нажмите кнопку . Теперь разместите на зеленом поле после  нашу кнопку, просто подведя курсор и щелкнув мышью в этом пространстве.

 

 

На этом пока закончим с формой, но мы к ней вернемся позже для написания алгоритма для нашей кнопки, а сейчас вернитесь в окно со свойствами объекта документа «ПеречислениеНДФЛвБюджет», на вкладку Формы и добавьте новую форму.

 

 

Назовем форму – «ФормаПодбораПП», тип формы – произвольная и «Готово».

 

Теперь давайте разместим на нашей форме элементы управления, а именно таблицу значений, для этого используйте кнопку «Вставить элемент управления», выберите «Табличное поле» и имя «СписокПП», тип – таблица значений.

 

 

А теперь также просто щелкните кнопкой мыши на форме для вставки таблицы значений. Разместите ее в начале формы и растяните границы до синей пунктирной линии формы.

 

 

Теперь нам необходимо добавить колонки в которые мы будем выводить запросом список платежных поручений. Для этого над полем СписокПП нажмите правую клавишу мыши и выберите пункт Добавить колонку, нам необходимо добавить две колонки – платежное поручение и дата.

 

 

Так необходимо проделать 2-раза, для получения двух колонок Колонка1, Колонка2. Теперь давайте изменим названия колонок и их имена. Для этого дважды щелкните по колонке Колонка1 для вывода её свойств и назовем ее как НаименованиеПП; тип значения – ДокументСсылка.ПлатежноеПоручениеИсходящее,
а вторую Сумма; тип значения число 10,2.

 

 

Для более удобного просмотра списков документов – можете расширить длину поля с наименованием платежного поручения.

Осталось добавить кнопку – для выбора платежного поручения – «Выбрать» внизу панели щелкните дважды на пустой значок кнопки 

и напишите имя и Текст кнопки -> «Выбрать»

 

 

Теперь давайте перейдем в модуль нашей формы (ФормаПодбораПП) и объявим глобальную переменную «ЗначенияПараметров» для
передачи параметров в форму.

 

 

Перем ЗначенияПараметров Экспорт; Процедура

ОсновныеДействияФормыВыбрать(Кнопка) 
// Вставить содержимое обработчика. 

КонецПроцедуры

 

 

Пока закончим работу с нашей формой, мы еще вернемся к ней, а пока давайте откроем нашу форму документа и напишем код для кнопки Подобрать п/п, для этого откройте Модуль формы «ФормаДокумента» и найдите нашу пустую процедуру «КнопкаЗаполнитьППНажатие». Давайте здесь напишем код, который по
нажатию кнопки – будет открывать форму подбора платежных поручений и нам необходимо передавать некоторые параметры в нашу форму:

 

Процедура КнопкаЗаполнитьППНажатие(Элемент) 
// Вставить содержимое обработчика. 

ЗначенияПараметров = Новый Структура(); 
ЗначенияПараметров.Вставить("Дата",Дата); 
ЗначенияПараметров.Вставить("ОКАТО",ОКАТО_КПП); 
Форма = ПолучитьФорму("ФормаПодбораПП"); 
Форма.ЗначенияПараметров = ЗначенияПараметров; 
ВозвращаемоеЗначение = Форма.ОткрытьМодально(); 
 
Если ВозвращаемоеЗначениеНеопределено Тогда 
   ПлатежноеПоручение = ВозвращаемоеЗначение.ПлатежноеПоручение; 
   ПлатежноеПоручениеНомер = ПлатежноеПоручение.Номер; 
   ПлатежноеПоручениеДата  = ПлатежноеПоручение.Дата; 
   ОКАТО                   = ПлатежноеПоручение.КодОКАТО; 
   КПП                     = ПлатежноеПоручение.КПППлательщика; 

   ДатаПлатежа = ПлатежноеПоручение.Дата; 
   Сумма = ПлатежноеПоручение.СуммаДокумента; 
КонецЕсли; 

КонецПроцедуры  

 

Этот код заполняет по переданному документу «ПлатежноеПоручениеИсходящее» данные по платежному поручения в нашей форме документа.

 

Теперь еще раз возвращаемся в форму подбора платежного поручения, переходим в модуль и пишем следующий текст, предварительно проверьте есть ли у кнопки выбрать – событие при нажатии на эту кнопку (в модуле увидите пустую процедуру ОсновныеДействияФормыВыбрать). Выберем предопределенную процедуру ПриОткрытии и напишем следующий код:

 

 

 

Процедура ПриОткрытии() 

КодБК = Новый СписокЗначений; 
КОДБК.Очистить(); 
КОДБК.Добавить("18210102021011000110"); //2011 г. 
КодБК.Добавить("18210102010011000110"); //2012 г.   
ПредставлениеМесяца = Формат(ЗначенияПараметров.Дата,"ДФ='ММ'"); 
ПредставлениеГода=Формат(ЗначенияПараметров.Дата,"ДФ='yyyy'"); 
Представление="МС."+ПредставлениеМесяца+"."+ПредставлениеГода;   

Запрос = Новый Запрос();   
Запрос.Текст = "ВЫБРАТЬ 
 | ПлатежноеПоручениеИсходящее.СуммаДокумента как Сумма, 
 | ПлатежноеПоручениеИсходящее.Ссылка как НаименованиеПП 
 |ИЗ 
 | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее 
 | ГДЕ 
 | ПлатежноеПоручениеИсходящее.КодБК В (&КОДБК) 
 | И ПлатежноеПоручениеИсходящее.ПоказательПериода = &Представление "; 

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


КонецПроцедуры 

 

Данным кусочком кода мы заполняем в зависимости от передаваемой даты документа – список платежных поручений. Единственная проблема – коды бюджетной классификации, которые при случае их смены придется переписывать или добавлять в список значений.

 

При желании – можете улучшить код и подбирать платежки в зависимости от выбранного ОКАТО/КПП в форме документа, а также учитывать уже заполненные ранее документы перечисление ндфл в бюджет и отфильтровывать платежные поручения которые поучаствовали в выборе.

 

Также мы может заполнять данные ОКАТО/КПП из самого платежного поручения, переменные с окато, кпп уже объявлены их нужно объединить в строку и записать значение в форму.

  

Теперь нам не хватает единственной детали – передавать документ в нашу форму, тот документ который выберет пользователь в нашей форме подбора платежных поручений.

 

Давайте напишем код для кнопки «Выбрать», событие при нажатии на кнопку должно быть уже у вас сформировано

 

 

Процедура ОсновныеДействияФормыВыбрать(Кнопка) 
  // Вставить содержимое обработчика. 

КонецПроцедуры 

 

 

Итак:

 

 

 

 

 Процедура ОсновныеДействияФормыВыбрать(Кнопка)   
  ТекСтрока = ЭлементыФормы.СписокПП.ТекущаяСтрока;   

  Параметры = Новый Структура(); 
  Параметры.Вставить("ПлатежноеПоручение",ТекСтрока.НаименованиеПП);   

  ЭтаФорма.Закрыть(Параметры);   

КонецПроцедуры 

 

 

При завершении экспериментов не забываем обновить конфигурацию – клавиша (F7).

 




 
0
Читайте также
Доработка 1С
Доработка 1С для стандартных конфигураций
Заполнения предоплат и отгрузок в документах: Поступления товаров, реализациях и платежках
Правильная работа типового отчета "Дебиторская задолженность по срокам долга"
Перенос документов из ТИС в Бух 7.7
Решение проблем, возникающих при переносе из ТИС в Бух7.7?
Разработки
Заполнения предоплат и отгрузок в документах: Поступления товаров, реализациях и платежках
Обработка по автоматическому заполнению предоплат и авансов в документах
3-НДФЛ для ЗУПа
ЗУП отчет 3-НДФЛ по сотрудникам
Еще от автора
≡ к списку статей