Имя: Пароль:
1C
1С v8
Установить значение субконто
0 егаис
 
22.06.22
11:52
Задача создать ручную операцию-клон некоторых документов
    НЗПриемник = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НЗПриемник.Отбор.Регистратор.Установить(Объект.Приемник);
    
    НЗИсточник = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НЗИсточник.Отбор.Регистратор.Установить(Объект.Источник);
    НЗИсточник.Прочитать();
    Для Каждого Запись Из НЗИсточник Цикл
        НоваяЗапись = НЗПриемник.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяЗапись, Запись);
        
        Для НомерСубконто = 1 По Запись.СчетДт.ВидыСубконто.Количество() Цикл
            ЗначениеСубконто = ???
        КонецЦикла;
        
        НомерСубконто = 0;
        Для каждого ВидСубконто Из Запись.СчетДт.ВидыСубконто Цикл
            НомерСубконто = НомерСубконто + 1;
            ЗначениеСубконто = Запись["СубконтоДт"+НомерСубконто];
            Если ЗначениеЗаполнено(ЗначениеСубконто) Тогда
                УстановитьСубконто(НоваяЗапись.СчетДт, Запись.СубконтоДт, НомерСубконто, ЗначениеСубконто);
            КонецЕсли;
        КонецЦикла;  
      
    КонецЦикла;    
    
    НЗПриемник.Записать();


Вопрос - как достучаться до значения  Запись.СубконтоДт    для каждого Запись.СчетДт.ВидыСубконто[i]
можно ли получить значение субконто по имени или надо жестко описывать ПВХ.ВидыСубконтоХозрасчетные?
ну например Запись.СубконтоДт["СтатьиЗатрат"] так не работает
1 RomanYS
 
22.06.22
11:59
(0) ключом этой коллекции является ссылка на ПВХ
2 Dmitrii
 
гуру
22.06.22
12:00
Используй типовую процедуру из общих модулей.
Они, как правило, работают сразу в нескольких вариантах. И по виду субконто (ПВХ.ВидыСубконтоХозрасчетные), и по номеру субконто, и даже просто по значению - сами определят можно ли установить передаваемое значение в качестве субконто соответствующего счёта.
3 егаис
 
22.06.22
12:02
дошло,спасибо
Запись.СубконтоДт[Запись.СчетДт.ВидыСубконто[i].ВидСубконто]
4 Dmitrii
 
гуру
22.06.22
12:05
+ к (2) Например в БП 3.0:

// Процедура устанавливает субконто на счете. Если такое субконто на счете
// отсутствует, то ничего не делается.
// Параметры:
//    Счет         - ПланСчетовСсылка.Хозрасчетный - Счет, к которому относится субконто.
//  Субконто     - РегистрБухгалтерииСубконто.Хозрасчетный - Набор субконто.
//    ИмяСубконто  - Строка, Число - Номер, имя или вид устанавливаемого субконто.
//  ЗначениеСубконто - Произвольный - Значение устанавливаемого субконто.
Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт
5 Dmitrii
 
гуру
22.06.22
12:05
Из общего модуля БухгалтерскийУчет.
6 егаис
 
22.06.22
12:06
(4) это я знаю, может не до конца понимаю как использовать. У меня куча разных проводок, надо динамически значения устанавливать для разных видов субконто
7 егаис
 
22.06.22
12:10
все проще, сам себе буратино
        Для каждого ВидСубконто Из Запись.СчетДт.ВидыСубконто Цикл
            ЗначениеСубконто = Запись.СубконтоДт[ВидСубконто.ВидСубконто];
        КонецЦикла;

закрываем
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан