Имя: Пароль:
1C
1С v8
заявка на расходование средств
,
0 Kurbash
 
16.07.13
09:01
УПП последний релиз. Пытаюсь программно заполнить документ Заявка на расходование средств. ВИд операции-выдача средств подотчетнику. Никак не могу впихнуть сумму-на форме есть реквизиты СуммаВзаиморасчетовПодотчетника и СуммаПлатежаПодотчет, записываю туда-пишет что поля не обнаружены. Действительно, в списке реквизитов документа их нет. Никак не могу найти как они присваиваются.

       Док=документы.ЗаявкаНаРасходованиеСредств.СоздатьДокумент();
   Док.Дата=Дата;
   Док.ДатаРасхода=Дата;
   Док.Организация=Организация;
   Док.ВидОперации=Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствПодотчетнику;
   //открываем форму для возможности дальнейшего редактирования и начинаем заполнять ее
   ФОрма=Док.ПолучитьФорму();
   ФОрма.Открыть();
   //Док.
   Док.Получатель=стр.ФизЛицо;
   Док.ВалютаВзаиморасчетовПодотчетника=Справочники.Валюты.НайтиПоНаименованию("RUR");
   Док.СуммаВзаиморасчетовПодотчетника=суммазаявки;
   Док.СуммаПлатежаПодотчет=суммазаявки;
   Док.Комментарий="Тестирование";
   //Док.Записать(РежимЗаписиДокумента.Проведение);
1 shuhard
 
16.07.13
09:02
(0) не туда метишь,
все нужное ЗнПДС хранит в ТЧ
2 Kurbash
 
16.07.13
09:08
тэкс..это гед-куда?
3 shuhard
 
16.07.13
09:09
(2) какая буква в (1) не понятна ?
4 ДенисЧ
 
16.07.13
09:09
В первую строку ТЧ документа пихай.
Там прикольно сделано, посмотри на источник данных для этих реквизитов
5 Kurbash
 
16.07.13
09:20
ТЧ это табличная чатсь7 откуда она у этого документа?
6 Alex S D
 
16.07.13
09:22
хочешь сказать РасшифровкиПлатежа нету?
7 Kurbash
 
16.07.13
09:25
есть, там при изменении реквизита есть процедурка

Процедура РассчитатьСуммуПлатежа()
   
   Если ВидОперации=Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствПодотчетнику
       ИЛИ ВидОперации=Перечисления.ВидыОперацийЗаявкиНаРасходование.РасчетыПоКредитамИЗаймамСРаботниками Тогда
       ВалютаВзаиморасчетов=ВалютаВзаиморасчетовПодотчетника;
   ИначеЕсли ЕстьРасчетыСКонтрагентами ИЛИ ЕстьРасчетыПоКредитам Тогда
       ВалютаВзаиморасчетов= СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов;
   Иначе
       СтрокаПлатеж.СуммаПлатежа=СтрокаПлатеж.СуммаВзаиморасчетов;
       СуммаДокумента=СтрокаПлатеж.СуммаВзаиморасчетов;
       Возврат;
   КонецЕсли;
   
   Если ВалютаВзаиморасчетов=ВалютаДокумента Тогда
       СтрокаПлатеж.СуммаПлатежа=СтрокаПлатеж.СуммаВзаиморасчетов;
   
   ИначеЕсли (КурсДокумента <> 0) И (СтрокаПлатеж.КратностьВзаиморасчетов <> 0) И (СтрокаПлатеж.КурсВзаиморасчетов <> 0) Тогда
       СтрокаПлатеж.СуммаПлатежа=МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаПлатеж.СуммаВзаиморасчетов, ВалютаВзаиморасчетов,
                                                           ВалютаДокумента,
                                                           СтрокаПлатеж.КурсВзаиморасчетов,КурсДокумента,
                                                           СтрокаПлатеж.КратностьВзаиморасчетов,КратностьДокумента);    
   Иначе
       СтрокаПлатеж.СуммаПлатежа = 0;
   КонецЕсли;
   
   СуммаДокумента=РасшифровкаПлатежа.Итог("СуммаПлатежа");

КонецПроцедуры // РассчитатьСуммуПлатежа()

ее как то использовать если....?
8 Alex S D
 
16.07.13
09:27
вдумайся в (4)

Добавь строку в РасшифровкуПлатежа и заполни ее
9 Kurbash
 
16.07.13
09:30
а блин...сейчас
10 Kurbash
 
16.07.13
09:36
Док=документы.ЗаявкаНаРасходованиеСредств.СоздатьДокумент();
   Док.Дата=Дата;
   Док.ДатаРасхода=Дата;
   Док.Организация=Организация;
   Док.ВидОперации=Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствПодотчетнику;
   //открываем форму для возможности дальнейшего редактирования и начинаем заполнять ее
   ФОрма=Док.ПолучитьФорму();
   ФОрма.Открыть();
   //Док.
   Док.Получатель=стр.ФизЛицо;
   Док.ВалютаВзаиморасчетовПодотчетника=Справочники.Валюты.НайтиПоНаименованию("RUR");
   //добавляем данные в ТЧ
   СТрокаТЧ=Док.РасшифровкаПлатежа.Добавить();
   СТрокаТЧ.СуммаВзаиморасчетов=суммазаявки;
   СТрокаТЧ.СуммаРуб=суммазаявки;
   СтрокаТЧ.СуммаПлатежа=суммазаявки;
   //Док.СуммаВзаиморасчетовПодотчетника=суммазаявки;
   //Док.СуммаПлатежаПодотчет=суммазаявки;
   Док.Комментарий="Тестирование";
11 Kurbash
 
16.07.13
09:36
сумма пустая выходит опять..где ошибся?
12 Галахад
 
гуру
16.07.13
09:38
Наверное, сначала заполнить, затем уже открыть.
13 Kurbash
 
16.07.13
09:42
все, всем спасибо, разобрался
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс