|
Заявка на расходование средств | ☑ | ||
---|---|---|---|---|
0
ColonelAp4u
09.04.15
✎
11:55
|
Добрый день помогите разобраться с не большой проблемой. Есть документ Заявка на расходование средств, который можно создавать на один и тот же документ 2 и более раз превышая сумму по документу. Сделал регистр накопления в который ПТИУ делают расход суммы по документу и заявка на расходование средств приход суммы, в модуле заявки перед запись проверяю по данному документу были ли уже заявки что бы не плодили новые, сделал запрос но некоторые параметры хранятся в ТЧ документа подскажите как их достать от туда? Вот запрос
Для каждого Стр из ССылка.РасшифровкаПлатежа Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДляЗаявокНаРасходСредствОстатки.ДокументРасчетаКонтрагента, | ДляЗаявокНаРасходСредствОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ДляЗаявокНаРасходСредств.Остатки( | &Дата, | ДоговорКонтрагента = &ДоговорКонтрагента | И ДокументРасчетаКонтрагента = &ДокументРасчетаКонтрагента | И Контрагент = &Контрагент | И Организация = &Организация) КАК ДляЗаявокНаРасходСредствОстатки"; Запрос.УстановитьПараметр("ДокументРасчетовСКонтрагентом", Стр.ДокументРасчетовСКонтрагентом); Запрос.УстановитьПараметр("Контрагент", ССылка.Контрагент); Запрос.УстановитьПараметр("Организация", ССылка.Организация); Запрос.УстановитьПараметр("ДоговорКонтрагента", Стр.ДоговорКонтрагента); Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл СуммаОстаткаПоЗаявке=СуммаОстаткаПоЗаявке+Выборка.СуммаВзаиморасчетовОстаток; КонецЦикла; КонецЦикла; Если СуммаОстаткаПоЗаявке = 0 Тогда Отказ=Истина; #Если Клиент Тогда Сообщить("Документ "+Строка(ССылка)+" не отправлен т.к. сумма оплаты "+ССылка.СуммаДокумента+"превышает сумму остатка по заявке "+СуммаОстаткаПоЗаявке); #КонецЕсли КонецЕсли; Исключение КонецПопытки; |
|||
1
ColonelAp4u
09.04.15
✎
11:57
|
параметры Договор контра и ДокументРасчетовСКонтрагентом при первом проведении заявки подставлются нормально, но если я в начале сумму указал в половину меньше и потом делаю вторую заявку на этот же док со второй частью суммы то эти параметры пустые
|
|||
2
DrShad
09.04.15
✎
12:03
|
не самая лучшая идея
|
|||
3
ColonelAp4u
09.04.15
✎
12:06
|
не спорю но ситуация с двумя платежками по одному документу тоже не есть гуд
|
|||
4
DrShad
09.04.15
✎
12:40
|
а что за конфа?
|
|||
5
ColonelAp4u
09.04.15
✎
12:56
|
ут 10,3 8,2
|
|||
6
ColonelAp4u
09.04.15
✎
12:58
|
может подскажите более лучший вариант проверки чтобы не возникало таких ситуаций?
|
|||
7
DrShad
09.04.15
✎
13:05
|
к сожалений с 10-кой давно не работаю
но варианты есть, наверняка есть регистр взаиморасчетов по документам? |
|||
8
Михаил Козлов
09.04.15
✎
13:15
|
(6) При вводе на основании ПТиУ можно попытаться получить остатки из РН ВзаиморасчетыСКонтрагентами по договору (или договор + сделка).
|
|||
9
ColonelAp4u
09.04.15
✎
15:40
|
Если кому интересно сделал вот так и теперь если одна заявка то больше чем сумма документа поступления она быть не может. Вот код, может чуть криво но работает!
Попытка Для каждого Стр Из Ссылка.РасшифровкаПлатежа Цикл СуммаОстаткаПоЗаявке = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаявкиНаРасходованиеСредствОстатки.ДокументРасчетовСКонтрагентом, | ЗаявкиНаРасходованиеСредствОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ЗаявкиНаРасходованиеСредств.Остатки(, ) КАК ЗаявкиНаРасходованиеСредствОстатки |ГДЕ | ЗаявкиНаРасходованиеСредствОстатки.ДокументРасчетовСКонтрагентом = &ДокументРасчетовСКонтрагентом"; Запрос.УстановитьПараметр("ДокументРасчетовСКонтрагентом", Стр.ДокументРасчетовСКонтрагентом); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Не Выборка.Следующий() Тогда СуммаОстаткаПоЗаявке = Стр.ДокументРасчетовСКонтрагентом.СуммаДокумента; Иначе Выборка.Следующий(); СуммаОстаткаПоЗаявке=Стр.ДокументРасчетовСКонтрагентом.СуммаДокумента-Выборка.СуммаВзаиморасчетовОстаток; КонецЕсли; Если Стр.СуммаПлатежа > СуммаОстаткаПоЗаявке Тогда Если РольДоступна("ПолныеПрава") Тогда Отказ = Ложь; Сообщить("Под Вашими Правами проведение Разрешено!!!"); Иначе Отказ=Истина; Сообщить("Документ "+Строка(ССылка)+" не проведен т.к. сумма оплаты "+Стр.СуммаПлатежа+" превышает сумму остатка по заявке "+СуммаОстаткаПоЗаявке); КонецЕсли; КонецЕсли; КонецЦикла; Исключение КонецПопытки; |
|||
10
ColonelAp4u
09.04.15
✎
15:42
|
блин как то по китайски написал в (9)
Если 1 заявка то она не может быть больше суммы документа поступления! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |