Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 июн 2024, 15:24

Дополнение готовой ТЗ

Автор Nosferatu112, 29 авг 2023, 12:43

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Есть ТЗ уже сформированая
ТЧПУ.png
Обработка формирует Док Премии и нужно что бы при нажатии кнопки сформировать док в ТЧ заполнялись новые созданые доки
Но сформированную ТЧ нельзя менять я попробовал сделать так
Для Каждого Н Из ИмяТаблицы Цикл
Если Н.Имя = "ЭффективностьГру" Тогда
Для Каждого С Из Объект.Эффективность Цикл

ЗапТЧ = ПромежТЧ.Добавить();
ЗапТЧ.Сотрудник = С.Сотрудник;
ЗапТЧ.ВидНачисления = С.ВидНачисления;
ЗапТЧ.Начисление = С.Начисление;
ЗапТЧ.Сумма = С.Сумма;
ЗапТЧ.Документ = С.Документ;
ЗапТЧ.Расшифровка = С.Расшифровка;
ЗапТЧ.Отметка = С.Отметка;

КонецЦикла;
Объект.Эффективность.Очистить();
Для Каждого Д Из Премии Цикл
Для Каждого С Из ПромежТЧ Цикл

ТЧ = Объект.Эффективность.Добавить();
ТЧ.Сотрудник = С.Сотрудник;
ТЧ.ВидНачисления = С.ВидНачисления;
ТЧ.Начисление = С.Начисление;
ТЧ.Сумма = С.Сумма;
Если С.Документ = Неопределено И С.Сотрудник = Д.Сотрудник Тогда
ТЧ.Документ = Д.Документ;
Иначе
ТЧ.Документ = С.Документ;
КонецЕсли;
ТЧ.Расшифровка = С.Расшифровка;
ТЧ.Отметка = С.Отметка;

КонецЦикла;
КонецЦикла;

Но ожидаемо получилась хрень из 87 строк стало 348 что и логично так как цикл в цикле
вот вопрос как бы подтянуть эти злощастные документы в ТЧ
Всех заранее благадорю!

Nosferatu112

Забыл уточнить, Очистить таблицу после нажатия кнопки сформировать док и вызвать процедуру которая изначально её заполняет людей не устраивает так как одна из таблиц формируеться 10 минут и это долго им нужно быстро,

Kvark5d

Nosferatu112, зачем очищать табчасть Эффективность? Зачем нужна промежуточная таблица?
На сколько я понял, в процессе обработки формируются Документы премия, данные по которым хранятся в таблице значений Премии.
Для Каждого Н Из ИмяТаблицы Цикл
        Если Н.Имя = "ЭффективностьГру" Тогда
// для каждой строки эффективность
Для Каждого С Из Объект.Эффективность Цикл
// ищем документ Премия
ПоискДокумента = Премии.НайтиСтроки(Новый Структура("Сотрудник",С.Сотрудник);
// если нашли заполняем
Если ПоискДокумента.Количество()<>0 Тогда
С.Документ = Поиск[0].Документ;
КонецЕсли;
КонецЦикла;
        КонецЕсли;
КонецЦикла;

Теги:

Похожие темы (2)

Рейтинг@Mail.ru

Поиск