Автор Тема: Задача 2.30  (Прочитано 16028 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Qwerty1

  • Пользователь
  • **
  • Сообщений: 45
Re: Задача 2.30
« Ответ #15 : Август 22, 2015, 04:08:58 am »
Qwerty1,  чем вам не угодило, на мой взгляд отличное, решение danissmo из поста http://forum.chistov.pro/index.php?topic=2819.msg40204#msg40204 ? Делается за 10 минут.

Мое решение делается не дольше и только своей процедурой, а вот как сделать без единой строчки кода?

frd

  • Пользователь
  • **
  • Сообщений: 40
  • ФИО: Павел
Re: Задача 2.30
« Ответ #16 : Август 24, 2015, 10:12:50 am »
Qwerty1,  чем вам не угодило, на мой взгляд отличное, решение danissmo из поста http://forum.chistov.pro/index.php?topic=2819.msg40204#msg40204 ? Делается за 10 минут.
Но ведь это же решение задачи 2.31, а не 2.30.
В этой задаче какие регистры нам нужно контролировать, кроме ЛимитыРасходаДенежныхСредств ?


ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: Задача 2.30
« Ответ #17 : Август 24, 2015, 10:39:36 am »
Qwerty1,  чем вам не угодило, на мой взгляд отличное, решение danissmo из поста http://forum.chistov.pro/index.php?topic=2819.msg40204#msg40204 ? Делается за 10 минут.
Но ведь это же решение задачи 2.31, а не 2.30.
В этой задаче какие регистры нам нужно контролировать, кроме ЛимитыРасходаДенежныхСредств ?

Задачи практически идентичны, отличается только используемый документ.

frd

  • Пользователь
  • **
  • Сообщений: 40
  • ФИО: Павел
Re: Задача 2.30
« Ответ #18 : Август 28, 2015, 02:54:31 pm »
Qwerty1,  чем вам не угодило, на мой взгляд отличное, решение danissmo из поста http://forum.chistov.pro/index.php?topic=2819.msg40204#msg40204 ? Делается за 10 минут.
Но ведь это же решение задачи 2.31, а не 2.30.
В этой задаче какие регистры нам нужно контролировать, кроме ЛимитыРасходаДенежныхСредств ?

Задачи практически идентичны, отличается только используемый документ.

Т.е. идея такая же? Правим запрос (из СверхЛимита на ВпределахЛимита) и т.д.? В таком случае РКО действительно контролирует в пределах лимита, но вот если создать заявку "Заявку" (которая двинет поле СверхЛимита) и на ее основании создать РКО - РКО не контролирует Лимиты и вообще не двигает этот регистр (((

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: Задача 2.30
« Ответ #19 : Август 28, 2015, 05:30:21 pm »
Т.е. идея такая же? Правим запрос (из СверхЛимита на ВпределахЛимита) и т.д.? В таком случае РКО действительно контролирует в пределах лимита, но вот если создать заявку "Заявку" (которая двинет поле СверхЛимита) и на ее основании создать РКО - РКО не контролирует Лимиты и вообще не двигает этот регистр (((

Прочитайте внимательно пояснение решения http://forum.chistov.pro/index.php?topic=2681.msg37864#msg37864
РКО по заявке не должен делать движений по регистру Лимиты.

frd

  • Пользователь
  • **
  • Сообщений: 40
  • ФИО: Павел
Re: Задача 2.30
« Ответ #20 : Август 28, 2015, 10:22:27 pm »
Т.е. идея такая же? Правим запрос (из СверхЛимита на ВпределахЛимита) и т.д.? В таком случае РКО действительно контролирует в пределах лимита, но вот если создать заявку "Заявку" (которая двинет поле СверхЛимита) и на ее основании создать РКО - РКО не контролирует Лимиты и вообще не двигает этот регистр (((

Прочитайте внимательно пояснение решения http://forum.chistov.pro/index.php?topic=2681.msg37864#msg37864
РКО по заявке не должен делать движений по регистру Лимиты.
А как тогда контролируется, что сумма в РКО не превышает сумму, утвержденную в Заявке?

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: Задача 2.30
« Ответ #21 : Август 29, 2015, 11:36:27 am »
А как тогда контролируется, что сумма в РКО не превышает сумму, утвержденную в Заявке?

По регистру Денежные средства к выплате.

mswanted

  • Новичок
  • *
  • Сообщений: 4
Re: Задача 2.30
« Ответ #22 : Сентябрь 30, 2015, 12:38:26 am »
Добрый вечер. На экзамене попалась эта задача . Решил как по описанию


Цитировать
Процедура ПревышенЛимитПоПодразделению(Отказ)
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ЛимитыРасходаДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств,
      |   СУММА(ЛимитыРасходаДенежныхСредствОбороты.ЛимитОборот) КАК ЛимитОборот,
      |   СУММА(ЛимитыРасходаДенежныхСредствОбороты.РасходСверхЛимитаОборот) КАК РасходСверхЛимитаОборот
      |ПОМЕСТИТЬ ВТЛимиты
      |ИЗ
      |   РегистрНакопления.ЛимитыРасходаДенежныхСредств.Обороты(
      |         &НачалоПериода,
      |         &КонецПериода,
      |         Месяц,
      |         Организация = &Организация
      |            И Подразделение = &Подразделение
      |            И СтатьяДвиженияДенежныхСредств В
      |               (ВЫБРАТЬ РАЗЛИЧНЫЕ
      |                  РасходныйКассовыйОрдерРасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств
      |               ИЗ
      |                  Документ.РасходныйКассовыйОрдер.РасшифровкаПлатежа КАК РасходныйКассовыйОрдерРасшифровкаПлатежа
      |               ГДЕ
      |                  РасходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка = &Ссылка
      |                  И РасходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику))) КАК ЛимитыРасходаДенежныхСредствОбороты
      |ГДЕ
      |   ЛимитыРасходаДенежныхСредствОбороты.ЛимитОборот > 0
      |
      |СГРУППИРОВАТЬ ПО
      |   ЛимитыРасходаДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   ВТЛимиты.РасходСверхЛимитаОборот - ВТЛимиты.ЛимитОборот КАК Перерасход,
      |   ВТЛимиты.СтатьяДвиженияДенежныхСредств КАК Статья
      |ИЗ
      |   ВТЛимиты КАК ВТЛимиты
      |ГДЕ
      |   ВТЛимиты.РасходСверхЛимитаОборот - ВТЛимиты.ЛимитОборот > 0";
   
   Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Дата));
   Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(Дата));
   Запрос.УстановитьПараметр("Организация", Организация);
   Запрос.УстановитьПараметр("Подразделение", Касса.Подразделение);
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Запрос.УстановитьПараметр("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ОплатаПоставщику);
   
   РезультатЗапроса = Запрос.Выполнить();
   Если Не РезультатЗапроса.Пустой() Тогда
      Отказ = Истина;   
   КонецЕсли;   
   
   Выборка = РезультатЗапроса.Выбрать();
   
   Пока Выборка.Следующий() Цикл
      Сообщить("Превышение лимита по статье " + Выборка.Статья + " на " + Выборка.Перерасход);
   КонецЦикла;
КонецПроцедуры

Препод сказал что решать надо без кодирования((((.Оценка 2

flex

  • Пользователь
  • **
  • Сообщений: 27
Re: Задача 2.30
« Ответ #23 : Октябрь 01, 2015, 12:38:32 pm »
Подскажите, пожалуйста, решение без кодирования. Получается две задачи не имеют верного решения. Некоторые тут писали, что задача решена типовым функционалом, однако без подробностей.

vaYs

  • Новичок
  • *
  • Сообщений: 1
Re: Задача 2.30
« Ответ #24 : Октябрь 09, 2015, 03:29:23 pm »
Я решил задачу (на релизе 11.1.10.176) несколькими строками кода.

1. В модуле менеджера документа РасходныйКассовыйОрдер в функции ТекстЗапросаТаблицаЛимитыРасходаДенежныхСредств
   //++
   //|   ЕСТЬNULL(ТаблицаРасшифровкаПлатежа.Сумма, ДанныеДокумента.СуммаДокумента) * &КоэффициентПересчетаВВалютуУпр КАК РасходСверхЛимита
   |   ВЫБОР
   |      КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику)
   |         ТОГДА 0
   |      ИНАЧЕ ЕСТЬNULL(ТаблицаРасшифровкаПлатежа.Сумма, ДанныеДокумента.СуммаДокумента) * &КоэффициентПересчетаВВалютуУпр
   |   КОНЕЦ КАК РасходСверхЛимита,
   |   ВЫБОР
   |      КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику)
   |         ТОГДА ЕСТЬNULL(ТаблицаРасшифровкаПлатежа.Сумма, ДанныеДокумента.СуммаДокумента) * &КоэффициентПересчетаВВалютуУпр
   |      ИНАЧЕ 0
   |   КОНЕЦ КАК РасходВПределахЛимита
   //--

2. В модуле объекта документа РасходныйКассовыйОрдер в Процедуре СформироватьСписокРегистровДляКонтроля
      //++ 2.30
      Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику Тогда
         Массив.Добавить(Движения.ЛимитыРасходаДенежныхСредств);
      КонецЕсли;
      //--

3. В общем модуле ПроведениеСервер в Процедуре ВыполнитьКонтрольРезультатовПроведения
в блоке с условием
"Если ЕстьИзмененияВТаблице(ДанныеТаблиц,"ДвиженияЛимитыРасходаДенежныхСредствИзменение") Тогда"
      //++ 2.30
      Если ТипЗнч(Объект.Ссылка) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
         Период = Объект.Дата;
      Иначе
      //--
      Если ЗначениеЗаполнено(Объект.ДатаПлатежа) Тогда
         Период = Объект.ДатаПлатежа;
      ИначеЕсли ЗначениеЗаполнено(Объект.ЖелательнаяДатаПлатежа) Тогда
         Период = Объект.ЖелательнаяДатаПлатежа;
      Иначе
         Период = Объект.Дата;
      КонецЕсли;
      //++
      КонецЕсли;
      //--

А без кодирования вообще никак не получается, только потому, что РКО ни при каких настройках не проверяет регистр "ЛимитыРасходаДенежныхСредств".
А отчет есть типовой "Лимиты расхода денежных средств".

Кто что может сказать про решение?
« Последнее редактирование: Октябрь 09, 2015, 04:02:34 pm от vaYs »

Qwerty1

  • Пользователь
  • **
  • Сообщений: 45
Re: Задача 2.30
« Ответ #25 : Ноябрь 04, 2015, 09:36:10 am »
Товарищи, кто нибудь додумался, как без кодирования решить данную задачку?

Давайте рассуждать:
В кассе нужно по любому установить галочку "без заявок", т.к. мы можем проводить РКО без заявок на сумму лимита!  :)

В настройках:
должны быть указаны галки: лимиты расхода ДС и лимиты по подразделениям.
на счет галки "контролировать превышение лимитов": превышение контролируется если сумма по заявкам больше суммы лимита, но в заявке есть галочка сверх лимита и мы можем спокойно провести документ превышающий лимит.

Ну а РКО проводится на любую сумму без проблем, т.е. неужели все таки галочку в кассе "без заявок" ставить не нужно?! А как же условие?!
Цитировать
При превышении лимита оплата возможна только по предварительно выставленной заявке
Тут само вырывается: "а не при превышении, возможно проведение РКО без заявки"!

Но мы перефразируем условие так: "При превышении лимита оплата возможна только по предварительно выставленной заявке (с галочкой "сверх лимита"), а не при превышении просто по заявке (без галочки!)"

Другого пути нет, только запрещать проводить РКО без заявки!
Конечно можно наехать на экзаменатора, мол, а как же проводить РКО без заявки? Но в условии дословно про РКО без заявки ничего не написано, т.е. все таки:
Цитировать
Другого пути нет, только запрещать проводить РКО без заявки!

На этом все!


flex

  • Пользователь
  • **
  • Сообщений: 27
Re: Задача 2.30
« Ответ #26 : Ноябрь 18, 2015, 12:59:05 pm »
Предлагаю вариант решения без кодирования. При создании лимита на месяц создается заявка на весь лимит с  получателем НашеПредприятие. РКО оформляется на основании документа ПТУ. При этом получателем указываем НашеПредприятие. Такие РКО проводятся, в документе формируется ссылка на документ основание.  При превышении лимита оплата проводится по заявке с пометкой сверх лимита. Остается доработать отчет Лимиты расхода ДС. Однако в регистры не пишется реальный получатель платежа и перестают верно работать отчеты Ведомость расчетов с поставщиками. Т.е. что-то еще надо исправить.

raisin30

  • Новичок
  • *
  • Сообщений: 8
Re: Задача 2.30
« Ответ #27 : Ноябрь 25, 2015, 05:47:04 pm »
https://www.youtube.com/watch?v=vdj6LOBstHI
Получается что этот вариант решения тоже не верен?

Qwerty1

  • Пользователь
  • **
  • Сообщений: 45
Re: Задача 2.30
« Ответ #28 : Ноябрь 26, 2015, 02:47:10 pm »
https://www.youtube.com/watch?v=vdj6LOBstHI
Получается что этот вариант решения тоже не верен?

А мой вариант Вы считаете не верен?

flex

  • Пользователь
  • **
  • Сообщений: 27
Re: Задача 2.30
« Ответ #29 : Ноябрь 26, 2015, 02:56:18 pm »
Народ отправляют с оценкой 2. Требуют решение без кодирования. На форуме на сегодня готовых  решений для 2.30, 2.31 не видно.