gifts2017

Расчетная ведомость организаций с подписью (СКД+Макет)

Опубликовал Александр Майнагашев (dedicated) в раздел Отчеты - Бухгалтерские

Стандартный отчет "Расчетная ведомость организаций" в котором добавлен вывод подписи снизу таблицы через дополнительный макет.

Потребовалось изменить стандартную форму Расчетной ведомости Организации, а именно добавить подпись Согласовано. Проблема в том, что стандартная ведомость формируется с помощью СКД, поэтому чтобы добавить в макет свою подпись, необходимо создать свой дополнительный макет и вывести его после формирования данных СКД, что и реализовано в отчете. 

Скачать файлы

Наименование Файл Версия Размер
Отчет.РасчетнаяВедомостьОрганизаций 199
.erf 92,19Kb
21.10.13
199
.erf 92,19Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Макас (makas) 25.02.13 14:43
Потребовалось изменить стандартную форму Расчетной ведомости Организации, а именно добавить подпись Согласовано.


Неправда, стандартная ведомость утверждена Госкомстатом, или приказом по предприятию.

Лучше бы сделали разбиение по датам колонки с выплатой денег и убрали бы пустые колонки из начислений(типа отпуск за свой счет)
2. Александр Майнагашев (dedicated) 26.02.13 09:42
Неправда, стандартная ведомость утверждена Госкомстатом, или приказом по предприятию.

В вашей же фразе есть ответ для чего это нужно.

Лучше бы сделали разбиение по датам колонки с выплатой денег..

Цель, как было написано, продемонстрировать как добавлять свои подписи к таблице сформированной системой компоновки данных (СКД). А ваша задача решается в настройках Отчета(без использования Конфигуратора), путем добавления группировки "Месяц За который Платят".

и убрали бы пустые колонки из начислений(типа отпуск за свой счет)

Не понял тут. Какие конкретно колонки? Если вам не нужны какие то колонки, можете отключить их в СКД.
3. Владимир Христофоров (hristoff) 19.10.13 14:56
А как сделать чтобы информация в подпись бралась с выбранного учреждения ?
Тобишь информация о руководителе нужна.
4. Александр Майнагашев (dedicated) 21.10.13 14:00
(3) hristoff, Добавил в отчет автоматическую подстановку ответственного лица (Бухгалтер) при желании можно поменять на то, что вам нужно, например Руководитель. Для этого в процедуре "ОбновитьОтчет", модуля формы, поправить строку 65:
Пока НЕ ВыборкаДетальныеЗаписи.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер Цикл

На
Пока НЕ ВыборкаДетальныеЗаписи.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.Руководитель Цикл


Чтобы не качать целиком обработку можете поменять код всей процедуры ОбновитьОтчет:
Процедура ОбновитьОтчет() Экспорт
	 	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

	Запрос.УстановитьПараметр("ДатаСреза", ТекущаяДата());

	Результат = Запрос.Выполнить();

	ВыборкаДетальныеЗаписи = Результат.Выбрать();
    	Пока НЕ ВыборкаДетальныеЗаписи.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер Цикл
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
		//Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(ОтвЛица.ГлавныйБухгалтер, ТекущаяДата(),);
		  
		  ВыборкаДетальныеЗаписи.Следующий();	  
     	КонецЦикла;
          
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    Бухгалтер    = ВыборкаДетальныеЗаписи.Физлицо.Наименование;
	
	СостояниеМодифицированности = Модифицированность;
	Если ПанельНастроекНарисована <> Истина Тогда
		ОбновлениеОтображения();
	КонецЕсли;
	ТиповыеОтчеты.ЗагрузитьВРеквизитЗначенияНастроекПанелиПользователя(ЭтотОбъект, ЭтаФорма);
	ПараметрыПанели  = ТиповыеОтчеты.ПолучитьПараметрыПанелиПользователяОбъекта(ОтчетОбъект);
	ЗначенияНастроек = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ОтчетОбъект);
	Отказ = ложь;
	ТиповыеОтчеты.ПроверитьЗначенияПараметров(ЗначенияНастроек, ПараметрыПанели, Отказ);
	Если Отказ тогда
		Возврат;
	КонецЕсли;
	СформироватьОтчет(ЭлементыФормы.Результат, ДанныеРасшифровки);
	
	// Вывод ФИО руководителя
	Макет = ПолучитьМакет("МакетПодписи");
    ОбластьВывести = Макет.ПолучитьОбласть("Подпись");
	
	ОбластьВывести.Параметры.ФИОГлБух = Бухгалтер;
	
    ЭлементыФормы.Результат.Вывести(ОбластьВывести);
	// Конец вывод Руководителя
	
	УправлениеОтчетами.УстановитьКолонтитулыПоУмолчанию(ЭлементыФормы.Результат, Заголовок, Строка(ПараметрыСеанса.ТекущийПользователь));
	Модифицированность = СостояниеМодифицированности;
КонецПроцедуры
...Показать Скрыть
5. Александр Лыткин (TrinitronOTV) 21.10.13 14:51
спасибо огромное, на вашем отчете разобрался как можно добавить подписи внизу отчета, построенного на СКД
6. Владимир Христофоров (hristoff) 21.10.13 16:18
(4) dedicated,
спасибо на примере добавил обе подписи и буха и рука.

Но вот загадка именно в руководителе
Перечисления.ОтветственныеЛицаОрганизаций.Руководитель


получается руководитель не тот что нужно вернее для всех учреждений одного и тогоже ставит. А хотя в настройках у каждого учреждения свой.

может где чего в настройках ?
7. Александр Майнагашев (dedicated) 22.10.13 06:34
(6) hristoff,
Вариант не самого элегантного решения такой:

Поменяйте код в начале процедуры ОбновитьОтчет, начиная от строки с текстом: //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
до:
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Так же не забудьте заменить на название своей организации в условии в цикле Рога и копыта. (кавычки в названии прописываются так: ""Текст"")

	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

	Запрос.УстановитьПараметр("ДатаСреза", ТекущаяДата());

	Результат = Запрос.Выполнить();

	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
	 Если	
		( ВыборкаДетальныеЗаписи.ОтветственноеЛицо =                      Перечисления.ОтветственныеЛицаОрганизаций.Руководитель) И
		( ВыборкаДетальныеЗаписи.Организация = "ОАО ""Рога и копыта""") Тогда
		   Руководитель = ВыборкаДетальныеЗаписи.Физлицо.Наименование;
	 КонецЕсли;	  
    КонецЦикла;
          
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
...Показать Скрыть
8. Владимир Христофоров (hristoff) 22.10.13 14:59
(7) dedicated,
а если учреждений много в базе как быть ?
Судя по коду в данном случае в переменную Руководитель попадут только данные из указанно организации.
9. Александр Майнагашев (dedicated) 23.10.13 06:26
(8) hristoff,
Да, вы правы, но, чтобы сделать возможность сравнения с выбранной организацией нужно обратиться к полю, которое создается динамически из настроек типового отчета. Нужно время, чтобы разобраться как это сделать. Альтернативный вариант, пока, это добавить на форму свое поле Организация со списком организаций, и добавить в запрос параметр &Организация.
10. Владимир Христофоров (hristoff) 23.10.13 09:23
(9) dedicated,
можете не заморачиватся мне просто интересна реализация в самом коде.
нам достаточно поля с главным бухгалтером. И за это спасибо.
11. Александр Майнагашев (dedicated) 23.10.13 15:14
Пожалуйста. Мне самому интересно как это делается, всякое бывает, может пригодится когда нибудь.
12. Светлана Юсубуллина (Swetlana) 13.01.14 10:18
У меня вопрос - как можно поменять шапку. Бухгалтеру не нравится что под названием Расчетная ведомость стоят отборы вида
"Период: Декабрь 2013 г.
Группировки строк: Организация; Подразделение организации; Сотрудник;
Группировки колонок: Имя вида расчета;
Показатели: Сумма;
Отбор: Организация Равно ""

Отключить не получилось их, хотя в СКД в настройках вывод этих полей запретила

и добавление своего названия тоже не получается, делала так

Макет = ПолучитьМакет("МакетПодписи");
ОбластьВывести = Макет.ПолучитьОбласть("Шапка");
ЭлементыФормы.Результат.Вывести(ОбластьВывести);

СформироватьОтчет(ЭлементыФормы.Результат, ДанныеРасшифровки);

Посмотрела по коду, Результат очищается в ОМ, но как извернуться непонятно
13. Александр Майнагашев (dedicated) 15.01.14 06:48
Дело в том, что в этом отчете используется СКД из типового отчета, который встроен в конфигурацию. Так как СКД при выводе в табличное поле "Результат", основной формы, предварительно его очищает, то все что вы выведете до вывода данных СКД стирается. Эту задачу я сейчас пытаюсь решить.
14. Александр Майнагашев (dedicated) 15.01.14 09:36
Что-то примерное получилось. Только при этом группировки не работают.

Процедура ОбновитьОтчет() Экспорт
	
	
	//
 	// ПОДГОТОВКА ДАННЫХ ПО ОТВЕТСТВЕННЫМ ЛИЦАМ ОРГАНИЗАЦИИ
	 //

	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

	
	Запрос.УстановитьПараметр("ДатаСреза", ТекущаяДата());


	Результат = Запрос.Выполнить();

	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
	 Если	
		( ВыборкаДетальныеЗаписи.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер) И
		( ВыборкаДетальныеЗаписи.Организация.Наименование = Организация.Наименование) Тогда
		   Бухгалтер    = ВыборкаДетальныеЗаписи.Физлицо.Наименование;
	 КонецЕсли;	  
 КонецЦикла;
 //
 // КОНЕЦ ПОДГОТОВКИ ДАННЫХ ПО ОТВЕТСТВЕННЫМ ЛИЦАМ ОРГАНИЗАЦИИ
 //
 
   
	//
	// ВЫВОД СКД ЧЕРЕЗ ТПОВЫЕ ОТЧЕТЫ++++++++++++++++++++++++++++++++++++++++++++++++++++++­++++++++++++++++++++++++++++++++++++++
	//
	ТабДок = Новый ТабличныйДокумент;
	СостояниеМодифицированности = Модифицированность;
	Если ПанельНастроекНарисована <> Истина Тогда
		ОбновлениеОтображения();
	КонецЕсли;
	ТиповыеОтчеты.ЗагрузитьВРеквизитЗначенияНастроекПанелиПользователя(ЭтотОбъект, ЭтаФорма);
	ПараметрыПанели  = ТиповыеОтчеты.ПолучитьПараметрыПанелиПользователяОбъекта(ОтчетОбъект);
	ЗначенияНастроек = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ОтчетОбъект);
	Отказ = ложь;
	ТиповыеОтчеты.ПроверитьЗначенияПараметров(ЗначенияНастроек, ПараметрыПанели, Отказ);
	Если Отказ тогда
		Возврат;
	КонецЕсли;
	СформироватьОтчет(ТабДок, ДанныеРасшифровки);

	//
	// КОНЕЦ ВЫВОДА СКДА ЧЕРЕЗ ТИПОВОЙ ОТЧЕТ+++++++++++++++++++++++++++++++++++++++++++++++++++++++­++++++++++++++++++++++++++++++
	//
	

	//
	// Вывод Шапки - Заголовка
	//
	ЭлементыФормы.Результат.Очистить();
	Макет = ПолучитьМакет("МакетПодписи");
    ОбластьВывести = Макет.ПолучитьОбласть("Шапка");	
    ЭлементыФормы.Результат.Вывести(ОбластьВывести);
	
	//
	// ВЫВОД РЕЗУЛЬТАТА РАБОТЫ СКД (таблица значений) в поле табличного документа
	//		
    Секция = ТабДок.ПолучитьОбласть("R1:R"+ ТабДок.ВысотаТаблицы);
	Секция.Область("R1:R"+ ТабДок.ВысотаТаблицы).АвтоВысотаСтроки = Истина;
	
	ЭлементыФормы.Результат.Вывести(Секция);	
	// фиксируем заголовок таблицы (чтобы не прокручивалась)
    ЭлементыФормы.Результат.ФиксацияСверху = 7;
	ЭлементыФормы.Результат.ФиксацияСлева = 1;
	//
	// КОНЕЦ ВЫВОДА РЕЗУЛЬТАТА РАБОТЫ СКД
 
	//
	// Вывод ФИО руководителя
	//
	Макет = ПолучитьМакет("МакетПодписи");
    ОбластьВывести = Макет.ПолучитьОбласть("Подпись");	
	ОбластьВывести.Параметры.ФИОГлБух = Бухгалтер;	
    ЭлементыФормы.Результат.Вывести(ОбластьВывести);
	// Конец вывод Руководителя
	
	

	УправлениеОтчетами.УстановитьКолонтитулыПоУмолчанию(ЭлементыФормы.Результат, Заголовок, Строка(ПараметрыСеанса.ТекущийПользователь));
	Модифицированность = СостояниеМодифицированности;
КонецПроцедуры
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа