Как сделать проверку регистра накопления чтобы при расходнике он смотрел сколько он может списать если там уже есть статья и сумма к примеру.
Посмотреть, как в типовых это сделано не предлагать?
Flexy @ Сегодня, 10:53
необходимо зарегистрироваться для просмотра ссылки
,
Предложите только скажите где есть? я не встречал. Верней в типовой я не посмотрю ибо база самописная)
Как мне на это сделать проверку
! |
| необходимо зарегистрироваться для просмотра ссылки: 8
|
ВЫБРАТЬ
ОстаткиЧегото.СуммаОстаток
ИЗ
РегистрНакопления.ОстаткиЧегото.Остатки(&ПериодРегистратора, ) КАК ОстаткиЧегото
...
Если СуммаОстатки ИзЗапроса > СуммаДокументаРегистратора Тогда
...
Flexy @ Сегодня, 11:22
необходимо зарегистрироваться для просмотра ссылки
,
Щас попробую)
Сделал вот так и ничего. где ошибся или везде)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ОстаткиБюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстаткиБюджетРасходовИПриходов.Остатки(&ПериодРегистратора, ) КАК ОстаткиБюджетРасходовИПриходов
|Если
|СуммаОстатки ИзЗапроса > СуммаДокументаРегистратора Тогда
| Отказ = Истина";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ОстаткиБюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстаткиБюджетРасходовИПриходов.Остатки(&ПериодРегистратора, ) КАК ОстаткиБюджетРасходовИПриходов
|;
Запрос.УстановитьПараметр("ПериодРегистратора", ДатаПроводимогоДокумента);
Результат = Запрос.Выполнить();
Если Результать.Пустой() Тогда
// проверять нечего. возврат
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.СуммаОстаток < СуммаПроводимогоДокумента Тогда
//Отказ
КонецЕсли;
Flexy @ Сегодня, 11:42
необходимо зарегистрироваться для просмотра ссылки
,
Ошибки полезли
! |
| необходимо зарегистрироваться для просмотра ссылки: 8
|
Неужели Вы тупо скопировали тот текст запроса, что я писал?
Поставьте правильные (свои) имена переменных в алгоритм
Flexy @ Сегодня, 11:48 необходимо зарегистрироваться для просмотра ссылки
,
Поправил но не могу понять что за параметр результат у меня на него ругаеться.
Ругается потому, что Результать и Результат - две разные переменне
Flexy @ Сегодня, 13:06
необходимо зарегистрироваться для просмотра ссылки
,
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ОстаткиБюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстаткиБюджетРасходовИПриходов.Остатки(&ПериодРегистратора, ) КАК ОстаткиБюджетРасходовИПриходов
|";
Запрос.УстановитьПараметр("ПериодРегистратора", ДатаБюджета);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
// проверять нечего. возврат
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.СуммаОстаток < СуммаВБазовойВалюте Тогда
//Отказ
КонецЕсли;
Значить нет у Вас такого регистра
Flexy @ Сегодня, 13:23
необходимо зарегистрироваться для просмотра ссылки
,
как нет вот он
БюджетРасходовИПриходов <> ОстаткиБюджетРасходовИПриходов
Flexy @ Сегодня, 13:27
необходимо зарегистрироваться для просмотра ссылки
,
НУжно вот так ?
|БюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.БюджетРасходовИПриходов.Остатки(&ПериодРегистратора, ) КАК БюджетРасходовИПриходов
|";
на код не ругаеться но сума проводиться все ровно больше чем в бюджете
Если Выборка.СуммаОстаток < СуммаВБазовойВалюте Тогда
Отказ = Истина;
КонецЕсли;
Flexy @ Сегодня, 13:32
необходимо зарегистрироваться для просмотра ссылки
,
Сделал так
Flexy @ Сегодня, 13:44
необходимо зарегистрироваться для просмотра ссылки
,
ну в бюджете у меня стоит расход по статье этой за месяц 6400. я не могу провести и 100. то есть не работает.
Потому што на дату проведения эта сумма = 0. Вы пытаетесь провести расход раньше чем было поступление.
Flexy @ Сегодня, 13:53
необходимо зарегистрироваться для просмотра ссылки
,
я пробывал уже дату менять вот 1 число
у меня в принципе должна быть не одна проводна в месяц имено на дату бюджета. Бюджет забиваться на месяц и надо чтобы рассходники смотрели на назначение и подразделение и месяц и нельзя было сделать по сумме больше чем в бюджете.
я исправил дату бюджета на 01,02 все работает я не могу провести одним платежом больше чем стоит в бюджете. но я провожу 6400 и потом могу хоть 100 раз проводить эту сумму
В Вашей самописной конфигурации хоть в каком нибудь документе есть контроль превышения остатков?
Что бы 100 раз перепроводить документ, который контролирует остаток нужно перед проведением удалять его движения из регистра.
Flexy @ Сегодня, 14:51 необходимо зарегистрироваться для просмотра ссылки
,
Все заработало. Но мне нужно не только по дате смотреть а и по подразделению и назначению. у нас 3 подразделения и у каждого свой бюджет .Что в запросе нужно дописать?
Цитата(burza @ 23.02.17, 15:06) необходимо зарегистрироваться для просмотра ссылки
Что в запросе нужно дописать?
ГДЕ
Подразделение = &Подразделение И Назначение = &Назначение
Flexy @ Сегодня, 15:50
необходимо зарегистрироваться для просмотра ссылки
,
Поправил так. Или не надо было добавлять строки? но ошибку выдает
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ЗаявкаНаРасходование.МодульОбъекта(163)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(8, 34)}: Поле не найдено "Назначение"
Подразделение = &Подразделение И <<?>>Назначение = &Назначение
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|БюджетРасходовИПриходовОстатки.Подразделение,
|БюджетРасходовИПриходовОстатки.Назначения,
|БюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.БюджетРасходовИПриходов.Остатки(&ПериодРегистратора, ) КАК БюджетРасходовИПриходов
|ГДЕ
|Подразделение = &Подразделение И Назначение = &Назначение
|";
Запрос.УстановитьПараметр("ПериодРегистратора", ДатаБюджета);
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Запрос.УстановитьПараметр("Назначение", НазначениеПлатежа);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
// проверять нечего. возврат
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.СуммаОстаток < СуммаВБазовойВалюте Тогда
Отказ = Истина;
Сообщить("Сумма больше чем Бюджет")
КонецЕсли;
|ВЫБРАТЬ
|БюджетРасходовИПриходов.СуммаОстаток
|ИЗ
| РегистрНакопления.БюджетРасходовИПриходов.Остатки(&ПериодРегистратора, Подразделение = &Подразделение И
| Назначение = &Назначение ) КАК БюджетРасходовИПриходов
Flexy @ Сегодня, 16:09 необходимо зарегистрироваться для просмотра ссылки
,
Всервоно пишет Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ЗаявкаНаРасходование.МодульОбъекта(164)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(9, 34)}: Поле не найдено "Назначение"
Подразделение = &Подразделение И <<?>>Назначение = &Назначение
Опять не правильные имена переменных. Подставляйте свои.
Flexy @ Сегодня, 16:24
необходимо зарегистрироваться для просмотра ссылки
,
поправил. вроде работает но выдает вот такое. Что можна с датой сделать чтобы она не именно на число смотрела а на весь месяц в не зависимости какого числа сделали бюджет
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.СуммаОстаток < СуммаВБазовойВалюте Тогда
Отказ = Истина;
Сообщить("Сумма больше чем Бюджет")
КонецЕсли;
КонецЕсли;
Flexy @ Вчера, 17:05 необходимо зарегистрироваться для просмотра ссылки
,
Работает. Скажите что изменить чтобы при создании документа его дата была не такая же как в бюджете а в пределах месяца. то есть бюджет делается 1 числа а рассходники то уже потом. Сейчас работает только если рассходник на дата бюджета.
burza @ Сегодня, 9:31 необходимо зарегистрироваться для просмотра ссылки
,
Не понял вопрос. Если Установка Бюджета на 01.02, а Заявка на расход 02.02, что происходит при ее проведении?
Flexy @ Сегодня, 11:40 необходимо зарегистрироваться для просмотра ссылки
,
Дата заявки остается не изменой а вот ДатаБюджета должна смотреть на бюджет в периоде месяца. То есть если я делаю 2 бюджета 01.02 на 5000 и 01.03 на 5000 то сейчас заявку можно провести 2 раза за месяц на сумму 10000.
burza @ Сегодня, 11:48
необходимо зарегистрироваться для просмотра ссылки
,
Запрос.УстановитьПараметр("ПериодРегистратора", ДатаБюджета);
Тут не дата бюджета должна быть. А дата документа расхода.
Flexy @ Сегодня, 12:19
необходимо зарегистрироваться для просмотра ссылки
,
Я правельно понял?
так тоже не работает
Запрос.УстановитьПараметр("ПериодРегистратора", Дата);
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Запрос.УстановитьПараметр("Назначение", НазначениеПлатежа);
в документе Бюджет есть 2 даты дата документа и поле месяц, по нем надо информацию брать.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.