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