Создать документ Согласование Сотрудника на основе документа Начисление Зарплаты
Всем Добрый день. Есть документ Начисление ЗП и документ СогласованиеССотрудником(реквизит ДокументОснование-ссылка на документ начисление ЗП). Сделала две табличные части Сотрудники и там и там. Реквизиты- Сотрудник и ОзнакомлениеСотрудника(булево). В общем модуле написала процедуру При создании документа Начисление зп создается автоматом документ Согласование, но чет не создается(
Процедура СогласованиеССотрудником()
Согласования = Новый ТаблицаЗначений;
Согласования = Сотрудники.Скопировать();
Согласования.Очистить();
//Создаем документ Согласование с Сотрудником
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СогласованиеССотрудником.Ссылка
|ИЗ
| Документ.СогласованиеССотрудником КАК СогласованиеССотрудником
|ГДЕ
| СогласованиеССотрудником.ПометкаУдаления = &ЛОЖЬ
| И СогласованиеССотрудником.ДокументОснование = &ДокументОснование";
Запрос.УстановитьПараметр("ДокументОснование", ЭтотОбъект.Ссылка);
ТЗСогласования = Запрос.Выполнить().Выгрузить();
Если ТЗСогласования.Количество() > 0 Тогда
НовоеСогласование = ТЗСогласования[0].Ссылка.ПолучитьОбъект();
Иначе
НовоеСогласование = Документы.СогласованиеССотрудником.СоздатьДокумент();
НовоеСогласование.Дата =ЭтотОбъект.Дата;
НовоеСогласование.Сотрудники.Очистить();
Для Каждого стр Из Согласования Цикл
НоваяСтрока = НовоеСогласование.Сотрудники.Добавить();
НоваяСтрока.Сотрудник = Стр.Сотрудник;
//ОбработкаТабличныхЧастей.ПриДобавленииСотрудника(НоваяСтрока, ТЗСогласования);
КонецЦикла;
Если ЭтотОбъект.Ссылка.ПометкаУдаления = Истина Тогда
Попытка
НовоеСогласование.Записать(РежимЗаписиДокумента.ОтменаПроведения);
НовоеСогласование.ПометкаУдаления = Истина;
Сообщить("Документ " + НовоеСогласование + " помечен на удаление!!!");
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;
Иначе
//НовоеСогласование.Записать(РежимЗаписиДокумента.Проведение);
НовоеСогласование.Записать();
Сообщить("Записан документ " + ТЗСогласования);
КонецЕсли
КонецЕсли;
КонецПроцедуры
Процедура СогласованиеССотрудником()
Согласования = Новый ТаблицаЗначений;
Согласования = Сотрудники.Скопировать();
Согласования.Очистить();
//Создаем документ Согласование с Сотрудником
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СогласованиеССотрудником.Ссылка
|ИЗ
| Документ.СогласованиеССотрудником КАК СогласованиеССотрудником
|ГДЕ
| СогласованиеССотрудником.ПометкаУдаления = &ЛОЖЬ
| И СогласованиеССотрудником.ДокументОснование = &ДокументОснование";
Запрос.УстановитьПараметр("ДокументОснование", ЭтотОбъект.Ссылка);
ТЗСогласования = Запрос.Выполнить().Выгрузить();
Если ТЗСогласования.Количество() > 0 Тогда
НовоеСогласование = ТЗСогласования[0].Ссылка.ПолучитьОбъект();
Иначе
НовоеСогласование = Документы.СогласованиеССотрудником.СоздатьДокумент();
НовоеСогласование.Дата =ЭтотОбъект.Дата;
НовоеСогласование.Сотрудники.Очистить();
Для Каждого стр Из Согласования Цикл
НоваяСтрока = НовоеСогласование.Сотрудники.Добавить();
НоваяСтрока.Сотрудник = Стр.Сотрудник;
//ОбработкаТабличныхЧастей.ПриДобавленииСотрудника(НоваяСтрока, ТЗСогласования);
КонецЦикла;
Если ЭтотОбъект.Ссылка.ПометкаУдаления = Истина Тогда
Попытка
НовоеСогласование.Записать(РежимЗаписиДокумента.ОтменаПроведения);
НовоеСогласование.ПометкаУдаления = Истина;
Сообщить("Документ " + НовоеСогласование + " помечен на удаление!!!");
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;
Иначе
//НовоеСогласование.Записать(РежимЗаписиДокумента.Проведение);
НовоеСогласование.Записать();
Сообщить("Записан документ " + ТЗСогласования);
КонецЕсли
КонецЕсли;
КонецПроцедуры
По теме из базы знаний
- Пример предпроектного обследования
- Пример технического задания
- Перенос данных из БП 3.0 / БП 2.0 в УПП 1.3 / КА 1.1. Переносятся документы, остатки и справочники
- Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С
- Как кропотливая работа оказалась эффективнее энергичной атаки
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот