Имя: Пароль:
1C
1С v8
Программное заполнение приходного кассового ордера в 1С: БГУ 8
0 tumpalgin
 
24.11.11
14:24
Уважаемые форумчане, прошу вашей помощи. Никак не удается программно провести приходник. Точнее заполнить всего один реквизит: Нулевой КБК. Приведу вначале код:
   Док = Документы.НД_ПКО.СоздатьДокумент();
   Док.Дата = ТекущаяДата();

   КБКСчетКассы = Справочники.КБК.НайтиПоРеквизиту("ВидКБК","Произвольный");
   
   Док.КратностьВзаиморасчетов = 1;
   Док.КурсВзаиморасчетов = 1;
   Док.Аннулирован = Ложь;  
   Док.Валюта = Справочники.Валюты.НайтиПоКоду("643");
   Док.ВалютнаяСуммаДокумента = 200;
   Док.ВидОперации = Справочники.ВидыОпераций.НД_ПКО_ПоступлениеОтПокупателей;
   Док.Основание = "Доходы от оказания платных услуг";
   Док.Подразделение = Справочники.Подразделения.НайтиПоКоду("000000004");
   Док.ПодразделениеИз = Док.Подразделение;
   Док.ПринятоОт = "Конновой Натальи Яковлевны";
   Док.СуммаДокумента = 200;
   Док.СчетКассы = ПланыСчетов.ЕПСБУ.НайтиПоКоду("201.34");
   Док.УказыватьНДС = Ложь;
   Док.Учреждение = Справочники.Организации.НайтиПоКоду("С0001");
   Док.ЦелевоеНазначение = Справочники.НД_ЦелевыеНазначения.НайтиПоКоду("130");
   Док.ЕстьЧек = Ложь;
   Док.глБухгалтер = Справочники.Сотрудники.НайтиПоНаименованию("Михайлова Татьяна Юрьевна");
   Док.Кассир = Справочники.Сотрудники.НайтиПоНаименованию("Блинова Екатерина Вениаминовна");
   Док.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Коннова Наталья Яковлевна");
   ДокТабл = Док.СтрокиДокумента.Добавить();
   ДокТабл.КБКназначения = КБКСчетКассы;
   ДокТабл.КОСГУназначения = Справочники.КОСГУ.НайтиПоКоду("130");
   ДокТабл.СчетКредита = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
   ДокТабл.КБКСчетКредита = КБКСчетКассы;
   ДокТабл.КОСГУСчетКредита = Справочники.КОСГУ.НайтиПоКоду("000");
   ДокТабл.СубконтоСчетКредита2 = Справочники.Контрагенты.НайтиПоНаименованию("Калачева Вера Степановна");
   ДокТабл.СубконтоСчетКредита3 = Справочники.Договоры.НайтиПоКоду("000000836");
   ДокТабл.ВалютнаяСумма = 200;
   ДокТабл.Сумма = 200;
   ДокТабл.Договор = Справочники.Договоры.НайтиПоКоду("000000836");
   ДокТабл.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Калачева Вера Степановна");
   ДокТабл.КВД = Перечисления.КВД.Внебюджет;
   
   ДокТабл.КБКСчетКассы = КБКСчетКассы;
   ДокТабл.КОСГУСчетКассы = Справочники.КОСГУ.НайтиПоКоду("000");
       Попытка
   Док.Записать(РежимЗаписиДокумента.Запись);    
   Исключение
   Сообщить("НЕ ЗАПИСАН");
   КонецПопытки;

Документ не проводится, не проставляется КБК, пробовал по разному:
КБК = Справочники.КБК.НайтиПоКоду("00000000000000000"); (но оказывается у него и нет такого реквизита)
КБК = Справочники.КБК.НайтиПоНаименованию("Произвольный");
КБК = Справочники.КБК.НайтиКПС("Произвольный"); (пишет недостаточно параметров)
КБК = Справочники.КБК.НайтиПоРеквизиту("ВидКБК","Произвольный").
Он там один в справочнике. Но в документ не заходит.
Смотрел реквизит ВидКБК, он проходит как перечисление. Нужное значение - "Произвольный".
Имеется еще такой метод: Док.ЗаполнитьКБККассыВСтроке(ДокТабл)-но опять же недостаточно параметров.
В модуле этого документа есть такие процедуры:
Процедура ЗаполнитьКБККассыВСтроке(СтрДокумента) Экспорт
   Если НЕ ЗначениеЗаполнено(СтрДокумента["КБКСчетКассы"]) Тогда
       СтрДокумента["КБКСчетКассы"] = ПолучениеНСИ.ПолучитьЕдинственныйКБКРабочегоСчета(Учреждение, Баланс, СтрДокумента.КВД, СчетКассы, Дата);
   КонецЕсли;
КонецПроцедуры    
//СтруктураСчетаКассы     = ПолучениеНСИ.НД_ОпределениеСчетаКассы("201.34", Учреждение, КВД, Дата);
           
       //Если СтруктураСчетаКассы.Количество() > 0 Тогда
       //    СчетКассы           = СтруктураСчетаКассы.Получить("СчетКассы");
       //    КБКСчетКассы        = СтруктураСчетаКассы.Получить("КБКСчета");
       //КонецЕсли;
       //
       //КОСГУСчетКассы          = Справочники.КОСГУ.НайтиПоКоду("510");
Но вот как применить это, я не знаю. Очень надеюсь на вашу помощь.
1 Error pro
 
24.11.11
14:32
Справочники.Кбк.НайтиПоНаименованию("18200000000000000") все находит, такого реквизита как ВидКБК нету , в табличной части "Расшифровка платежа" есть поля КБКСчетДебета и КБКСчетКредита вот их и заполняй.
2 Error pro
 
24.11.11
14:34
+(1) смотрел док кассовое поступление, в твоем случае в таблице СтрокиДокумента заполняй эти поля.
3 Error pro
 
24.11.11
14:36
КБКСчетКассы = Справочники.Кбк.НайтиПоНаименованию("18200000000000000");  
ДокТабл.КБКСчетКредита = КБКСчетКассы;
4 tumpalgin
 
25.11.11
08:26
Спасибо тебе большое, все получилось!