Имя: Пароль:
1C
1С v8
БП 3.0. Установить субконто в проводке, если таковое есть.
0 Креатив
 
16.07.23
17:52
Есть реквизит типа справочник. Нужно проверить, есть ли в проводке субконто соответствующего типа.
При положительном результате, установить это значение.
Не соображу, как сопоставить тип реквизита и вид субконто на счете.
1 1CBaseV8
 
16.07.23
18:26
Проверить элемент ПВХ или то что ПВХ включает тип справочника?
2 1CBaseV8
 
16.07.23
19:04
Как-то так:

&НаСервере
Процедура УстановкаСубконто(текСчет, текСубконто)
    
    Для Каждого текСуб из текСчет.ВидыСубконто Цикл
        Если текСуб.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты ТОгда
            текСубконто[текСуб.ВидСубконто] = Объект.ссКонтрагент;
        КонецЕсли;     
        
        Если текСуб.ВидСубконто.ТипЗначения.СодержитТип(Тип("СправочникСсылка.Склады")) ТОгда
            текСубконто[текСуб.ВидСубконто] = Объект.ссСклад;
        КонецЕсли;     
    КонецЦикла;
    
КонецПроцедуры
      
&НаСервере
Процедура кмдУстановитьНаСервере()
    
    нзБух = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    нзБух.Отбор.Регистратор.Установить(Объект.ссДок);
    нзБух.Прочитать();
    
    
    Для каждого запБух из  нзБух Цикл
        
        УстановкаСубконто(запБух.СчетДт, запБух.СубконтоДт);
        УстановкаСубконто(запБух.СчетКт, запБух.СубконтоКт);
        
        //Для Каждого текСуб из запБух.СчетДт.ВидыСубконто Цикл
        //        
        //    
        //    Если текСуб.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты ТОгда
        //        запБух.СубконтоДт[текСуб.ВидСубконто] = Объект.ссКонтрагент;
        //    КонецЕсли;     
        //    
        //    Если текСуб.ВидСубконто.ТипЗначения.СодержитТип(Тип("СправочникСсылка.Склады")) ТОгда
        //        запБух.СубконтоДт[текСуб.ВидСубконто] = Объект.ссСклад;
        //    КонецЕсли;     
        //    
        //КонецЦикла;
    КонецЦикла;
    нзБух.Записать();
    
    
КонецПроцедуры
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн