Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Кто  подскажит С регистрами Взаиморасчетами???? (число прочтений - 2489 )
Nik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 13. Октября 2010
Кто  подскажит С регистрами Взаиморасчетами????
13. Октября 2010 :: 13:22
Печать  
Что-то пока не получается. Нужно в документе Реализация создать блокировку реализации товара. т.е. если мы продали товар 28.09.2010 (уже считается что этот документ КредДок), в договоре контрагента стоит срок количества дней (2 дня) след.  вот эти 2 дня мы можем продавать товар этому контрагенту, до 01.10.2010 года а после запрет продажи тоесть "Этому контрагенту запрещено продавать товар" так как он просрочил оплату кредитного документа.  Вот Это пока не удается релизовать встрял в запросе...(((( Это нужно в торговле и склад 77
я пытаюсь это сделать в модуле документа Реализации (в проверки Контроля кредита ).  Пожалуйста помогите кто сможет....



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

   // Подготовка к заполнению выходных форм данными запроса

   // Заполнение полей "Заголовок"

   Пока Запрос.Группировка("Контрагент") = 1 Цикл
       // Заполнение полей Контрагент
       ТЭ=Запрос.Контрагент;
       // Во временную переменную передаем значение выборки
       СуммаУпр=Запрос.СумКонОст;
       Если ТЭ.ЭтоГруппа()=1 Тогда
           НазГр=СокрЛП(ТЭ.Наименование);
       КонецЕсли;    
       Пока Запрос.Группировка(2) = 1 Цикл
           // Заполнение полей КредДокумент

           Пока Запрос.Группировка(3) = 1 Цикл
               // Заполнение полей ТекущийДокумент
               Если Запрос.ТекущийДокумент = Запрос.КредДокумент Тогда
                   Продолжить;
               КонецЕсли;
               Если Найти("РасходнаяНакладная",Запрос.КредДокумент.Вид())<>0 Тогда
                   ДатаОтгрузки = Запрос.КредДокумент.ДатаДок;
               Иначе
                   ДатаОтгрузки = "";
               КонецЕсли;
               
           КонецЦикла;
       КонецЦикла;
   КонецЦикла;
   // Заполнение полей "Итого"

   // Вывод заполненной формы
   ;      
   
   
   
   
Если (ТекущийДолг + СуммаВзаиморасчетов) > (Договор.СуммаКредита) Тогда  
   
   Если ДатаДок < Ник Тогда     /////////////////////////////////////////////
   
   ИначеЕсли ДатаДок > Ник Тогда
//        ОткрытьФормуМодально("Обработка.Долг");
       //Пк = СоздатьОбъект("Справочник.Контрагент");
       //  
       //
       //Контрагент.Запрет = 1;
       //Сообщить("2 При проведения ха-ха");
       //
       ВалютаКредита = Договор.ВалютаВзаиморасчетов;
       
       СтрокаСообщ = "Сумма накладной вместе с текущим долгом превышает сумму максимального кредита клиенту!
       |   Текущий долг:   "+глФРМ(ТекущийДолг,ВалютаКредита)+"
       |   Остаток кредита:"+глФРМ(Договор.СуммаКредита - ТекущийДолг,ВалютаКредита)+"
       |   Сумма накладной:"+ глФРМ(СуммаВзаиморасчетов,ВалютаКредита)+"!";
       
       Если РазрешитьПревышениеКредита <> 0  Тогда
           глСообщениеПроведения(СтрокаСообщ+ РазделительСтрок+"Документ: "+глПредставлениеДокумента(ТекущийДокумент()), ТекущийДокумент(),,,1);
           Возврат 1;
       Иначе                  
           глНеПроводить(Контекст,СтрокаСообщ);
           Возврат 0;
       КонецЕсли;
   КонецЕсли;
КонецЕсли;
   
   Возврат 1;
   
КонецФункции // КонтрольКредитаПройден()
  
Наверх
 
IP записан
 
Nik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 13. Октября 2010
Re: Кто  подскажит С регистрами Взаиморасчетами????
Ответ #1 - 13. Октября 2010 :: 14:39
Печать  
//Создание объекта типа Запрос
     Запрос = СоздатьОбъект("Запрос");
     ДатаНачала = НачГода(ДатаДок);
     ДатаКонца  = ДатаДок;
     ТЗ =
     "//{{ЗАПРОС(Сформировать)
     |Период с ДатаНачала по ДатаКонца;
     |КредДокумент = Регистр.Взаиморасчеты.КредДокумент;
     |СуммаУпр = Регистр.Взаиморасчеты.Долг;
     |ТекущийДокумент = Регистр.Взаиморасчеты.ТекущийДокумент;
     |Контрагент = Регистр.Взаиморасчеты.Контрагент;
     |Договор = Регистр.Взаиморасчеты.Договор;
     |Функция НачОст = НачОст(СуммаУпр);
     |Функция Приход = Приход(СуммаУпр);
     |Функция Расход = Расход(СуммаУпр);
     |Функция КонОст = КонОст(СуммаУпр);
     //|Функция КонОстПР = КонОст(СуммаУпр) когда(Просрочен(КредДокумент)=1);
     |Группировка Контрагент Без групп;
     |Группировка КредДокумент Без групп;
     |Группировка ТекущийДокумент;
     |"//}}ЗАПРОС
     ;
     
     // Если ошибка в запросе, то выход из процедуры
     Если Запрос.Выполнить(ТЗ) = 0 Тогда
           Возврат 0;
     КонецЕсли;

     // Подготовка к заполнению выходных форм данными запроса
    ТК = СоздатьОбъект("ТаблицаЗначений");
     // Заполнение полей "Заголовок"
    Запрос.Выгрузить(ТК);
     
     ТК.ВыбратьСтроку();



запрос почему-то не выдает ни каких данных, даже после выгрузки в таблицу значении.(((((
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Кто  подскажит С регистрами Взаиморасчетами????
Ответ #2 - 13. Октября 2010 :: 16:45
Печать  
По-уму, если не привязываться к оплатам и креддокам,
Цитата:
Сумма просроченного долга = ТекущийДолг на документ - Продажа + Возврат

где Продажа и Возврат вычисляются за период с ДатаДок-количество дней кредита по позиция док.
  
Наверх
 
IP записан
 
Nik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 13. Октября 2010
Re: Кто  подскажит С регистрами Взаиморасчетами????
Ответ #3 - 13. Октября 2010 :: 18:41
Печать  
долг тут не причём... нужна получить дату кредитного документа который был продан ранее. т.е 28.09.2010 был продан товар клиенту №1 и 30.09.2010 (или 05.10.2010) тому же клиенту нужна получить дату первой продажи.... пока что-то не получается.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Кто  подскажит С регистрами Взаиморасчетами????
Ответ #4 - 13. Октября 2010 :: 19:46
Печать  
Вот это поток мыслей у топик-стартера. Не может ли автор попробовать помыслить и изложить свои мысли исходя из того
"при каких условиях (каких остатках по регистру Покупатели) не может быть разрешена отгрузка?
  
Наверх
IP записан
 
Nik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 13. Октября 2010
Re: Кто  подскажит С регистрами Взаиморасчетами????
Ответ #5 - 15. Октября 2010 :: 07:05
Печать  
Извините я не правильно выразился, но эту задачу у далось реализовать все работает. УРА Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать