Имя: Пароль:
1C
1С v8
Реквизит табличной части
0 peppapig
 
09.11.21
16:02
Здравствуйте!
Возник вопрос, как сделать, чтобы такое заполнение выдавало отказ: https://ibb.co/SNW2mMh
На скриншоте документ ПриказОПриеме, где помимо прочих реквизитов принимаемого сотрудника есть ТАБЛИЧНАЯ ЧАСТЬ с реквизитами ВидНачисления и Сумма.
Вид начисления может быть "Оклад по должности", "Ежемесячная премия" и т.д. (из справочника ВидыНачислений).
Необходимо при проведении документа ПриказОПриеме (т.е. при приёме сотрудника на должность) проверять, что указанный "Оклад по должности" больше минимального. Например, нельзя принять менеджера по закупкам с окладом 20000.
Минимальный оклад указан в справочнике Должности, это реквизит МинимальныйОклад (у менеджера по закупкам - 25000).
Я так понимаю, ОбработкаПроведения будет выглядеть так:

ЕСЛИ ???.Сумма > Справочники.Должности.НайтиПоНаименованию(Должность).МинимальныйОклад
ТОГДА ...
ИНАЧЕ Отказ = Истина

Вопрос, что должно быть вместо "???"
Как обратиться к реквизиту Сумма табличной части? Причём Сумма должна быть именно "Оклада по должности", а не "Ежемесячной премии" и т.д.
Заранее спасибо!
1 dubolom
 
09.11.21
16:07
Правильнее делать запросом, передавать туда табличную часть параметром.
И выбирать оттуда строки, где вид начисления - оклад по должности, а сумма - меньше минимального оклада заданной должности (тоже передавать параметром).
И, если результат не пустой, то Отказ = Истина.
2 dubolom
 
09.11.21
16:08
Или, если строка оклада по должности обязательно одна, тогда искать строку по значению "Оклад по должности" в табличной части (ТабличнаяЧасть.Найти).
3 peppapig
 
09.11.21
16:33
(2) Спасибо за быстрый ответ! ПлановыеНачисления - название табличной части. Пробую:
ЕСЛИ ПлановыеНачисления.Найти("Оклад по должности").Сумма > ...

Возникает ошибка: Значение не является значением объектного типа (Сумма)

Или:
НС = ПлановыеНачисления.Найти("Оклад по должности").НомерСтроки;
ЕСЛИ ПлановыеНачисления[НС].Сумма > ...

Тоже ошибка: Значение не является значением объектного типа (НомерСтроки)
4 vicof
 
09.11.21
16:52
ПлановыеНачисления.Найти(СсылкаНаНачисление)
5 vicof
 
09.11.21
16:56
И вообще.
ОтборСтрок = Новый Структура;
ОтборСтрок.Вставить("ВидНачисления", ПланыВидовРасчета.Начисления.найтиПоНаименованию("Оклад по должности"));

НайденныеСтроки = ПллановыеНасчиления.найтиСтроки(ОтборСтрок);
Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл


КонецЦикла;
6 vicof
 
09.11.21
16:56
И искать по наименованию вредно.
7 peppapig
 
09.11.21
18:01
(5) Большое спасибо
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.