Имя: Пароль:
1C
 
v8: Как программно заполнить поля Субконто в ОперацияБух?
0 FightTerm
 
25.05.11
17:34
Просветите пожалуйста как заполнить поля (Дт)Субконто1, (Дт)Субконто2 и (Кт)Субконто1, (Кт)Субконто2 в ОперацияБух если извесен КОСГУ(Дт), КОСГУ(Кт), (Дт)Счет и (Кт)Счет. Я заполняю поля через РегистрыБухгалтерии.
Когда смотрю ПланыСчетов ЕПСБУ, то там напротив счетов в колонках Субконто1 и Субконто2 отображены справочники из которых должны браться значения для заполнения полей Субконто.
1 nop
 
25.05.11
17:35
что ?
2 FightTerm
 
25.05.11
18:02
(1) Много и непонятно?))
Вот как я заполнял поля счетов и сумм:

       ДБФ = Новый XBase;
   ДБФ.ОткрытьФайл(ИмяФайла);
   Если ДБФ.Открыта() Тогда
       
        СуммаОперации = 0;
        Попытка
           НачатьТранзакцию();
           
           ДокОперация = Документы.ОперацияБух.СоздатьДокумент();
           ДокОперация.Дата = ДатаДокумента;
           ДокОперация.Учреждение = Организация;
           ДокОперация.Содержание = Содержание;
           ДокОперация.Записать();
           ДокОперацияСсылка = ДокОперация.Ссылка;
           
           //Создать набор записей.
           РегЕПСБУ = РегистрыБухгалтерии.ЕПСБУ.СоздатьНаборЗаписей();
           РегЕПСБУ.Отбор.Регистратор.Значение = ДокОперацияСсылка;
           РегЕПСБУ.Отбор.Регистратор.Использование = Истина;
           
           ДБФ.Первая();
           Пока Не ДБФ.Вконце() Цикл
               Состояние("Обрабатывается запись " + ДБФ.НомерЗаписи());
               ДтСчёт = ПланыСчетов.ЕПСБУ.НайтиПоКоду(ДБФ.DT);   //Значение счёта Дт
               КтСчёт = ПланыСчетов.ЕПСБУ.НайтиПоКоду(ДБФ.KT);   //Значение счёта Кт
               ДтКОСГУ = Справочники.КОСГУ.НайтиПоКоду(ДБФ.KOSGUD);
               КтКОСГУ = Справочники.КОСГУ.НайтиПоКоду(ДБФ.KOSGUK);
               
               
               
               РегЗапись = РегЕПСБУ.Добавить();
               РегЗапись.Период = ДатаДокумента;
               РегЗапись.Регистратор = ДокОперацияСсылка;
               РегЗапись.Учреждение = Организация;
               РегЗапись.Содержание = ДБФ.NAZ;
               РегЗапись.СчетДт = ДтСчёт;          // Заполнить счет дебета
               РегЗапись.СчетКт = КтСчёт;          // Заполнить счет кредита
               РегЗапись.Сумма = ДБФ.SUM1;
               РегЗапись.КБКДт = ДБФ.BUH;
               РегЗапись.КБККт = ДБФ.BUH;
               
               //РегЗапись.СубконтоДт = ДтКОСГУ;
               //РегЗапись.СубконтоКт = КтКОСГУ;
               СуммаОперации = СуммаОперации + ДБФ.SUM1;
               ДБФ.Следующая();
           КонецЦикла;
           РегЕПСБУ.Записать();
           
           ДокОперация.СуммаОперации = СуммаОперации;
           ДокОперация.Записать();
           
           ЗафиксироватьТранзакцию();
       Исключение
           ОтменитьТранзакцию();
           Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
       КонецПопытки;
       
       Предупреждение("Обработка завершена!");    
       
       
   Иначе
   Предупреждение("Не удалось открыть файл " + ИмяФайла, 5);
   КонецЕсли;
3 FightTerm
 
25.05.11
18:06
(2) эти поля заполняются отлично:
               РегЗапись.Период = ДатаДокумента;
               РегЗапись.Регистратор = ДокОперацияСсылка;
               РегЗапись.Учреждение = Организация;
               РегЗапись.Содержание = ДБФ.NAZ;
               РегЗапись.СчетДт = ДтСчёт;          // Заполнить счет дебета

               РегЗапись.СчетКт = КтСчёт;          // Заполнить счет кредита

               РегЗапись.Сумма = ДБФ.SUM1;

А вот дальше поля Субконто не хотят заполняться, точнее я не знаю как это сделать... Также не заполняется и КБК (
4 Живой Ископаемый
 
25.05.11
18:08
РегЗапись.СубконтоДт[0] = ЗначениеПервойАналитикиДт;
5 SviFt
 
25.05.11
18:18
(0) заполняй через типовую процедуру ЗаполнитьСубконто где то в общих модулях есть
6 IKSparrow
 
25.05.11
18:21
Операция.СчетДт = СтрВыгрузки.Дебет;
           Попытка
               Операция.СубконтоДт.Вставить(Операция.СчетДт.ВидыСубконто.Получить(0).ВидСубконто,СтрВыгрузки.ДтСубконто1);
           Исключение    
           КонецПопытки;
           Попытка
               Операция.СубконтоДт.Вставить(Операция.СчетДт.ВидыСубконто.Получить(1).ВидСубконто,СтрВыгрузки.ДтСубконто2);
           Исключение    
           КонецПопытки;
           Попытка
               Операция.СубконтоДт.Вставить(Операция.СчетДт.ВидыСубконто.Получить(2).ВидСубконто,СтрВыгрузки.ДтСубконто3);
           Исключение    
           КонецПопытки;
           Попытка
               Операция.СубконтоДт.Вставить(Операция.СчетДт.ВидыСубконто.Получить(3).ВидСубконто,СтрВыгрузки.ДтСубконто4);
           Исключение    
           КонецПопытки;
           Попытка
               Операция.СубконтоДт.Вставить(Операция.СчетДт.ВидыСубконто.Получить(4).ВидСубконто,СтрВыгрузки.ДтСубконто5);
           Исключение    
           КонецПопытки;
7 FightTerm
 
25.05.11
18:31
Спасибо за советы! К сожалению сейчас нет времени попытаться это сделать (уезжаю), но через пару дней обязательно попробую и отпишусь что получилось!..
8 FightTerm
 
28.05.11
19:34
(4) Не совсем понятно, что означает "ЗначениеПервойАналитикиДт". Если можете проясните пожалуйста!
Пробовал так:

            РегЗапись.СубконтоДт[0] = ДБФ.KOSGUD;

и так:

            РегЗапись.СубконтоДт[0] = ДтКОСГУ;

Результат нулевой(

(5) Типовая процедура называется УстановитьСубконто и по идее в 8.1 должна находится в Общие модули -> БухгалтерскийУчет ... но её там почему-то нет
PS: Конфигурация ББУ 1.0
9 FightTerm
 
29.05.11
13:10
Выложите пожалуйста код процедуры УстановитьСубконто, которая находится по ветке Общие модули -> БухгалтерскийУчет для 8.1!
10 toys
 
29.05.11
13:59
тебе же написали в (6)
11 FightTerm
 
29.05.11
14:10
в (6) не пойму, что означают переменные Операция и СтрВыгрузки!
Объясните пожалуйста для "особо одарённых" на пальцах...
Сам не могу разобраться!
12 and2
 
29.05.11
14:30
автор, ищи в конфе по слову "УстановитьСубконто"
13 toys
 
29.05.11
14:32
РегЗапись.СубконтоДт.Вставить(СчетДт.ВидыСубконто.Получить(0).ВидСубконто,ДтКОСГУ)
14 FightTerm
 
29.05.11
15:55
(12) Да вроде уже всё пересмотрел... Нету (
Есть только: СубконтоКОСГУНачалоВыбора; ОбработатьНачалоВыбораСубконто; и ОбработатьВыборСубконто...
15 Mitriy
 
29.05.11
16:35
а можно еще выгрузить набор в ТЗ, заполнить ТЗ, а потом загрузить в набор... для гурманов...
16 FightTerm
 
29.05.11
17:24
Mitriy, ну это для меня вообще пока сложно...
Мне бы что попроще и попонятнее)))
17 FightTerm
 
29.05.11
17:25
это ведь мой первый опыт кодить в 1с))
Закон Брукера: Даже маленькая практика стоит большой теории.