Имя: Пароль:
1C
1С v8
добавление в регистр проводок
0 Kurbash
 
06.11.13
09:22
Хочу программно добавить записи в регистр Хозрасчетный. В моем случае нужен счет 001. По нему три субконто-контрагенты, ОС и Работники организаций (физические лица). С первыми двумя проблем нет а вот с третьим пишет что поле не найдено

Движение = НаборЗаписей.Добавить();
Движение.Регистратор = Операция;
Движение.Период = Операция.Дата;

// Заполнить счет дебета.
Движение.СчетДт = СчетДт;

// Заполнить аналитику счета дебета.
Движение.СубконтоДт.Контрагенты = субконто1;
Движение.СубконтоДт.ОсновныеСредства = Результат.Ссылка;
Движение.СубконтоДт3.ФизическиеЛица = Субконто3;
Движение.Сумма=СуммаАктива;

Где ошибка? Зашел в конфигуратор-в плен счетов в предопределенных на самом деле по этому счету нет никакого субконто, а в режиме предприятия он есть.
1 Allexe
 
06.11.13
09:23
(0) Через ПВХ напиши
2 butterbean
 
06.11.13
09:23
(0) в БП в общем модуле есть процедура для установки значений субконто, погляди в модуле какого-нибудь документа
3 Kurbash
 
06.11.13
09:46
ПВХ-это что?
4 Kurbash
 
06.11.13
09:58
ап
5 hhhh
 
06.11.13
10:02
(4) вот тут

Движение.СубконтоДт3.ФизическиеЛица = Субконто3;

напиши

Движение.СубконтоДт.ФизическиеЛица = Субконто3;
6 George Wheels
 
06.11.13
10:05
Лучше пользоваться этим (2)
7 Kurbash
 
06.11.13
10:43
(5) пробовал уже
8 Kurbash
 
06.11.13
10:43
Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт

    Если Счет = Неопределено ИЛИ Счет.Пустая() Тогда
        Возврат;
    КонецЕсли;

    Если ТипЗнч(ИмяСубконто) = Тип("Число") Тогда
        Если ИмяСубконто > Счет.ВидыСубконто.Количество() Тогда
            Возврат;
        КонецЕсли;
        ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто;
    Иначе
        ВидСубк = ПланыВидовХарактеристик[Метаданные.НайтиПоТипу(ТипЗнч(Счет)).ВидыСубконто.Имя][ИмяСубконто];            
        Если Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено Тогда
            Возврат;
        КонецЕсли;
    КонецЕсли;

    Если ВидСубк.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) Тогда
        Субконто.Вставить(ВидСубк, ЗначениеСубконто);
    Иначе
        Сообщить("Неверное значение """ + ЗначениеСубконто + """ для вида субконто <" + ВидСубк + ">");
    КонецЕсли;

КонецПроцедуры
9 Kurbash
 
06.11.13
10:43
вот что помогло
10 GROOVY
 
06.11.13
10:44
Феерично.