0
- 19.11.2021 - 10:57
|
В общем модуле ВедомостьНаВыплатуЗарплатыРасширенный имеется такая процедура: Процедура СоздатьВТСотрудникиДляВедомостиПоШапке(МенеджерВре менныхТаблиц, ОписаниеОперации, ОтборСотрудников) Экспорт ИменаПромежуточныхВТ = Новый Массив; ИмяВТСотрудники = ""; // Отбор сотрудников по документам-основаниям. СоздатьВТСотрудникиДляВедомостиПоОснованиям(Менедж ерВременныхТаблиц, ОписаниеОперации, ИмяВТСотрудники); ИменаПромежуточныхВТ.Добавить(ИмяВТСотрудники); // Отбор сотрудников по организации и подразделению. СоздатьВТСотрудникиДляВедомостиПоМестуРаботы(Менед жерВременныхТаблиц, ОписаниеОперации, ОтборСотрудников, ИмяВТСотрудники); ИменаПромежуточныхВТ.Добавить(ИмяВТСотрудники); // Отбор по месту выплаты зарплаты. СоздатьВТСотрудникиДляВедомостиПоМестуВыплаты(Мене джерВременныхТаблиц, ОписаниеОперации, ОтборСотрудников, ИмяВТСотрудники); ИменаПромежуточныхВТ.Добавить(ИмяВТСотрудники); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ДатаДляКадровыхДанных", ОписаниеОперации.Дата); Запрос.Текст = "ВЫБРАТЬ | Сотрудники.Сотрудник КАК Сотрудник, | Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо, | &ДатаДляКадровыхДанных КАК Период |ПОМЕСТИТЬ ВТСотрудникиДляВедомости |ИЗ | #ВТСотрудники КАК Сотрудники"; Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ВТСотрудники", ИмяВТСотрудники); Запрос.Выполнить(); ЗарплатаКадры.УничтожитьВТ(МенеджерВременныхТаблиц , ИменаПромежуточныхВТ, Истина); КонецПроцедуры Она создает таблицу для заполнения ведомости. Как-то странно она работает. Казалось бы, в запрос должны передаваться все три ВТ, однако из-за строки (Запрос.Текст, "#ВТСотрудники", ИмяВТСотрудники); в запрос передается только последняя. Сложилась такая ситуация, что сотрудник отбирается только по первой процедуре СоздатьВТСотрудникиДляВедомостиПоОснованиям(), но из-за того, что берется только последняя ВТ, результат запроса пустой. .Если закомментировать строки: //СоздатьВТСотрудникиДляВедомостиПоМестуРаботы(Менед жерВременныхТаблиц, ОписаниеОперации, ОтборСотрудников, ИмяВТСотрудники); //ИменаПромежуточныхВТ.Добавить(ИмяВТСотрудники); /СоздатьВТСотрудникиДляВедомостиПоМестуВыплаты(Мене джерВременныхТаблиц, ОписаниеОперации, ОтборСотрудников, ИмяВТСотрудники); //ИменаПромежуточныхВТ.Добавить(ИмяВТСотрудники); то запрос отрабатывается нормально. Что это, косяк писателей из 1С, или я чего-то недопонимаю? | |
| Интернет-форум Краснодарского края и Краснодара |