Общий модуль УчетСреднегоЗаработка процедура
в блоке 3. необходимо переписать код
Процедура УдалитьНачисленияРВизИсключаемыхВПериодКомандировки(МенеджерВременныхТаблиц, УчитывающиеСумму = Ложь, УчитывающиеВремя = Ложь) Экспорт
ИмяТаблицы = ИмяТаблицыНачисленияИсключаемыеВПериодКомандировки();
Если Не ЗарплатаКадры.ВТСуществует(МенеджерВременныхТаблиц, ИмяТаблицы) Тогда
Возврат;
КонецЕсли;
// 1. Получим начисления, которые НЕ нужно исключать в период командировки (настраиваются пользователем).
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияНеисключаемыеВПериодКомандировки.Начисление КАК Начисление
|ИЗ
| РегистрСведений.УчетРВ_НачисленияНеисключаемыеВПериодКомандировки КАК НачисленияНеисключаемыеВПериодКомандировки";
Если УчитывающиеСумму Тогда
Запрос.Текст = Запрос.Текст + " ГДЕ НачисленияНеисключаемыеВПериодКомандировки.УчитыватьСумму";
ИначеЕсли УчитывающиеВремя Тогда
Запрос.Текст = Запрос.Текст + " ГДЕ НачисленияНеисключаемыеВПериодКомандировки.УчитыватьВремя";
КонецЕсли;
ТаблицаНачисленияНастроенныеПользователем = Запрос.Выполнить().Выгрузить();
// 2. Получим начисления из типового запроса, которые программа исключит в период командировки.
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| *
|ИЗ
| ВТИсключаемыеВПериодКомандировки КАК ИсключаемыеВПериодКомандировки";
ТаблицаНачисленияИсключаемыеВПериодКомандировки = Запрос.Выполнить().Выгрузить();
// 3. Удалим в типовом запросе начисления, которые пользователь не хочет исключать в период командировки.
Для каждого Строка Из ТаблицаНачисленияНастроенныеПользователем Цикл
// ++ ЦепелевСВ
//Если в ТаблицаНачисленияИсключаемыеВПериодКомандировки много записей, необходимо удалить все записи
//СтрокаТаблицыЗначений = ТаблицаНачисленияИсключаемыеВПериодКомандировки.Найти(Строка.Начисление, "ВидРасчета");
//Если СтрокаТаблицыЗначений <> Неопределено Тогда
// ТаблицаНачисленияИсключаемыеВПериодКомандировки.Удалить(СтрокаТаблицыЗначений);
//КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("ВидРасчета", Строка.Начисление);
СтрокиТаблицыЗначений = ТаблицаНачисленияИсключаемыеВПериодКомандировки.НайтиСтроки(СтруктураПоиска);
Для Каждого СтрокаТаблицыЗначений Из СтрокиТаблицыЗначений Цикл
ТаблицаНачисленияИсключаемыеВПериодКомандировки.Удалить(СтрокаТаблицыЗначений);
КонецЦикла;
// -- ЦепелевСВ 12.08.25
КонецЦикла;
// 4. Вернем скорректированный результат в типовой запрос.
ЗарплатаКадры.СоздатьВТПоТаблицеЗначений(МенеджерВременныхТаблиц, ТаблицаНачисленияИсключаемыеВПериодКомандировки, ИмяТаблицы, Истина);
КонецПроцедуры
Показать