0. IgorXml 609 25.05.18 16:42 Сейчас в теме

Представления в запросах. ЗУП

О пользе функции ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(Запрос.Текст, ). Где есть запрос-пустышка, например, "Представления_КадровыеДанныеСотрудников.
Тестировано в Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.4.171) на платформе 8.3.12.1412. В этой конфигурации я насчитал 66 макетов в различных отчетах, где применяется этот механизм, в которых можно получить до 220 различных данных о сотруднике. Если доработать типовой код, то возможно этот список добавить. В моем примере я нахожу данные: Организация, Сотрудник, ФизЛицо, ФИОПолные, ДатаРождения, МестоРождения, ДокументПредставление, АдресПоПропискеПредставление, АдресМестаПроживанияПредставление, ДатаПриема, Должность, ДатаУвольнения,ТрудовойДоговорДата,ТрудовойДоговорНомер, Подразделение.

Перейти к публикации

Лучшие комментарии
1. xrrg 194 30.05.18 10:10 Сейчас в теме
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = 
"ВЫБРАТЬ
|	&Сотрудник Сотрудник,
|	&Период Период
|ПОМЕСТИТЬ ВТСотрудники";
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Запрос.УстановитьПараметр("Период", Период);

КоллекцияПолей = "Организация, Сотрудник, ФизическоеЛицо, ФИОПолные, ДатаРождения, МестоРождения, ДокументПредставление, АдресПоПропискеПредставление, АдресМестаПроживанияПредставление, ДатаПриема, Должность, ДатаУвольнения,ТрудовойДоговорДата,ТрудовойДоговорНомер, Подразделение";

ОписательТаблицыОтборов = КадровыйУчет.ОписаниеВременнойТаблицыОтборовСотрудников(
	"ВТСотрудники",
	"Сотрудник",
	"Период");

ЗапросКадровыеДанные = КадровыйУчет.ЗапросВТКадровыеДанныеСотрудников(Истина, ОписательТаблицыОтборов, КоллекцияПолей);

ЗарплатаКадрыОбщиеНаборыДанных.ОбъединитьЗапросы(Запрос, ЗапросКадровыеДанные);

Запрос.Выполнить();
Показать
JohnyDeath; IgorXml; +2 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. xrrg 194 30.05.18 10:10 Сейчас в теме
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = 
"ВЫБРАТЬ
|	&Сотрудник Сотрудник,
|	&Период Период
|ПОМЕСТИТЬ ВТСотрудники";
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Запрос.УстановитьПараметр("Период", Период);

КоллекцияПолей = "Организация, Сотрудник, ФизическоеЛицо, ФИОПолные, ДатаРождения, МестоРождения, ДокументПредставление, АдресПоПропискеПредставление, АдресМестаПроживанияПредставление, ДатаПриема, Должность, ДатаУвольнения,ТрудовойДоговорДата,ТрудовойДоговорНомер, Подразделение";

ОписательТаблицыОтборов = КадровыйУчет.ОписаниеВременнойТаблицыОтборовСотрудников(
	"ВТСотрудники",
	"Сотрудник",
	"Период");

ЗапросКадровыеДанные = КадровыйУчет.ЗапросВТКадровыеДанныеСотрудников(Истина, ОписательТаблицыОтборов, КоллекцияПолей);

ЗарплатаКадрыОбщиеНаборыДанных.ОбъединитьЗапросы(Запрос, ЗапросКадровыеДанные);

Запрос.Выполнить();
Показать
JohnyDeath; IgorXml; +2 Ответить
2. IgorXml 609 30.05.18 15:22 Сейчас в теме
(1) Если данные переносились, то твой запрос для получения списка сотрудников правильно. Но может проще обратиться прямо к "РегистрСведений.ТекущиеКадровыеДанныеСотрудников"?
3. IgorXml 609 30.05.18 16:38 Сейчас в теме
(2) это ошибка.
(1) Недооценил код. Спасибо. Код полностью заменяет весь код в публикации. Лишь бы 1С завтра не исправил функционал :)
Для себя добавил бы две строки:
    //Запрос.Выполнить();
	Результат = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
	ТаблицаЗначений_20 =   Результат[19].Выгрузить();	
4. Serj1C 477 05.06.18 08:34 Сейчас в теме
(3) Из Менеджера Временных Таблиц теперь можно получать таблицы по наименованию, а не по индексу.
А то опасно так, с обновлением количество запросов представления изменится с вероятностью 146% и ваш код станет неработоспособным.
корум; AntonH851; IgorXml; +3 Ответить
7. vat-74 166 07.06.18 00:03 Сейчас в теме
(1)Звездочка в КоллекцияПолей для примера стоит? т.к. с ней вызывается исключение.
ОбщийМодуль.КадровыйУчетБазовый.Модуль(5615)}: Среди кадровых данных сотрудников нет данных с именем "*"
ВызватьИсключение ТекстСообщенияИсключения;
5. ccserg 37 06.06.18 09:48 Сейчас в теме
а что это за цифра 19 ?
ТаблицаЗначений_20 = Результат[19].Выгрузить();
6. IgorXml 609 06.06.18 10:30 Сейчас в теме
(5) Самому так больше нравится :)
    //Запрос.Выполнить();
	Результат = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
	//ТЗ_20 =   Результат[19].Выгрузить();
	ТЗ_ВТКадровыеДанныеСотрудников =  Запрос.МенеджерВременныхТаблиц.Таблицы.Найти("ВТКадровыеДанныеСотрудников").ПолучитьДанные().Выгрузить();
8. user620235_m_ginger 01.02.19 12:06 Сейчас в теме
я в отладчике пишу
Запрос.МенеджерВременныхТаблиц.Таблицы.ПОЛУЧИТЬ("ВТКадровыеДанныеСотрудников").ПолучитьДанные().Выгрузить();
Есть ли разница в этих двух методах (Найти и Получить)?
При этом запрос не обязательно выполнять с промежуточными данными - из менеджера он и при Запрос.Выполнить() спокойно все данные вытаскивает.
9. IgorXml 609 04.02.19 09:59 Сейчас в теме
(8) с промежуточными данными , потом Запрос.Выполнить() и потом к менеджеру. Это не связано. Вы правы. Исправлю.
А вопрос пока не проверил.
10. AMS_Guskov_VL 28.09.19 13:22 Сейчас в теме
Оп. Как раз сейчас пришел к мысли, что надо разобраться с этим механизмом. Подскажет может кто в треде, по поводу дополнения такого "запроса"? Написал свой РС по всем канонам зуп (с разграничением прав в РЛС, периодической таблицей и т.д.) и встал вопрос, что эти данные нужно показывать в отчетах (почти всех кадровых). Хотеся описание мануал или записки о том как такая интеграция реализуется.
11. IgorXml 609 28.09.19 21:39 Сейчас в теме
(10) свой "параметр" чтобы типовое прелставление в запросах вытаскивал?
12. AMS_Guskov_VL 30.09.19 03:32 Сейчас в теме
(11) "параметр", по которому БСП сама зацепит мой метод ЗапросВТРнгистрСведений в обработке ИнициализироватьОтчет() и добавить ВТ с моим регистром и добавит нужное поле в конечный набор данных.
13. IgorXml 609 30.09.19 09:40 Сейчас в теме
(12) Надо править код в общем модуле. Глобальный поиск по строке "Представления_" запустить. И там добавлять. У меня есть в коде такое. Если интересно могу позднее выложить.
14. AMS_Guskov_VL 30.09.19 11:09 Сейчас в теме
15. IgorXml 609 30.09.19 12:16 Сейчас в теме
(14) 1. В общем модуле "ЗарплатаКадрыОбщиеНаборыДанныхБазовый" Функция ПолучитьТекстОбщегоЗапроса( :
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
 	   |	ДАТАВРЕМЯ(1, 1, 1) КАК Период,
            |	...
		|	ЗНАЧЕНИЕ(Справочник.НАШСПРАВОЧНИК.ПустаяСсылка) КАК НАШСПРАВОЧНИК,
            |	...
		|	0 КАК ПриоритетРабочегоМеста
		|ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудниковАнализНачисленийИУдер­жаний
		|ГДЕ
		|	""ТолькоРазрешенные"" = ИСТИНА
		|;
		|
Показать
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день


Программист 1С
Белгород
зарплата от 50 000 руб. до 60 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 50 000 руб. до 80 000 руб.
Полный день