Ошибка: У сотрудника указана отрицательная сумма к выплате
Причина возникновения: Возникает при проверке правильности заполнения документа "Ведомость на выплату зарплаты"
Где расположена: Общий модуль - ВедомостьНаВыплатуЗарплатыБазовый - Процедура ОбработкаПроверкиЗаполнения
Что делать: Проверьте суммовые показатели в документе "Ведомость на выплату зарплаты", у указанного сотрудника, они не должны быть отрицательными. Возможно при расчете итоговой суммы "К выплате" получается отрицательное значение. Обратится за помощью к программисту 1С.
Для программиста: Код в данной процедуре производит проверку заполнения документа "Ведомость на выплату зарплаты".
Текст процедуры:
Процедура ОбработкаПроверкиЗаполнения(Ведомость, Отказ, ПроверяемыеРеквизиты) Экспорт НепроверяемыеРеквизиты = Новый Массив; Если Ведомость.ВводНачальныхДанных Тогда НепроверяемыеРеквизиты.Добавить("СпособВыплаты"); КонецЕсли; Если Не ВедомостьНаВыплатуЗарплатыКлиентСервер.ВидДоходаИсполнительногоПроизводстваОбязателен(Ведомость) Тогда НепроверяемыеРеквизиты.Добавить("ВидДоходаИсполнительногоПроизводства"); КонецЕсли; ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, НепроверяемыеРеквизиты); ВидМестаВыплаты = ВедомостьНаВыплатуЗарплаты.ВидМестаВыплатыПоДокументу(Ведомость); ЗарплатаСтроки = Ведомость.Зарплата.Выгрузить(,"ИдентификаторСтроки, КВыплате"); ЗарплатаСтроки.Свернуть("ИдентификаторСтроки","КВыплате"); ЗарплатаСтроки.Индексы.Добавить("ИдентификаторСтроки"); Для Каждого СтрокаСостава Из Ведомость.Состав Цикл ЗарплатаСтрока = ЗарплатаСтроки.Найти(СтрокаСостава.ИдентификаторСтроки,"ИдентификаторСтроки"); Если ЗарплатаСтрока <> Неопределено И ЗарплатаСтрока.КВыплате < 0 Тогда ТекстОшибки = СтрШаблон( НСтр("ru = 'У сотрудника %1 указана отрицательная сумма к выплате'"), СтрокаСостава.ФизическоеЛицо); ОбщегоНазначения.СообщитьПользователю( ТекстОшибки, Ведомость, ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Состав", СтрокаСостава.НомерСтроки, "ФизическоеЛицо"),, Отказ); КонецЕсли; Если ВидМестаВыплаты <> Перечисления.ВидыМестВыплатыЗарплаты.ЗарплатныйПроект Тогда Продолжить; КонецЕсли; Если Не ЗначениеЗаполнено(Ведомость.ЗарплатныйПроект) Тогда Продолжить; КонецЕсли; Если ((СтрокаСостава.СпособЗачисления = Перечисления.СпособыЗачисленияВыплат.ПоЛицевомуСчету) Или Не ЗначениеЗаполнено(СтрокаСостава.СпособЗачисления)) И Не ЗначениеЗаполнено(СтрокаСостава.НомерЛицевогоСчета) Тогда СообщитьПользователюНезаполненоЗначениеСпособаЗачисления( СтрокаСостава, "НомерЛицевогоСчета", НСтр("ru = 'лицевой счет'"), Ведомость, Отказ); ИначеЕсли (СтрокаСостава.СпособЗачисления = Перечисления.СпособыЗачисленияВыплат.ПоНомеруКарты) И Не ЗначениеЗаполнено(СтрокаСостава.БанковскаяКарта) Тогда СообщитьПользователюНезаполненоЗначениеСпособаЗачисления( СтрокаСостава, "БанковскаяКарта", НСтр("ru = 'номер банковской карты'"), Ведомость, Отказ); ИначеЕсли (СтрокаСостава.СпособЗачисления = Перечисления.СпособыЗачисленияВыплат.ПоНомеруСчетаВБанк) И Не ЗначениеЗаполнено(СтрокаСостава.БанковскийСчет) Тогда СообщитьПользователюНезаполненоЗначениеСпособаЗачисления( СтрокаСостава, "БанковскийСчет", НСтр("ru = 'банковский счет'"), Ведомость, Отказ); ИначеЕсли (СтрокаСостава.СпособЗачисления = Перечисления.СпособыЗачисленияВыплат.ПоНомеруТелефона) И Не ЗначениеЗаполнено(СтрокаСостава.НомерТелефонаПредставление) Тогда СообщитьПользователюНезаполненоЗначениеСпособаЗачисления( СтрокаСостава, "НомерТелефонаПредставление", НСтр("ru = 'номер телефона'"), Ведомость, Отказ); ИначеЕсли (СтрокаСостава.СпособЗачисления = Перечисления.СпособыЗачисленияВыплат.ПоСНИЛС) И Не ЗначениеЗаполнено(СтрокаСостава.СНИЛС) Тогда СообщитьПользователюНезаполненоЗначениеСпособаЗачисления( СтрокаСостава, "СНИЛС", НСтр("ru = 'СНИЛС'"), Ведомость, Отказ); КонецЕсли; КонецЦикла; КонецПроцедуры