Имя: Пароль:
1C
1С v8
ЗУП: программно заполнить субконто в проводке !!!!!
0 листопад
 
13.09.12
15:20
ЗУП, 2.5.54.1

Надо добавить проводки в документ "Отражение зарплаты в рег.учете". На форме документа "ОтражениеЗПвРегУчете" создала кнопку, на ней процедуру, которая ищет определенную проводку в ТЧ и если находит ее, то создает еще одну, новую.
Т.е. если встречается проводка в ТЧ: Дт96 (субконто "Оценочные (премия)") - Кт70 то добавляется новая проводка Дт26 - Кт70.

Проблема возникает с заполнением субконто у счета 26 и счета70. Подскажите, как в новой проводке, у счета26 проставить субконто Справочники.СтатьиЗатрат "Зарплата"???

Вот код:


Счет96 = ПланыСчетов.Хозрасчетный.РезервыПредстоящихРасходов;
   Счет70 = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда;
   Счет26 = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы;
   
   Субконто96 = Справочники.Резервы.НайтиПоНаименованию("Оценочные (премия)");
   Субконто26 = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Зарплата", Истина);
   
   ТабЧасть = ЭтотОбъект.ОтражениеВУчете;
   
   Для каждого Строка Из ТабЧасть Цикл
       
       Если Строка.СчетДт = Счет96 И Строка.СчетКт = Счет70 Тогда
           Если Строка.СубконтоДт1 = Субконто96 Тогда
               Сообщить ("НАШЛА!!!");
               
               Проводка = ТабЧасть.Добавить();
               Проводка.СчетДт = Счет26;
               
               //вот здесь как установить нужное субконто у счета 26
               Если Проводка.СубконтоДт1 = Субконто26 Тогда
                   Сообщить("Нашла субконто!!!");
               КонецЕсли;
               
               Проводка.СчетКт = Счет70;
               Проводка.СуммаНУ = Строка.Сумма;
               
           КонецЕсли;
       КонецЕсли;
       
   КонецЦикла;
1 almar
 
13.09.12
15:27
не поверишь!
Проводка.СубконтоДт1 = Субконто26;
2 листопад
 
13.09.12
15:31
(1) Так делала, не помогает!!!
3 almar
 
13.09.12
15:32
(2) посмотри, что тебе возвращает
Субконто26 = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Зарплата", Истина);
4 листопад
 
13.09.12
15:38
(3) Вот отладчик:  http://s43.radikal.ru/i102/1209/5b/2f3620a3e53e.jpg
Возвращает то, что нужно, но вот как присвоить это значение субконто???
5 листопад
 
13.09.12
15:47
+(0) Смотрю через отладчик, счету26 присваивает значение субконтоДт1 "Зарплата" в строчке:
Проводка.СубконтоДт1 = Субконто26;

Но в пользовательском режиме - это субконто у счета26 пустое!!!
6 almar
 
13.09.12
15:54
Давай перепишем аккуратней.
Вот так плохо:

Для каждого Строка Из ТабЧасть Цикл
Проводка = ТабЧасть.Добавить();

Т.е. ты в цикле меняешь ТабЧасть, по которой у тебя цикл для каждого

Лучше как-то так:

Кол=ОтражениеВУчете.Количество();
Для Ном=0 по Кол-1 Цикл

Стр=ОтражениеВУчете[ном];
7 IBTM
 
13.09.12
16:06
(5) "листопад" было у меня такое же и помнится, помнится, все же было напутано, с тем что я смотрю в предприятии, с тем что в конфигураторе...
8 IBTM
 
13.09.12
16:10
+ к (7) ещё вспоминаю, что там помоему не соответствовали типы данных у субконт.
Твоё субконто - СпрСсылка.СтатьиЗатрат, в предприятии там возможно не оно или составное...
9 листопад
 
13.09.12
16:21
(7), (8) Ну надо же! Вы оказались правы!!! Там с субконто несоответсвие!!!

Вместо: Проводка.СубконтоДт1 = Субконто26;
Написала: Проводка.СубконтоДт2 = Субконто26;

И в ТЧ документа, у счета26 присваивается значение субконтоДт1 "Зарплата"!!!
10 mehmat
 
13.09.12
16:24
красивая фотка в профиле творит чудеса!
11 Demasiado
 
13.09.12
16:31
(10) +1