Имя: Пароль:
1C
1C 7.7
v7: Программно назначить субконто в операции
0 Gena1984
 
03.10.15
16:19
Всем добрый вечер! Помогите при создании операции установить тип субконто. Загружается бухгалтерская справка, в 69 счете 1 субконто попадает, а 3 (Сотрудники) я хочу устанавливать после загрузки программно. Если руками в документе счет перебираю, то 3 субконто появляется, а программно никак не получается.
Объект.НазначитьТип("Субконто"+А,ВидыСубконто.Сотрудники); не работает.
Объект.Операция.Кредит.УстановитьАтрибут("Субконто3",ПоВсемСтр); не работает.
Объект.Операция.Кредит.Субконто(3,ПоВсемСтр); не работает
1 RomanYS
 
03.10.15
16:22
последний вариант должен работать, если ПоВсемСтр - справочник.
Можно еще так:
Операция.Кредит.Сотрудники = ПоВсемСтр;
2 Злопчинский
 
03.10.15
16:25
(0) Объект.НазначитьТип("Субконто"+А,ВидыСубконто.Сотрудники); не работает.
.
не трынди, все работает...
Объект сначала спозиционируй.
3 Злопчинский
 
03.10.15
16:27
Опять же - в каком контексте ты назначаешь тип? в модуле формы документа "Бухгалтерская справка", или в своем произвольном коде какой-то обработки..? мало кода - давай больше
4 Gena1984
 
03.10.15
16:28
В произвольном коде обработки
5 Gena1984
 
03.10.15
16:28
Спр  = СоздатьОбъект("Справочник.Сотрудники");
        Спр.НайтиПоНаименованию("По всем сотрудникам",,1);
        ПоВсемСтр = Спр.ТекущийЭлемент();
        Объект.ВыбратьСтроки();
        Пока Объект.ПолучитьСтроку() = 1 Цикл
            Если Объект.СчетКт.Наименование = "Пенсионное обеспечение" Тогда
                Для А = 3 По 3 Цикл
                    Объект.НазначитьТип("Субконто"+А,ВидыСубконто.Сотрудники);
                КонецЦикла;
                //Объект.Операция.Кредит.УстановитьАтрибут("Субконто3",ПоВсемСтр);
                //Объект.Операция.Кредит.Субконто(3,ПоВсемСтр);
                //Объект.Операция.Кредит.Сотрудники = ПоВсемСтр;
            КонецЕсли;
        КонецЦикла;
        //_________
6 RomanYS
 
03.10.15
16:31
Aaa это бухсправка, тогда не трогай операцию.

Объект.НазначитьТип("СубконтоКт3",ВидыСубконто.Сотрудники)
Объект.СубконтоКт3 = Сотрудник;
7 Gena1984
 
03.10.15
16:36
Спасибо огромное RomanYS, пиши номер карты 300р. кину. Только сбербанк. пол дня возился
8 Злопчинский
 
03.10.15
16:37
(5) Это что за хрень?
Объект.СчетКт.Наименование = "Пенсионное обеспечение"
Смени на проверку по коду счета
9 Gena1984
 
03.10.15
16:39
Это я знаю, сменю
10 Злопчинский
 
03.10.15
16:53
И вот это:
Спр.НайтиПоНаименованию("По всем сотрудникам",,1);
отсутствует ветка проверки если не найдено.
и смысл субконто "по всем сотрудникам"..?
может проще оставить это субконото незаполненным, что и будет эквивалентно по всем сотрудникам...?
11 HawkEye
 
03.10.15
17:47
(5)

"Для А = 3 По 3 Цикл" - это сильно ))


в обработке наверное лучше написать, как-то так:


            колвоСубконто = Объект.СчетКт.КоличествоСубконто();
                    Для А = 1 По колвоСубконто Цикл
                        Объект.НазначитьТип("СубконтоКт"+А,Объект.СчетКт.ВидСубконто(А));
12 Злопчинский
 
03.10.15
20:25
(11)  товарищ просто болванку заюзал вот и остались хвосты
Закон Брукера: Даже маленькая практика стоит большой теории.