Имя: Пароль:
1C
1С v8
Обработка по обнулению счета
0 Coole
 
27.03.13
16:40
Пишу вот свой шедевр. Хочу обнулить счет с аналитикой, ну все тупо убирается на 000.
Проводка = Документ.Движения.Хозрасчетный.Добавить();
         Проводка.СчетДт = СчетОбнуления;
         Проводка.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
         Для Каждого ВидСубконто Из Проводка.СчетДт.ВидыСубконто Цикл
             Если Строка(ТипЗнч(Выборка.Субконто1)) = Строка(ВидСубконто.ВидСубконто.ТипЗначения) Тогда
                 Проводка.СубконтоДт[ВидСубконто.ВидСубконто.Ссылка] = Выборка.Субконто1;
             КонецЕсли;
         КонецЦикла;
Выборка - запрос по нужному счету. Документ - операция, введенная вручную.
обнуляю к примеру 19.03 первое субконто контрагенты отрабатывает, а вот второе субконто - неопределено. Но я "знаю" его, Выборка.Субконто2 - содержит его значение. Как установить СубконтоДт[1]? или все же [2]?
1 Coole
 
28.03.13
08:41
ап
Как зная счет (19.03) узнать какие у него субконто?
2 snegovik
 
28.03.13
08:54
(0) А если его надо обнулять не в дебет, а в кредит?:-)
3 Coole
 
28.03.13
08:55
Конечно, я бы могла давно написать БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "СФПолученные", Выборка.Субконто2, Истина);
Но мне интересно сделать универсальную процедуру, чтоб выбрать сч60.02 и тоже его обнулить.
Сейчас так: БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, Проводка.СчетДт.ВидыСубконто[1].ВидСубконто.Наименование, Выборка.Субконто2, Истина);
Ругается: {ОбщийМодуль.БухгалтерскийУчет.Модуль(1641)}: Поле объекта не обнаружено (Счета-фактуры полученные)
       ВидСубк = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные[ИмяСубконто];
т.к. надо СФПолученные
4 Coole
 
28.03.13
08:55
(2) это не важно
5 mikecool
 
28.03.13
09:04
(1) через метаданные
6 Coole
 
28.03.13
09:18
(5) не-а, не получается
7 Coole
 
28.03.13
09:23
Проводка.СчетДт.ВидыСубконто[1].ВидСубконто.Метаданные().Имя =    "ВидыСубконтоХозрасчетные"
А надо "СФПолученные"
8 Coole
 
28.03.13
09:31
Аллилуйя!
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 2, Выборка.Субконто2, Истина);
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн