Создать документ Согласование Сотрудника на основе документа Начисление Зарплаты

1. shemyl696 17.05.23 15:18 Сейчас в теме
Всем Добрый день. Есть документ Начисление ЗП и документ СогласованиеССотрудником(реквизит ДокументОснование-ссылка на документ начисление ЗП). Сделала две табличные части Сотрудники и там и там. Реквизиты- Сотрудник и ОзнакомлениеСотрудника(булево). В общем модуле написала процедуру При создании документа Начисление зп создается автоматом документ Согласование, но чет не создается(

Процедура СогласованиеССотрудником()
Согласования = Новый ТаблицаЗначений;
Согласования = Сотрудники.Скопировать();
Согласования.Очистить();

//Создаем документ Согласование с Сотрудником
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СогласованиеССотрудником.Ссылка
|ИЗ
| Документ.СогласованиеССотрудником КАК СогласованиеССотрудником
|ГДЕ
| СогласованиеССотрудником.ПометкаУдаления = &ЛОЖЬ
| И СогласованиеССотрудником.ДокументОснование = &ДокументОснование";
Запрос.УстановитьПараметр("ДокументОснование", ЭтотОбъект.Ссылка);
ТЗСогласования = Запрос.Выполнить().Выгрузить();
Если ТЗСогласования.Количество() > 0 Тогда
НовоеСогласование = ТЗСогласования[0].Ссылка.ПолучитьОбъект();
Иначе
НовоеСогласование = Документы.СогласованиеССотрудником.СоздатьДокумент();

НовоеСогласование.Дата =ЭтотОбъект.Дата;
НовоеСогласование.Сотрудники.Очистить();
Для Каждого стр Из Согласования Цикл
НоваяСтрока = НовоеСогласование.Сотрудники.Добавить();
НоваяСтрока.Сотрудник = Стр.Сотрудник;
//ОбработкаТабличныхЧастей.ПриДобавленииСотрудника(НоваяСтрока, ТЗСогласования);
КонецЦикла;

Если ЭтотОбъект.Ссылка.ПометкаУдаления = Истина Тогда
Попытка
НовоеСогласование.Записать(РежимЗаписиДокумента.ОтменаПроведения);
НовоеСогласование.ПометкаУдаления = Истина;
Сообщить("Документ " + НовоеСогласование + " помечен на удаление!!!");
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;
Иначе
//НовоеСогласование.Записать(РежимЗаписиДокумента.Проведение);
НовоеСогласование.Записать();
Сообщить("Записан документ " + ТЗСогласования);
КонецЕсли
КонецЕсли;
КонецПроцедуры
По теме из базы знаний
Найденные решения
6. petleon 7 18.05.23 08:48 Сейчас в теме
(3) Значит эту процедуру надо вызывать в обработчике "ПриЗаписи" документа Начисление ЗП.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. petleon 7 17.05.23 16:29 Сейчас в теме
(1)
В общем модуле написала процедуру При создании документа Начисление зп создается автоматом документ Согласование
- подписка на событие ПриЗаписиДокумента Начисление ЗП? Процедура СогласованиеССотрудником где находится?
Какая платформа? Какая конфигурация?
3. shemyl696 17.05.23 21:13 Сейчас в теме
(2) Процедура Согласование находится в модуле объекта Начисления ЗП
6. petleon 7 18.05.23 08:48 Сейчас в теме
(3) Значит эту процедуру надо вызывать в обработчике "ПриЗаписи" документа Начисление ЗП.
7. shemyl696 18.05.23 09:18 Сейчас в теме
(6)Спасибо) Это помогло))
4. RustamZz 17.05.23 21:50 Сейчас в теме
(1)
Согласования.Очистить();
и дальше
Для Каждого стр Из Согласования Цикл
надеюсь понимаете что делаете?
5. shemyl696 18.05.23 08:35 Сейчас в теме
(4)Исправила, но не особо помогло
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот