Добрый день коллеги!
Пока ждал ответ по поводу решения этой задачки в нашем
часто обновляющемся обсуждении, дошел до билета 10 (а там задача 2.31, похожая), обсуждение здесь: (
http://forum.chistov.pro/index.php?topic=2681.msg37864#msg37864), где пользователь Danissimo любезно натолкнул на правильное решение.
На основе этого я сделал решение этой задачи.
Пояснение к решению почитайте там же у Danissimo
http://forum.chistov.pro/index.php?topic=2681.msg37864#msg37864Решение проверено успешной сдачей экзамена 17.06.2016, как раз именно этот билет и попался.
Сдавал в УЦ1
Претензии у преподавателя не было, все гуд.
Данное решение сделано на релизе 11.1.10.199 (по нему готовил все билеты).
Методика актуальна и для релизов младше, единственное строки кода в модулях в этом случае могут быть не те.
------------------------
1) Включить ф.о. “Заявки на расходование денежных средств” (все галочки). Администрирование – Организации и денежные средства – Заявки на расходование денежных средств – и все подгалочки
2) Для р/с включить флаг «Разрешить списание ДС без заявок»
3) Документ РасходныйКассовыйОрдер – модуль менеджера
В процедуре
“ЗаполнитьИменаРеквизитовПоХозяйственнойОперации” добавить реквизит для хозяйственной операции с видом “Оплата поставщику”:
Строка 153МассивРеквизитовОперации.Добавить("Подразделение");4) Отключаем «Выдавать ошибку» для реквизита ЗаявкаНаРасходованиеДенежныхСредств в таб части РасшифровкаПлатежа документа РКО.
4.1) Документ Расходный кассовый ордер – модуль менеджера
В функции ТекстЗапросаТаблицаЛимитыРасходаДенежныхСредств (
строка 2107)
для хоз. операции Оплата поставщику
переименовать (
строка 2142)
"... КАК РасходСверхЛимита" на "...КАК РасходВПределахЛимита"4.2)
Строка 2186 строку
"... ДанныеДокумента.СуммаДокумента КАК РасходСверхЛимита " на "... ДанныеДокумента.СуммаДокумента КАК РасходВПределахЛимита "5) Документ Расходный кассовый ордер – модуль объекта
В процедуре СформироватьСписокРегистровДляКонтроля()
добавить после Массив.Добавить(Движения.РасчетыСКлиентами); (
строка 1383) след. код.
Если ЭтотОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику Тогда
Массив.Добавить(Движения.ЛимитыРасходаДенежныхСредств);
КонецЕсли;
6) Общий модуль ПроведениеСервер,
Процедура ВыполнитьКонтрольРезультатовПроведения (
строка 448)
добавить след. код (где именно добавить понятно при проведении – выскакивает ошибка Поле ДатаПлатежа не найдено)
Т.Е. ДЕЛАЕМ со
строки 2029такой код:
Если ТипЗнч(Объект) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
Период = Объект.Дата;
Иначе
Если ЗначениеЗаполнено(Объект.ДатаПлатежа) Тогда
Период = Объект.ДатаПлатежа;
ИначеЕсли ЗначениеЗаполнено(Объект.ЖелательнаяДатаПлатежа) Тогда
Период = Объект.ЖелательнаяДатаПлатежа;
Иначе
Период = Объект.Дата;
КонецЕсли;
Конецесли;7) В отчете Лимиты расхода ДС создаем новый вариант с подразделениями Финансы – Отчеты по финансам - все отчеты – Лимит расхода денежных средств
7.1 ) Добавляем Подразделение с иерархией, у статьи ДДС иерархию снимаем
ТЕСТИРОВАНИЕ:1) Создаем документ Лимит расходования денежных средств по подразделению Отдел закупок, в строке таб части ставим галочку «Лимит», и указываем сумму 10000,00
2) Создаем заявку расходный кассовый ордер. Если сумма больше установленного лимита, то проведение запрещено.
3) После избрания лимита, следует пользоваться заявкой на расход ДС с галочкой «сверх лимита». Он проведется, все ок и создавать на основании РКО.
Всем удачи.