| 
    
        
     
     | 
    
    
  | 
Помогите, как можно реализовать задачу! | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        pavel_vip    
     29.09.11 
            ✎
    11:54 
 | 
         
        Конфигурация Управление торговлей 10! В справочнике "контрагенты" контрагенты разделены по группам,то есть контрагент или несколько контрагентов подчинены одному контрагенту. При покупке некоторого товара контрагенту начисляется определенное количество баллов, которые указанны  и закреплены за конкретной позицией в справочнике "номенклатура". Дак вот что нужно - нужно вести учет количества баллов по каждому контрагенту и сумме балов по группе контрагентов. Как в 1С все это можно реализовать? 
  
        для наглядности могу скинуть обработку на 1С 7.7 или код.  | 
|||
| 
    1
    
        IamAlexy    
     29.09.11 
            ✎
    11:55 
 | 
         
        эээ в отчете по баллам сгруппировать по группе :)     
         | 
|||
| 
    2
    
        Pro100    
     29.09.11 
            ✎
    11:56 
 | 
         
        (0) А что мешает сделать также как в 7.7 было?     
         | 
|||
| 
    3
    
        shuhard    
     29.09.11 
            ✎
    11:57 
 | 
         
        (0)[Как в 1С все это можно реализовать]
  
        запросом  | 
|||
| 
    4
    
        Godofsin    
     29.09.11 
            ✎
    11:57 
 | 
         
        >>несколько контрагентов подчинены одному контрагенту
  
        Холдинг что ле?  | 
|||
| 
    5
    
        pavel_vip    
     29.09.11 
            ✎
    11:57 
 | 
         
        Функция НайтиВетку(ГруппаНПА,ТекКонтр)
  
        СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); //сообщить(ТекКонтр); Если СпрКонтр.ВыбратьЭлементыПоРеквизиту("Спонсор",ТекКонтр)=1 Тогда Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл ГруппаНПА.ДобавитьЗначение(СпрКонтр.ТекущийЭлемент()); //сообщить(СпрКонтр.ТекущийЭлемент()); Если ТекКонтр = СпрКонтр.ТекущийЭлемент() Тогда сообщить("Проверьте: "+СокрЛП(ТекКонтр)); Возврат 0; КонецЕсли; Если НайтиВетку(ГруппаНПА,СпрКонтр.ТекущийЭлемент())=1 Тогда // КонецЕсли; КонецЦикла; Иначе Возврат 0; КонецЕсли; Возврат 1; КонецФункции //НайтиВетку() Процедура Печать(Докум, Устройство=0, КолвоКопий=1) Перем НачПовт, КонПовт; //Посчитаем баллы с начала месяца... //индивидуальные ДатаНач = НачМесяца(Докум.ДатаДок); ДатаКон = Докум.ДатаДок; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с ДатаНач по ДатаКон; |ОбрабатыватьДокументы Проведенные; |Покупатель = Документ.ЗаявкаПокупателя.Контрагент,Документ.Замена.Контрагент; |Склад = Документ.ЗаявкаПокупателя.Склад,Документ.Замена.Склад; |СуммаББ = Документ.ЗаявкаПокупателя.СуммаББ; |СуммаББЗ = Документ.Замена.СуммаББ; |СуммаЗББ = Документ.Замена.СуммаББ1; |Функция Баллы = Сумма(СуммаББ + (СуммаЗББ - СуммаББЗ)); |Условие (Покупатель = Докум.Контрагент); |Условие (Склад = Докум.Склад); |Группировка Покупатель без групп; |"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; СтрокаББСНачалаМесяца = ""; СуммаББЛичная = 0; Если Запрос.Группировка("Покупатель") = 1 Тогда СуммаББЛичная = Запрос.Баллы; КонецЕсли; СтрокаББСНачалаМесяца = "Сумма личных баллов с начала месяца (включая данный док-т): "+глФРМ(СуммаББЛичная); //спонсорские //сначала составим список группы ГруппаНПА = СоздатьОбъект("СписокЗначений"); ГруппаНПА.УдалитьВсе(); СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); СпрКонтр.ВыбратьЭлементы(); Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл Если СпрКонтр.Спонсор = Докум.Контрагент Тогда ГруппаНПА.ДобавитьЗначение(СпрКонтр.ТекущийЭлемент()); //сообщить(СпрКонтр.ТекущийЭлемент()); Если НайтиВетку(ГруппаНПА,СпрКонтр.ТекущийЭлемент())=0 Тогда Продолжить; //Прервать; КонецЕсли; КонецЕсли; КонецЦикла; //СчетчикЦикла = 0; //Для СчетчикЦикла = 1 По ГруппаНПА.РазмерСписка() Цикл //ВспТекст = ""; //сообщить(ГруппаНПА.ПолучитьЗначение(СчетчикЦикла,ВспТекст)); //КонецЦикла; СуммаББСпонсорская = 0; Если ГруппаНПА.РазмерСписка()>0 Тогда ТекстЗапроса = " |Период с ДатаНач по ДатаКон; |ОбрабатыватьДокументы Проведенные; |Покупатель = Документ.ЗаявкаПокупателя.Контрагент,Документ.Замена.Контрагент; |Склад = Документ.ЗаявкаПокупателя.Склад,Документ.Замена.Склад; |СуммаББ = Документ.ЗаявкаПокупателя.СуммаББ; |СуммаББЗ = Документ.Замена.СуммаББ; |СуммаЗББ = Документ.Замена.СуммаББ1; |Функция Баллы = Сумма(СуммаББ + (СуммаЗББ - СуммаББЗ)); |Условие (Покупатель в ГруппаНПА); |Условие (Склад = Докум.Склад); |Группировка Покупатель без групп; |"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка("Покупатель") = 1 Цикл //Сообщить(СокрЛП(Запрос.Покупатель)+" = "+СокрЛП(Запрос.СуммаББ)); СуммаББСпонсорская = СуммаББСпонсорская + Запрос.Баллы; КонецЦикла; КонецЕсли; СуммаББСпонсорская = СуммаББСпонсорская + СуммаББЛичная; СтрокаББСНачалаМесяца = СтрокаББСНачалаМесяца + РазделительСтрок + "Сумма групповых баллов с начала месяца (включая данный док-т): "+глФРМ(СуммаББСпонсорская);  | 
|||
| 
    6
    
        pavel_vip    
     29.09.11 
            ✎
    11:58 
 | 
         
        мешает то что я начинающий программист, и пока не могу сам все это реализовать     
         | 
|||
| 
    7
    
        IamAlexy    
     29.09.11 
            ✎
    11:59 
 | 
         
        начинающий VIP программист? :)     
         | 
|||
| 
    8
    
        pavel_vip    
     29.09.11 
            ✎
    12:00 
 | 
         
        надеюсь что господа с данного форума люди грамотные и умные, и в свободное время ничем не занимаются, может и поможет кто нить:)     
         | 
|||
| 
    9
    
        Vadim_37    
     29.09.11 
            ✎
    12:01 
 | 
         
        Привязываться к группе несколько рискованно, оператор может положить в группу как бог пошлет. А вот "головной контрагент" это да, более надежно. Только из (0) я понял, что у вас и так все реализовано. Продаете баллы (в РТиУ) потом отчет "продажи" и все видно.     
         | 
|||
| 
    10
    
        Vadim_37    
     29.09.11 
            ✎
    12:03 
 | 
         
        (5) платили за каждую строчку?     
         | 
|||
| 
    11
    
        pavel_vip    
     29.09.11 
            ✎
    12:12 
 | 
         
        у меня есть конфигурация на 7.7 в которой это все реализованно, а нужно это все дело перенести на 8-ку.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |