Всем доброе время суток!
Есть документ "Установка согласованной суммы". В нём указывается контрагент и сумма. Всё это дело делает движения в рег. сведении "СогласСумма".
Суть в том,чтобы при проведении документа "Заказ покупателя" шла проверка на сумму. А именно
1) Если указанная сумма в документе "ЗП" больше,чем в документе "Установка согласованной суммы",то не проводим!
2) Так же "Нужно учитывать все накладные и сегодня и на завтра (если выбил сегодня сумму то завтра сумма не должна увеличится и прибавится)".
Есть две суммы по контрагенту за день по РТУ и Заказам.
Подскажите,что с ними делать, не могу сообразить по 2 пункту. Спасибо заранее.
Есть документ "Установка согласованной суммы". В нём указывается контрагент и сумма. Всё это дело делает движения в рег. сведении "СогласСумма".
Суть в том,чтобы при проведении документа "Заказ покупателя" шла проверка на сумму. А именно
1) Если указанная сумма в документе "ЗП" больше,чем в документе "Установка согласованной суммы",то не проводим!
2) Так же "Нужно учитывать все накладные и сегодня и на завтра (если выбил сегодня сумму то завтра сумма не должна увеличится и прибавится)".
Есть две суммы по контрагенту за день по РТУ и Заказам.
Подскажите,что с ними делать, не могу сообразить по 2 пункту. Спасибо заранее.
Функция ПроверкаСогласованнойСуммы(Контрагент,Дата,СуммаДокумента) Экспорт
Запрос2 = Новый запрос;
Запрос2.Текст = "ВЫБРАТЬ
| РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
| 0 КАК СуммаПоРеализациям,
| РасчетыСКонтрагентамиОбороты.Контрагент
|ПОМЕСТИТЬ ЗаказРеализация
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
|ГДЕ
| РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 0,
| ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот,
| ВзаиморасчетыСКонтрагентамиОбороты.Контрагент
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
|ГДЕ
| ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| СУММА(ЕСТЬNULL(ЗаказРеализация.СуммаПоЗаказам, 0)) КАК СуммаПоЗаказам,
| СУММА(ЕСТЬNULL(ЗаказРеализация.СуммаПоРеализациям, 0)) КАК СуммаПоРеализациям,
| ЗаказРеализация.Контрагент
|ИЗ
| ЗаказРеализация КАК ЗаказРеализация
|
|СГРУППИРОВАТЬ ПО
| ЗаказРеализация.Контрагент";
Запрос2.УстановитьПараметр("Контрагент",Контрагент);
Запрос2.УстановитьПараметр("ДатаНач",НачалоДня(Дата));
Запрос2.УстановитьПараметр("ДатаКон",КонецДня(Дата));
ВыборкаСуммаЗаДень = Запрос2.Выполнить().Выбрать();
Пока ВыборкаСуммаЗаДень.Следующий() Цикл
СуммаЗаДень = ВыборкаСуммаЗаДень.СуммаПоЗаказам;
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СогласСуммаСрезПоследних.Сумма
|ИЗ
| РегистрСведений.СогласСумма.СрезПоследних(&Период, Контрагент = &Контрагент) КАК СогласСуммаСрезПоследних";
Запрос.УстановитьПараметр("Период",Дата);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
СогласСумма = Запрос.Выполнить().Выбрать();
Пока СогласСумма.Следующий() Цикл
Если СуммаЗаДень <> Неопределено Тогда
Если СуммаЗаДень > СогласСумма.Сумма ИЛИ СуммаДокумента > СогласСумма.Сумма Тогда
Предупреждение("Превышена согласованная сумма со службой безопасности!");
Возврат Истина;
ИначеЕсли СуммаЗаДень < СогласСумма.Сумма ИЛИ СуммаДокумента < СогласСумма.Сумма Тогда
Возврат Ложь;
КонецЕсли;
Иначе
Если СуммаДокумента > СогласСумма.Сумма Тогда
Предупреждение("Превышена согласованная сумма со службой безопасности!");
Возврат Истина;
ИначеЕсли СуммаДокумента < СогласСумма.Сумма Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
ПоказатьПо теме из базы знаний
- Запрос: Получение узлового заказа покупателя из структуры подчиненности документов (УТ 10.3)
- Создание документа реализации из заказов
- Создание документов Реализация товаров и услуг (РТУ) и Приходно-кассовый ордер (ПКО) для ЕРП 2,4 и 2.5
- Пример пошагового решения проблемы производительности на базе Postgres SQL с картинками
- Товары из заказов в списке документов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вы реализовали проверку только за текущий день. Т.е. проверяете только суммы заказов за указанный день.
А в п.2 идет речь о том, что сумма заказов за сегодня и завтра не должна превышать лимит. Т.е. если лимит 100, сегодня заказ на 90, то система не должна позволять ввести сегодня заказ/рту на завтра на сумму более 10.
Таким образом подразумевается что лимит действует некоторый период, например "лимит на неделю". Либо это лимит на общую сумму: "100 р пока не выберет всю сумму а потом еще добавим".
А в п.2 идет речь о том, что сумма заказов за сегодня и завтра не должна превышать лимит. Т.е. если лимит 100, сегодня заказ на 90, то система не должна позволять ввести сегодня заказ/рту на завтра на сумму более 10.
Таким образом подразумевается что лимит действует некоторый период, например "лимит на неделю". Либо это лимит на общую сумму: "100 р пока не выберет всю сумму а потом еще добавим".
Вы похоже некий аналог бюджетирования мастерите. Сделайте регистр лимитов регистром накопления. Допишите в ЗП движение расхода по этому регистру, модель требований перестройте, чтобы убрать невнятное "сегодня и завтра"... А когда завтра, то что было завтрашним днем станет сегодняшним, его лимит должен будет входить в какую пару дней: сегодня+завтра или завтра+послезавтра? Лимит, как справедливо написал (2) может быть либо срочный либо бессрочный по сумме. От этого будет зависеть конструкция регистра накопления лимитов.
Если, например, лимит задается для периода с 1 по 5 число месяца (для интервала заказов) тогда: 1 - документ "Установка согласованной суммы" должен явно это определять (интервал) в регистре должно быть соответствующее измерение по которому при проведении заказов будет определяться из какого интервала расходовать лимит. Ну и последнее после проведения проверяйте если остаток лимита < 0 - облом!
Если лимит задается суммой до ее исчерпания, все так же но проще - при проведении заказа просто уменьшается лимит по контрагенту (опускается аналитика интервала) если после проведения он < 0 - облом!
Если, например, лимит задается для периода с 1 по 5 число месяца (для интервала заказов) тогда: 1 - документ "Установка согласованной суммы" должен явно это определять (интервал) в регистре должно быть соответствующее измерение по которому при проведении заказов будет определяться из какого интервала расходовать лимит. Ну и последнее после проведения проверяйте если остаток лимита < 0 - облом!
Если лимит задается суммой до ее исчерпания, все так же но проще - при проведении заказа просто уменьшается лимит по контрагенту (опускается аналитика интервала) если после проведения он < 0 - облом!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот