Имя: Пароль:
1C
1С v8
Настройка схемы компоновки данных для автоматического начисления
0 SkillUp
 
15.07.20
17:15
Подскажите пож., впервые с таким сталкиваюсь:

Настройка схемы компоновки данных для автоматического начисления, как ее правильно заполнять?!?!?! У меня, она имеет такой вид. Из-за чего в документ "НачислениеИСписаниеБонусныхБаллов" не заполняется поле партнер и количество начисленных бонусов. Как правильно заполнять, эту СКД для автоматического начисления?! В интернете уже все облазил, информации 0!

Ситуация на фото:
https://drive.google.com/file/d/14co-sBTo_jwGiQiaTxyDuuiNoOsgliz4/view?usp=sharing, https://drive.google.com/file/d/1Rb4oCpmeCP-UDGWEDdcyNjGSDD0T8T8F/view?usp=sharing, https://drive.google.com/file/d/1lXQDtMX3b68Fbwcdc3jh1KWeJD2Ehnv1/view?usp=sharing, https://drive.google.com/file/d/1t4ySXdStxKX4ve39QSjYJjHpBmuNvNuk/view?usp=sharing
1 SkillUp
 
15.07.20
17:21
Вот сама процедура, создания "НачислениеИСписаниеБонусныхБаллов", но там таблица -"ТаблицаНачислениеИСписание" всегда пустая из-за того, что как-то надо настроить СКД для автоматического начисления.  
"
// Выполняет автоматическое начисление и списание бонусных
// баллов по правилу начисления бонусных баллов
//
// Параметры:
//   ПравилоНачисления - СправочникСсылка.ПравилаНачисленияИСписанияБонусныхБаллов) - правило начисления
//
Процедура ВыполнитьАвтоматическоеНачислениеИСписание(ПравилоНачисления) Экспорт
    
    ДатаНачисления = ТекущаяДата();
    
    ТаблицаНачислениеИСписание = ТаблицаНачислениеИСписание(ПравилоНачисления, ДатаНачисления);

    Если ТаблицаНачислениеИСписание.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    ПравилаНачисленияИСписанияБонусныхБаллов.ПериодДействия КАК ПериодДействия,
    |    ПравилаНачисленияИСписанияБонусныхБаллов.КоличествоПериодовДействия КАК КоличествоПериодовДействия,
    |    ПравилаНачисленияИСписанияБонусныхБаллов.КоличествоПериодовОтсрочкиНачалаДействия КАК КоличествоПериодовОтсрочкиНачалаДействия,
    |    ПравилаНачисленияИСписанияБонусныхБаллов.ПериодОтсрочкиНачалаДействия КАК ПериодОтсрочкиНачалаДействия,
    |    ПравилаНачисленияИСписанияБонусныхБаллов.ВидПравила КАК ВидПравила,
    |    ПравилаНачисленияИСписанияБонусныхБаллов.Владелец КАК БонуснаяПрограммаЛояльности
    |ИЗ
    |    Справочник.ПравилаНачисленияИСписанияБонусныхБаллов КАК ПравилаНачисленияИСписанияБонусныхБаллов
    |ГДЕ
    |    ПравилаНачисленияИСписанияБонусныхБаллов.Ссылка = &ПравилоНачисления");
    
    Запрос.УстановитьПараметр("ПравилоНачисления", ПравилоНачисления);
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Если Выборка.Следующий() Тогда
        
        НачислениеИСписаниеБонусныхБаллов = Документы.НачислениеИСписаниеБонусныхБаллов.СоздатьДокумент();
        НачислениеИСписаниеБонусныхБаллов.ПравилоНачисления = ПравилоНачисления;
        НачислениеИСписаниеБонусныхБаллов.Дата              = ДатаНачисления;
        НачислениеИСписаниеБонусныхБаллов.БонуснаяПрограммаЛояльности              = Выборка.БонуснаяПрограммаЛояльности;
        НачислениеИСписаниеБонусныхБаллов.ВидПравила                               = Выборка.ВидПравила;
        НачислениеИСписаниеБонусныхБаллов.КоличествоПериодовДействия               = Выборка.КоличествоПериодовДействия;
        НачислениеИСписаниеБонусныхБаллов.КоличествоПериодовОтсрочкиНачалаДействия = Выборка.КоличествоПериодовОтсрочкиНачалаДействия;
        НачислениеИСписаниеБонусныхБаллов.ПериодОтсрочкиНачалаДействия             = Выборка.ПериодОтсрочкиНачалаДействия;
        НачислениеИСписаниеБонусныхБаллов.ПериодДействия                           = Выборка.ПериодДействия;
        
        Для Каждого СтрокаТЧ Из ТаблицаНачислениеИСписание Цикл
        
            Если НачислениеИСписаниеБонусныхБаллов.ВидПравила = Перечисления.ВидыПравилНачисленияБонусныхБаллов.Начисление Тогда
                НоваяСтрока = НачислениеИСписаниеБонусныхБаллов.Начисление.Добавить();
            Иначе
                НоваяСтрока = НачислениеИСписаниеБонусныхБаллов.Списание.Добавить();
            КонецЕсли;
            
            НоваяСтрока.Партнер = СтрокаТЧ.Партнер;
            НоваяСтрока.Баллы   = СтрокаТЧ.СуммаНачисления;
            
        КонецЦикла;
        
        НачислениеИСписаниеБонусныхБаллов.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
        
    КонецЕсли;
    
КонецПроцедуры