поле объекта не обнаружено - Документ

1. tiger12 1 07.11.22 01:08 Сейчас в теме
Платформа 8.3.21.1302, конфигурация ЗУП 3.1

В обработке создаю документ

 док = Документы.ДоходВНатуральнойФорме.СоздатьДокумент()

Инструкцию &НаСервере добавил.

Падает с ошибкой - поле объекта не обнаружено.
Кэш почистил.
Думаю Тестирование и исправление запустить.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. tiger12 1 07.11.22 01:52 Сейчас в теме
Не помогло, но в журнале регистрации есть ошибка:

Событие: Ошибка выполнения

{Документ.ИТ_Регистрация.МодульОбъекта(77)}: Поле объекта не обнаружено (ДоходВНатуральнойФорме)
13. booksfill 07.11.22 12:50 Сейчас в теме +0.5 $m
Может дело вот в этом:

"ЭтотОбъект.Документы.Добавить(); "

Если у вас существует реквизит Документы, то, разумеется, Документы.ДоходВНатуральнойФорме выдаст ошибку, т.к. это обращение к реквизиту. Синтаксис помощник, разумеется, через точку будет подсказывать не то.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
12. igor63 07.11.22 12:49 Сейчас в теме
(1) Перезапустите конфигуратор и ИБ
15. igor63 07.11.22 12:54 Сейчас в теме
(12) Посмотрите еще, нету ли на форме реквизита с наименованием "докДоход"
2. tiger12 1 07.11.22 01:52 Сейчас в теме
Не помогло, но в журнале регистрации есть ошибка:

Событие: Ошибка выполнения

{Документ.ИТ_Регистрация.МодульОбъекта(77)}: Поле объекта не обнаружено (ДоходВНатуральнойФорме)
3. odinsmot 07.11.22 06:02 Сейчас в теме
Что написано в модуле документа ИТ_Регистрация в строке 77 ?
4. tiger12 1 07.11.22 11:21 Сейчас в теме
(3)

докДоход = Документы.ДоходВНатуральнойФорме.СоздатьДокумент()
5. tiger12 1 07.11.22 12:18 Сейчас в теме
6. VictorRGB2 14 07.11.22 12:21 Сейчас в теме
(5) на уровне предположения - нет прав на документ на уровне пользователя
и код процедуры бы полностью привести
7. tiger12 1 07.11.22 12:33 Сейчас в теме
(6) но через точку документ подбирается в выпадающем списке.
10. VictorRGB2 14 07.11.22 12:38 Сейчас в теме
(7) через точку дает, ничего не значит
это просто помощник синтаксиса
я бы все таки проверил права пользователя
16. tiger12 1 07.11.22 12:58 Сейчас в теме
(10) прибавил прав пользователю на документ Доход В Натуральной Форме.

Однако в отладчике по-прежнему - Поле объекта не обнаружено (Доход в натуральной форме)
9. tiger12 1 07.11.22 12:37 Сейчас в теме
(6) документ под пользователем создается - Доход в натуральной форме.
11. VictorRGB2 14 07.11.22 12:42 Сейчас в теме
(9) значит синтаксис проверяем
и в отладчик, смотреть что там по проблемной строке
14. tiger12 1 07.11.22 12:50 Сейчас в теме
(11) в отладчике

Свойство
Документы.ДоходВНатуральнойФорме

Значение
{<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ДоходВНатуральнойФорме)
17. VictorRGB2 14 07.11.22 13:00 Сейчас в теме
(14) а в Документы что?
вот тут в (13) дельную мысль подсказывают
19. tiger12 1 07.11.22 13:13 Сейчас в теме
(17) вот оно, вот я подставился с этими Документами. Не хотел такую таб.часть создавать, но создал ))
8. tiger12 1 07.11.22 12:35 Сейчас в теме
&НаСервере
Процедура ОбработкаПроведения(Отказ, РежимПроведения)


Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо КАК ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП КАК КВО,
| СУММА(СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Сумма) КАК Сумма,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления КАК МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный КАК Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер КАК Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон КАК НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата КАК Дата
|ИЗ
| Документ.СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицам.Взаиморасчеты КАК СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты
|ГДЕ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата
|
|УПОРЯДОЧИТЬ ПО
| КВО";

ТаблицаКВО = Запрос.Выполнить().Выгрузить();
ТаблицаКВО.Колонки.Добавить("Сотрудник");
ТаблицаКВО.Колонки.Добавить("Подразделение");

МассивКВО = ТаблицаКВО.ВыгрузитьКолонку("КВО");

////Сотрудники
Запрос.Текст = "ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";

ТаблСотрудники = Запрос.Выполнить().Выгрузить();

//Подразделения
Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Ссылка.Дата));
Запрос.Текст = "ВЫБРАТЬ
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
| КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОкончания, ) КАК КадроваяИсторияСотрудниковСрезПоследних";
ТаблПодразделения = Запрос.Выполнить().Выгрузить();


ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения);

Для Каждого ЭлементКВО Из МассивКВО Цикл

Отбор = Новый Структура;
Отбор.Вставить("КВО", ЭлементКВО);

докДоход = Неопределено; докДанные = Неопределено;
СтрокиКВО = ТаблицаКВО.НайтиСтроки(Отбор);
Для Каждого СтрокаКВО Из СтрокиКВО Цикл

Если ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("ПланВидовРасчетаСсылка.Начисления") Тогда

Если докДоход = Неопределено Тогда

докДоход = Документы.ДоходВНатуральнойФорме.СоздатьДокумент();
докДоход.Дата = СтрокаКВО.Дата;
докДоход.Начисление = СтрокаКВО.НачислениеШаблон;
докДоход.Ответственный = СтрокаКВО.Ответственный;
докДоход.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");
докДоход.ДатаПолученияДохода = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДоход.ДоначислитьЗарплатуПриНеобходимости = Ложь;

НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
Иначе
НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
КонецЕсли;

ИначеЕсли ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("СправочникСсылка.ВидыДокументовВводДанныхДляРасчетаЗарплаты") Тогда

Если докДанные = Неопределено Тогда
докДанные = Документы.ДанныеДляРасчетаЗарплаты.СоздатьДокумент();
докДанные.Дата = СтрокаКВО.Дата;
докДанные.Период = СтрокаКВО.МесяцНачисления;
докДанные.ВидДокумента = СтрокаКВО.КВО.Начисление_Шаблон;
докДанные.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДанные.Ответственный = СтрокаКВО.Ответственный;
докДанные.ИспользоватьПриРасчетеПервойПоловиныМесяца = Истина;
докДанные.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");

НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
Если СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Количество() > 0 Тогда
НоваяСтрока.Показатель = СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Получить(0).Показатель;
КонецЕсли;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
Иначе
НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
КонецЕсли;

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

Если докДоход <> Неопределено Тогда
докДоход.Начислено = докДоход.Начисления.Итог("Результат");
докДоход.Записать(РежимЗаписиДокумента.Проведение);

нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДоход;
КонецЕсли;

Если докДанные <> Неопределено Тогда
докДанные.Записать(РежимЗаписиДокумента.Проведение);

нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДанные;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//***********************************************************
Процедура ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения)

Для Каждого ТекСтрока Из ТаблицаКВО Цикл
ТекСтрока.Сотрудник = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(ТекСтрока.ФизическоеЛицо, Организация,Дата);
ТекСтрока.Подразделение = ПодобратьПодразделение(ТаблПодразделения, ТекСтрока.Сотрудник);
КонецЦикла;
КонецПроцедуры
//***********************************************************
Функция ПодобратьПодразделение(ТаблПодразделения, Сотрудник)

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

Если СтрокиПодразделение.Количество() > 0 Тогда
Подразделение = СтрокиПодразделение.Получить(0).Подразделение;
КонецЕсли;

Возврат Подразделение;
КонецФункции
//***********************************************************
13. booksfill 07.11.22 12:50 Сейчас в теме +0.5 $m
Может дело вот в этом:

"ЭтотОбъект.Документы.Добавить(); "

Если у вас существует реквизит Документы, то, разумеется, Документы.ДоходВНатуральнойФорме выдаст ошибку, т.к. это обращение к реквизиту. Синтаксис помощник, разумеется, через точку будет подсказывать не то.
18. tiger12 1 07.11.22 13:11 Сейчас в теме
(13) точно, был реквизит Документы.
Оставьте свое сообщение

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