Имя: Пароль:
1C
1С v8
Заполнение субконто в движении
0 Diamond905
 
09.03.14
21:23
В 1с кк всегда реализовано заполнение через то самое место. То есть если мне известно СубконтоДт1, СубконтоДт2 и СубконтоДт3, как мне заполнить их в проводку если я не знаю какого типа будут эти значения??
Стандартное заполнение это типа
Движение.СубконтоДт[ПланВидовХарактеристик.ВидыСубконто.СтатьиЗатрат] = СтатьяЗатрат;

Но я не знаю что будет в Субконто1. Может Статья, может Контрагент. Это мне в задаче не важно. Есть ли какие либо другие возможности заполнения? Уважаемые эксперты, жду ваших предложений. А пока сам пойду крутить какой нибудь велосипед под это дело..
1 Armando
 
09.03.14
21:53
Надеюсь счет тебе известен? Еще подсказки нужны?
2 Diamond905
 
09.03.14
22:13
(1) Нет счет тоже может меняться
3 Armando
 
09.03.14
22:19
(2) И что? Что мешает по номеру субконто узнать его тип?
У счета есть предопределенная табличная часть "ВидыСубконто". Допустим, тебе надо узнать субконто1. Это первая строка в этой ТЧ... Короче, кури СП, там это есть.
4 Armando
 
09.03.14
22:21
>> В 1с кк всегда реализовано заполнение через то самое место
Как всегда виновата фирма 1С...
5 Diamond905
 
09.03.14
23:35
(4) ну а что им сложно было сделать на уровне методов чтобы у движения была возможность написать Движение.СубконтоДт1 = МояСтруктура.СубконтоДт1.
6 Diamond905
 
09.03.14
23:38
(3) Вместо этого я вынужден был навелосипедить:

Для Каждого СтрокаСубконто Из Параметры.СчетДт.ВидыСубконто Цикл
                Вид = СтрокаСубконто.ВидСубконто;  
                Если Вид.ТипЗначения.СодержитТип(ТипЗнч(Параметры.СубконтоДт1)) Тогда
                    НоваяПроводка.СубконтоДт[Вид] = Параметры.СубконтоДт1;
                ИначеЕсли  Вид.ТипЗначения.СодержитТип(ТипЗнч(Параметры.СубконтоДт2)) Тогда
                    НоваяПроводка.СубконтоДт[Вид] = Параметры.СубконтоДт2;
                ИначеЕсли  Вид.ТипЗначения.СодержитТип(ТипЗнч(Параметры.СубконтоДт3)) Тогда
                    НоваяПроводка.СубконтоДт[Вид] = Параметры.СубконтоДт3;
                КонецЕсли;
            КонецЦикла;
7 Armando
 
10.03.14
00:05
В бухе 2.0 где-то в общих модулях есть процедура, которая это делает. Что-то типа БухгалтерскийУчет.УстановитьСубконто()
8 zak555
 
10.03.14
00:06
загрузи результат запроса в набор движений РБ
9 hhhh
 
10.03.14
00:27
(6) через таблицу значений ваяй. Делаешь

ТЗ = Движения.Хозрасчетный.Выгрузить();

с ТЗ работаешь как ты написал в (5)

и потом Движения.Хозрасчетный.Загрузить(ТЗ);
Независимо от того, куда вы едете — это в гору и против ветра!