Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мая 2024, 00:00

Процедура ПриИзмененииКонтрагента

Автор AlaMaRit, 05 сен 2015, 14:19

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

AlaMaRit

всем добрый день, ребята я новенький на этом форуме, пришёл с таким вопросом, если не туда пишу, прошу перенаправить, вопрос: нужно изменить программу, так чтобы при выборе контрагента автоматически сканировалась база заявок этого контрагента на наличие долгов и чтобы параллельно фильтровалась дата последней отгрузки. То есть, нужно чтоб это выглядела так: приходит контрагент, говорит хочу сделать заявку на покупку товара на 50000, торговый представитель открывает программу, заходит в документы потом новая заявка, а программа, при выборе пришедшего контрагента, выдаёт сообщение: должник на N-ую сумму, или последняя заявка не закрыта. буду сильно благодарен если поможете. Я тут уже что-то изменил в процедуре ПриИзмененииКонтрагента, выставляю на ваш суд:
Процедура ПриИзмененииКонтрагента()

   глПриВыбореКонтрагента(Контрагент, Договор, 1);
   ПриИзмененииДоговора();
   
   Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
   Рег.ВременныйРасчет(1);
   РассчитатьРегистрыНа(ПолучитьДатуТА());         
   Итог = Рег. СводныйОстаток(Контрагент,,,"Сумма");
   Если Итог < - 100000  Тогда
      Предупреждение("Должник на сумму " + Итог);
      Форма.Закрыть();
   КонецЕсли;
   //Lfh = ПолучитьДатуТА();
   //ВыбКонтр = Контрагент.ТекущийЭлемент();
   //ТекстЗапроса = ТекстЗапроса +    "//{{ЗАПРОС(хочу)
   //|Контр = Регистр.Взаиморасчеты.Контрагент;
   //|Сум = Регистр.Взаиморасчеты.Сумма;
   //|Функция Сумма = КонОст(Сум);
    //|Группировка Контр;
   //|Условие (Контр = ВыбКонтр);
   //|"//}}ЗАПРОС
   //;
   //
   //Запрос = СоздатьОбъект("Запрос");
   //Запрос.ВключитьSQL(1);
   //если Запрос.Выполнить(ТекстЗапроса) = 0 тогда
   //   возврат;
   //конецЕсли;
   //пока Запрос.Группировка("Контрагент") = 1 цикл
   //   
   //   Если (Запрос.Сумма < - 100000 ) Тогда
   //      
   //   Предупреждение("Должник на сумму " + Запрос.Сумма);
   //   Форма.Закрыть(0);
   //   КонецЕсли;//НашДолг = 1
   //конецЦикла;
   

КонецПроцедуры // ПриИзмененииКонтрагента()
Она в принципе работает, но только проверяет наличие долга, превышающий указанную сумму

G_Re

Я бы все твои хотелки делал черным запросом(примерно как у тебя закомментировано). Может дольше чуть-чуть будет работать(а может и нет), но логически более понятно. ..... но это дело вкуса(наверное).

AlaMaRit

Цитата: G_Re от 05 сен 2015, 21:24
Я бы все твои хотелки делал черным запросом(примерно как у тебя закомментировано). Может дольше чуть-чуть будет работать(а может и нет), но логически более понятно. ..... но это дело вкуса(наверное).
что-то не совсем понятно что ты имеешь ввиду, укажи на мои "хотелки" плизз

G_Re

Под термином "хотелки", для краткости, я имел в виду этот твой текст "...нужно изменить программу, так чтобы при выборе контрагента автоматически сканировалась база заявок этого контрагента на наличие долгов и чтобы параллельно фильтровалась дата последней отгрузки. То есть, нужно чтоб это выглядела так: приходит контрагент, говорит хочу сделать заявку на покупку товара на 50000, торговый представитель открывает программу, заходит в документы потом новая заявка, а программа, при выборе пришедшего контрагента, выдаёт сообщение: должник на N-ую сумму, или последняя заявка не закрыта..."

AlaMaRit

G_Re, G_Re, Я на форуме новенький, и всех тонкостей не знаю, Вы по сути вопрос мне помочь можете?

G_Re

Даже не знаю, чем помочь. Принципиально это, по крайней мере, можно реализовать 2 способами, 1 - тот, что ты описал, то есть при ЗАПОЛНЕНИИ документа при выборе Контрагента формируется некая справка об этом контрагенте. 2 вариант - ДО формирования документа(заявки) у оператора(бухгалтера) есть возможность посмотреть это состояние. Это может быть либо отдельный отчет либо кнопочка в форме справочника "Контрагенты". Выбор конкретной ТЕХНОЛОГИЧЕСКОЙ реализации зависит от принятой у вас технологии и комфортности работы оператора. Что же касается ПРОГРАММНОЙ реализации, то основной алгоритм одинаков: если реализация на бухучете, то бухгалтерский запрос, если на регистрах, то обычный запрос. Не знаю, помог или нет, но для более конкретной помощи нужна более конкретная информация.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск