По теме из базы знаний
- Исправление ошибки Поле объекта не обнаружено (CountryCode) при обновлении Бухгалтерия предприятия с 2.0 на редакцию 3.0
- Исправление ошибок документооборота, ограничение на использование дополнительных реквизитов, обязательность их заполнения (Расширение)
- Изменение оплаты труда: Поле объекта не обнаружено (ДействуетДо). ЗУП 3.1
- Исправление ошибки "Поле объекта не обнаружено (Регистратор)" при проведении документа "Начисление зарплаты и взносов". ЗУП 3.1
- Исправление ошибки: Поле объекта не обнаружено (ЕФС__РегНомер1)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаСервере
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо КАК ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП КАК КВО,
| СУММА(СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Сумма) КАК Сумма,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления КАК МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный КАК Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер КАК Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон КАК НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата КАК Дата
|ИЗ
| Документ.СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицам.Взаиморасчеты КАК СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты
|ГДЕ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата
|
|УПОРЯДОЧИТЬ ПО
| КВО";
ТаблицаКВО = Запрос.Выполнить().Выгрузить();
ТаблицаКВО.Колонки.Добавить("Сотрудник");
ТаблицаКВО.Колонки.Добавить("Подразделение");
МассивКВО = ТаблицаКВО.ВыгрузитьКолонку("КВО");
////Сотрудники
Запрос.Текст = "ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";
ТаблСотрудники = Запрос.Выполнить().Выгрузить();
//Подразделения
Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Ссылка.Дата));
Запрос.Текст = "ВЫБРАТЬ
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
| КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОкончания, ) КАК КадроваяИсторияСотрудниковСрезПоследних";
ТаблПодразделения = Запрос.Выполнить().Выгрузить();
ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения);
Для Каждого ЭлементКВО Из МассивКВО Цикл
Отбор = Новый Структура;
Отбор.Вставить("КВО", ЭлементКВО);
докДоход = Неопределено; докДанные = Неопределено;
СтрокиКВО = ТаблицаКВО.НайтиСтроки(Отбор);
Для Каждого СтрокаКВО Из СтрокиКВО Цикл
Если ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("ПланВидовРасчетаСсылка.Начисления") Тогда
Если докДоход = Неопределено Тогда
докДоход = Документы.ДоходВНатуральнойФорме.СоздатьДокумент();
докДоход.Дата = СтрокаКВО.Дата;
докДоход.Начисление = СтрокаКВО.НачислениеШаблон;
докДоход.Ответственный = СтрокаКВО.Ответственный;
докДоход.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");
докДоход.ДатаПолученияДохода = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДоход.ДоначислитьЗарплатуПриНеобходимости = Ложь;
НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
Иначе
НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("СправочникСсылка.ВидыДокументовВводДанныхДляРасчетаЗарплаты") Тогда
Если докДанные = Неопределено Тогда
докДанные = Документы.ДанныеДляРасчетаЗарплаты.СоздатьДокумент();
докДанные.Дата = СтрокаКВО.Дата;
докДанные.Период = СтрокаКВО.МесяцНачисления;
докДанные.ВидДокумента = СтрокаКВО.КВО.Начисление_Шаблон;
докДанные.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДанные.Ответственный = СтрокаКВО.Ответственный;
докДанные.ИспользоватьПриРасчетеПервойПоловиныМесяца = Истина;
докДанные.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");
НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
Если СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Количество() > 0 Тогда
НоваяСтрока.Показатель = СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Получить(0).Показатель;
КонецЕсли;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
Иначе
НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если докДоход <> Неопределено Тогда
докДоход.Начислено = докДоход.Начисления.Итог("Результат");
докДоход.Записать(РежимЗаписиДокумента.Проведение);
нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДоход;
КонецЕсли;
Если докДанные <> Неопределено Тогда
докДанные.Записать(РежимЗаписиДокумента.Проведение);
нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДанные;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//***********************************************************
Процедура ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения)
Для Каждого ТекСтрока Из ТаблицаКВО Цикл
ТекСтрока.Сотрудник = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(ТекСтрока.ФизическоеЛицо, Организация,Дата);
ТекСтрока.Подразделение = ПодобратьПодразделение(ТаблПодразделения, ТекСтрока.Сотрудник);
КонецЦикла;
КонецПроцедуры
//***********************************************************
Функция ПодобратьПодразделение(ТаблПодразделения, Сотрудник)
Отбор = Новый Структура;
Отбор.Вставить("Сотрудник", Сотрудник);
СтрокиПодразделение = ТаблПодразделения.НайтиСтроки(Отбор);
Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
Если СтрокиПодразделение.Количество() > 0 Тогда
Подразделение = СтрокиПодразделение.Получить(0).Подразделение;
КонецЕсли;
Возврат Подразделение;
КонецФункции
//***********************************************************
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо КАК ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП КАК КВО,
| СУММА(СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Сумма) КАК Сумма,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления КАК МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный КАК Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер КАК Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон КАК НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата КАК Дата
|ИЗ
| Документ.СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицам.Взаиморасчеты КАК СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты
|ГДЕ
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.ФизическоеЛицо,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.МесяцНачисления,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Ответственный,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Номер,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.КодВидаРасчетаЗУП.НачислениеШаблон,
| СП_РегистрацияВзаиморасчетовПоПодотчетнымЛицамВзаиморасчеты.Ссылка.Дата
|
|УПОРЯДОЧИТЬ ПО
| КВО";
ТаблицаКВО = Запрос.Выполнить().Выгрузить();
ТаблицаКВО.Колонки.Добавить("Сотрудник");
ТаблицаКВО.Колонки.Добавить("Подразделение");
МассивКВО = ТаблицаКВО.ВыгрузитьКолонку("КВО");
////Сотрудники
Запрос.Текст = "ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";
ТаблСотрудники = Запрос.Выполнить().Выгрузить();
//Подразделения
Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Ссылка.Дата));
Запрос.Текст = "ВЫБРАТЬ
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
| КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОкончания, ) КАК КадроваяИсторияСотрудниковСрезПоследних";
ТаблПодразделения = Запрос.Выполнить().Выгрузить();
ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения);
Для Каждого ЭлементКВО Из МассивКВО Цикл
Отбор = Новый Структура;
Отбор.Вставить("КВО", ЭлементКВО);
докДоход = Неопределено; докДанные = Неопределено;
СтрокиКВО = ТаблицаКВО.НайтиСтроки(Отбор);
Для Каждого СтрокаКВО Из СтрокиКВО Цикл
Если ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("ПланВидовРасчетаСсылка.Начисления") Тогда
Если докДоход = Неопределено Тогда
докДоход = Документы.ДоходВНатуральнойФорме.СоздатьДокумент();
докДоход.Дата = СтрокаКВО.Дата;
докДоход.Начисление = СтрокаКВО.НачислениеШаблон;
докДоход.Ответственный = СтрокаКВО.Ответственный;
докДоход.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");
докДоход.ДатаПолученияДохода = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДоход.ДоначислитьЗарплатуПриНеобходимости = Ложь;
НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
Иначе
НоваяСтрока = докДоход.Начисления.Добавить();
НоваяСтрока.Сотрудник = СтрокаКВО.Сотрудник;
НоваяСтрока.Подразделение = СтрокаКВО.Подразделение;
НоваяСтрока.Результат = СтрокаКВО.Сумма;
НоваяСтрока.НДФЛ = СтрокаКВО.Сумма * 0.13;
НоваяСтрока.КорректировкаВыплаты = 0;
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаКВО.КВО.НачислениеШаблон) = Тип("СправочникСсылка.ВидыДокументовВводДанныхДляРасчетаЗарплаты") Тогда
Если докДанные = Неопределено Тогда
докДанные = Документы.ДанныеДляРасчетаЗарплаты.СоздатьДокумент();
докДанные.Дата = СтрокаКВО.Дата;
докДанные.Период = СтрокаКВО.МесяцНачисления;
докДанные.ВидДокумента = СтрокаКВО.КВО.Начисление_Шаблон;
докДанные.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
докДанные.Ответственный = СтрокаКВО.Ответственный;
докДанные.ИспользоватьПриРасчетеПервойПоловиныМесяца = Истина;
докДанные.Комментарий = "№ " + СтрокаКВО.Номер + " от " + Формат(СтрокаКВО.Дата,"ДФ=dd.MM.yyyy");
НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
Если СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Количество() > 0 Тогда
НоваяСтрока.Показатель = СтрокаКВО.КВО.Начисление_Шаблон.Показатели.Получить(0).Показатель;
КонецЕсли;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
Иначе
НоваяСтрока = докДанные.ЗначенияПоказателей.Добавить();
НоваяСтрока.Объект = СтрокаКВО.Сотрудник;
НоваяСтрока.Значение = СтрокаКВО.Сумма;
НоваяСтрока.Период = НачалоМесяца(СтрокаКВО.МесяцНачисления);
НоваяСтрока.ПериодОкончания = КонецМесяца(СтрокаКВО.МесяцНачисления);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если докДоход <> Неопределено Тогда
докДоход.Начислено = докДоход.Начисления.Итог("Результат");
докДоход.Записать(РежимЗаписиДокумента.Проведение);
нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДоход;
КонецЕсли;
Если докДанные <> Неопределено Тогда
докДанные.Записать(РежимЗаписиДокумента.Проведение);
нСтрокаРегистрации = ЭтотОбъект.Документы.Добавить();
нСтрокаРегистрации.Документ = докДанные;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//***********************************************************
Процедура ЗаполнитьТаблицуКВО(ТаблицаКВО,ТаблСотрудники,ТаблПодразделения)
Для Каждого ТекСтрока Из ТаблицаКВО Цикл
ТекСтрока.Сотрудник = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(ТекСтрока.ФизическоеЛицо, Организация,Дата);
ТекСтрока.Подразделение = ПодобратьПодразделение(ТаблПодразделения, ТекСтрока.Сотрудник);
КонецЦикла;
КонецПроцедуры
//***********************************************************
Функция ПодобратьПодразделение(ТаблПодразделения, Сотрудник)
Отбор = Новый Структура;
Отбор.Вставить("Сотрудник", Сотрудник);
СтрокиПодразделение = ТаблПодразделения.НайтиСтроки(Отбор);
Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
Если СтрокиПодразделение.Количество() > 0 Тогда
Подразделение = СтрокиПодразделение.Получить(0).Подразделение;
КонецЕсли;
Возврат Подразделение;
КонецФункции
//***********************************************************
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот