Имя: Пароль:
1C
1С v8
Приходный кассовый ордер. Не отображаются деньги в кассе.
0 ThugLife
 
28.03.12
10:08
Создаю программно документ ПКО.

[CODE]
приходныйКассовыйОрдер = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
           приходныйКассовыйОрдер.Дата = Дата(элемент.ПолучитьАтрибут("Дата"));
           приходныйКассовыйОрдер.ВалютаДокумента = рубли;
           приходныйКассовыйОрдер.СуммаДокумента = Число(СокрЛП(элемент.ПолучитьАтрибут("Выручка")));
           приходныйКассовыйОрдер.ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
           приходныйКассовыйОрдер.Комментарий = "Закрытие смены " + элемент.ПолучитьАтрибут("Дата") + ", " +
                                       элемент.ПолучитьАтрибут("НомерДокумента");
           приходныйКассовыйОрдер.Организация = Организация;
           приходныйКассовыйОрдер.СчетКасса = ПланыСчетов.Хозрасчетный.ОперационнаяКасса;
           строкаТабличнойЧасти = приходныйКассовыйОрдер.РасшифровкаПлатежа.Добавить();        
           приходныйКассовыйОрдер.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
           
           строкаТабличнойЧасти.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным;
           строкаТабличнойЧасти.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками;
           
           строкаТабличнойЧасти.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
           частноеЛицо = Справочники.Контрагенты.НайтиПоНаименованию("Частное лицо");
                       
           договорыН = Справочники.ДоговорыКонтрагентов.Выбрать();
            Пока договорыН.Следующий() = 1 Цикл
               Если договорыН.Наименование = "Основной" И договорыН.Владелец = частноеЛицо Тогда
                   ДогН = договорыН.ПолучитьОбъект();
                   break;
               КонецЕсли;
           КонецЦикла;
           приходныйКассовыйОрдер.ДоговорКонтрагента = ДогН.Ссылка;
           приходныйКассовыйОрдер.Контрагент = ДогН.Владелец;
           
           строкаТабличнойЧасти.ДоговорКонтрагента = ДогН.Ссылка;
               
           строкаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
           строкаТабличнойЧасти.СуммаПлатежа = Число(СокрЛП(элемент.ПолучитьАтрибут("Выручка")));
           приходныйКассовыйОрдер.Проведен = Истина;    
           
           приходныйКассовыйОрдер.Записать();        
           
           приходныйКассовыйОрдер.ДоговорКонтрагента = ДогН.Ссылка;
           приходныйКассовыйОрдер.Контрагент = ДогН.Владелец;
           строкаТабличнойЧасти.ДоговорКонтрагента = ДогН.Ссылка;    
           
           приходныйКассовыйОрдер.Записать();
           
           Сообщить("Создан документ ""Закрытие смен""...");
           continue;
[/CODE]

Но в мониторе показывает что все по нулям. Захожу в программно созданный документ повторно выбираю контрагента, жмакаю ОК. Захожу на страницу с монитором, обновляю. Появляются деньги в кассе.
1 ThugLife
 
28.03.12
10:10
Решил установить повторно Контрагента и ДоговорКонтрагента, т.е. с эмитировать те действия которые я выполнял в ручную, но это тоже не помогло
2 Naumov
 
28.03.12
10:10
а перебор договоров сделать только подчиненных слабо?
3 zak555
 
28.03.12
10:11
перевыбери валюту
4 ThugLife
 
28.03.12
10:12
Наумов, слабо. Потому что вчера весь день сидел, и ничего не вышло, поэтому код получился с быдленный.
5 Ненавижу 1С
 
гуру
28.03.12
10:16
приходныйКассовыйОрдер.Проведен = Истина;    
приходныйКассовыйОрдер.Записать();        

так не вызвать обработку проведения, надо вместо этого:

приходныйКассовыйОрдер.Записать(РежимЗаписиДокумента.Проведение);
6 ThugLife
 
28.03.12
10:17
[b]Ненавижу 1С[/b] документ проводится. Но сейчас посмотрю.
7 Ненавижу 1С
 
гуру
28.03.12
10:19
(6) у тебя не проводится он, он просто помечается как проведенный
8 Zaval
 
28.03.12
10:21
(0) Что значит "в мониторе"? Движения есть у документа?
9 ThugLife
 
28.03.12
10:25
Бесполезно. То же самое получается. Денег как не было так и нет.
10 ThugLife
 
28.03.12
10:27
Zaval "Монитор бухгалтера".
11 Конфигуратор1с
 
28.03.12
10:28
"Появляются деньги в кассе." - это как? какие регистры задействованы?
12 Конфигуратор1с
 
28.03.12
10:28
(10)Вы не в монитор бухгалетра посмотрите, а посмотрите какие регистры движет ПКО и какие из них в мониторе выводятся
13 ThugLife
 
28.03.12
10:31
Полегче :D. Я столько слов не знаю. Бухгалтер сказала сделать загрузку. Документ весь загружается, но смысл в том что на вкладке "Монитор" он смотрит, как я понял, сколько денег в кассе.

А поводу движения и регистров - эта терминология мне не известна.
14 ThugLife
 
28.03.12
10:32
она*
15 Ненавижу 1С
 
гуру
28.03.12
10:32
снова код покажи, какой теперь у тебя
16 Ненавижу 1С
 
гуру
28.03.12
10:32
(13) а ты вообще КТО?
17 ThugLife
 
28.03.12
10:34
[CODE]
приходныйКассовыйОрдер = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
приходныйКассовыйОрдер.Дата = Дата(элемент.ПолучитьАтрибут("Дата"));
приходныйКассовыйОрдер.ВалютаДокумента = рубли;
приходныйКассовыйОрдер.СуммаДокумента = Число(СокрЛП(элемент.ПолучитьАтрибут("Выручка")));
приходныйКассовыйОрдер.ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
приходныйКассовыйОрдер.Комментарий = "Закрытие смены " + элемент.ПолучитьАтрибут("Дата") + ", " +
                           элемент.ПолучитьАтрибут("НомерДокумента");
приходныйКассовыйОрдер.Организация = Организация;
приходныйКассовыйОрдер.СчетКасса = ПланыСчетов.Хозрасчетный.ОперационнаяКасса;
строкаТабличнойЧасти = приходныйКассовыйОрдер.РасшифровкаПлатежа.Добавить();        
приходныйКассовыйОрдер.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;

строкаТабличнойЧасти.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным;
строкаТабличнойЧасти.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками;

строкаТабличнойЧасти.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
частноеЛицо = Справочники.Контрагенты.НайтиПоНаименованию("Частное лицо");
           
договорыН = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока договорыН.Следующий() = 1 Цикл
   Если договорыН.Наименование = "Основной" И договорыН.Владелец = частноеЛицо Тогда
       ДогН = договорыН.ПолучитьОбъект();
       break;
   КонецЕсли;
КонецЦикла;
приходныйКассовыйОрдер.ДоговорКонтрагента = ДогН.Ссылка;
приходныйКассовыйОрдер.Контрагент = ДогН.Владелец;
строкаТабличнойЧасти.ДоговорКонтрагента = ДогН.Ссылка;
строкаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
строкаТабличнойЧасти.СуммаПлатежа = Число(СокрЛП(элемент.ПолучитьАтрибут("Выручка")));
приходныйКассовыйОрдер.Движения
приходныйКассовыйОрдер.Записать(РежимЗаписиДокумента.Проведение);        
Сообщить("Создан документ ""Закрытие смен""...");
continue;
[/CODE]
18 ThugLife
 
28.03.12
10:35
Строка приходныйКассовыйОрдер.Движения не нужная
19 Ненавижу 1С
 
гуру
28.03.12
10:40
Переменная "рубли" это что?
и вообще что говорит отладчик?
20 dva1c
 
28.03.12
10:44
(19) Согласен. Жесть.

приходныйКассовыйОрдер.ВалютаДокумента = рубли;
21 ThugLife
 
28.03.12
10:45
[code]рубли = Справочники.Валюты.НайтиПоНаименованию("руб.");[/code]
22 Ненавижу 1С
 
гуру
28.03.12
10:46
(21) и как? находит?
а что все таки с отладчиком?
23 dva1c
 
28.03.12
10:47
(21) Вот уже лучше! )
24 dva1c
 
28.03.12
10:48
Согласен с (22). (21) Можешь отладчик использовать?
25 ThugLife
 
28.03.12
10:50
Да находит.
26 ThugLife
 
28.03.12
10:50
dva1c ясно дело.
27 hhhh
 
28.03.12
10:52
(26) у тебя

строкаТабличнойЧасти.СуммаПлатежа    есть,а

строкаТабличнойЧасти.СуммаВзаиморасчетов не присваивается.

Что за бред у тебя в программе?
28 hhhh
 
28.03.12
10:54
(27)+ половину полей в приходном ордере не заполняешь. Как оно может попасть в монитор?
29 ThugLife
 
28.03.12
11:02
hhhh, спасибо. Деньги отображаются теперь.
30 dva1c
 
28.03.12
11:31
(27)+100
(29) Рад за тебя, что все получилось!