Имя: Пароль:
1C
1С v8
Как подставить субконто в РКО?
,
0 ЯТолькоУчусь
 
12.07.12
15:41
День добрый! Создаю РКО программно, счет дебета проставляю 71,01 при разных фирмах разные субконто(сотрудники организации). И вот на этом застряла, не проставляются туда эти сотры((
Тип у субконто Характеристика.ВидыСубконтоХозрасчетные, в реализации все также, но там прокатило так:
Если НоваяСтрока.СчетДоходов.ВидыСубконто.Количество()>0 Тогда
   НоваяСтрока.Субконто = Новый(НоваяСтрока.СчетДоходов.ВидыСубконто[0].ВидСубконто.ТипЗначения.Типы()[0]);
Иначе
   НоваяСтрока.Субконто = Неопределено;
КонецЕсли;
НоваяСтрока.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");

А в РКО ругается - "Значение не является значением объектоного типа (ВидыСубконто)"
(конфа Бухгалтерия предприятия, редакция 2.0 (2.0.36.4))
1 ЯТолькоУчусь
 
13.07.12
06:10
Люди, подскажите плиз!!!
2 Cube
 
13.07.12
06:33
Конфа?
3 Cube
 
13.07.12
06:33
+(2) Ой, сори, не заметил :)
4 Cube
 
13.07.12
06:39
СчетДоходов - это что? Реквизит ТЧ? Типовой? А то у меня в 2.0.25 нет такого...
5 ЯТолькоУчусь
 
13.07.12
06:54
(4) нет, это реквизиты дока
6 Cube
 
13.07.12
06:56
(5) Типовые?
7 Cube
 
13.07.12
06:57
(5) Если реквизит дока, то НоваяСтрока - это документ что ли?
8 ЯТолькоУчусь
 
13.07.12
07:03
Да, типовые.
Этот кусок кода я привела с реализации, где у меня прокатило :) как пример, а в РКО вот так:
Если Не (Организация = Справочники.Организации.НайтиПоКоду("000000005")) И (СуммаПиц<>0) Тогда
ДокРКО = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
ДокРКО.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб.");
ДокРКО.ВидОперации = Перечисления.ВидыОперацийРКО.ПрочийРасход;
ДокРКО.Дата = ДокументОбъект.Дата;
ДокРКО.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000039").Ссылка;
ДокРКО.Основание = "Выручка Пепино";
ДокРКО.СчетКасса = ПланыСчетов.Хозрасчетный.НайтиПоКоду("50.01").Ссылка;
СтрРКО = ДокРКО.РасшифровкаПлатежа.Добавить();
СтрРКО.КратностьВзаиморасчетов = 1;
СтрРКО.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.НеПогашать;
ДокРКО.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("71.01").Ссылка;(вот этот счет!)
Если Организация = Справочники.Организации.НайтиПоКоду("000000003") Тогда
ДокРКО.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000102");
ДокРКО.ДоговорКонтрагента = ДокПКО.Контрагент.ОсновнойДоговорКонтрагента;
//Если ДокРКО.СубконтоДт1.ВидыСубконто.Количество()>0 Тогда
//    ДокРКО.СубконтоДт1 = Новый(ДокРКО.СубконтоДт1.ВидыСубконто[0].ВидСубконто.ТипЗначения.Типы()[0]); (вот тут ругается)
//Иначе
//    ДокРКО.СубконтоДт1 = Неопределено;
//КонецЕсли;
СубконтоДт = ДокРКО.СубконтоДт1;
//ДокРКО.СубконтоДт1. = Справочники.СотрудникиОрганизаций.НайтиПоКоду("0000000007");
СубконтоДт = Справочники.СотрудникиОрганизаций.НайтиПоКоду("0000000007");
ИначеЕсли Организация = Справочники.Организации.НайтиПоКоду("000000004") Тогда (дальше идет то же самое но по др. организации)
9 Cube
 
13.07.12
07:17
На 71 счете субконто физ лица, а не сотрудники, поэтому пытаться лопатой белить потолок не надо))

Пиши так:

ДокРКО.СубконтоДт1 = Справочники.ФизическиеЛица.НайтиПоКоду("000000001");
10 ЯТолькоУчусь
 
13.07.12
07:22
Незнаю, у меня субконто именно сотры
Могу скрин вставить, тока незнаю как :D
11 Cube
 
13.07.12
07:22
Ну и по недочетам:

Вместо: ДокРКО.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("71.01").Ссылка;

Нужно писать: ДокРКО.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами;


Да и вообще, конструкции типа "ПланыСчетов.Хозрасчетный.НайтиПоКоду("71.01").Ссылка" или "Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000039").Ссылка" нужно как минимум переделать в "ПланыСчетов.Хозрасчетный.НайтиПоКоду("71.01")" и "Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000039")" соответственно, и по возможности уйти от использования конструкции "НайтиПоКоду".
12 ЯТолькоУчусь
 
13.07.12
07:24
(11) Да я же болван))) Спасибо за подсказку
13 Cube
 
13.07.12
07:26
14 Cube
 
13.07.12
07:26
(10) Скрины загружай на http://itmages.ru а сюда ссылку на них.
15 ЯТолькоУчусь
 
13.07.12
07:35
(14) Спасибо) И правда это физлица)) Но все равно не прокатило, если в лоб проставлять
ДокРКО.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами;
Если Организация = Справочники.Организации.НайтиПоКоду("000000003") Тогда
ДокРКО.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000102");
ДокРКО.ДоговорКонтрагента = ДокПКО.Контрагент.ОсновнойДоговорКонтрагента;
СубконтоДт = ДокРКО.СубконтоДт1;
СубконтоДт = Справочники.ФизическиеЛица.НайтиПоКоду("0000000007");
16 Cube
 
13.07.12
07:38
(15) А у тебя есть физлицо с кодом "0000000007"?))
17 ЯТолькоУчусь
 
13.07.12
07:39
(16) Конечно :D
18 ЯТолькоУчусь
 
13.07.12
07:40
+ (17) Если бы в этом ошибка была, я б себя убила)))
19 Cube
 
13.07.12
07:41
(15) Так ты что пишешь-то? Смотри, что ты пишешь!!!

СубконтоДт = ДокРКО.СубконтоДт1;
СубконтоДт = Справочники.ФизическиеЛица.НайтиПоКоду("0000000007");

Это ж жесть какая!!!))

Пиши так:

ДокРКО.СубконтоДт1 = Справочники.ФизическиеЛица.НайтиПоКоду("0000000007");
20 ЯТолькоУчусь
 
13.07.12
08:14
(19) Да было у меня так))) Это уже я извращалась, от скуки
21 ЯТолькоУчусь
 
13.07.12
08:29
Пробовала и через УстановитьСубконто, тоже ругается
{ОбщийМодуль.БухгалтерскийУчет.Модуль(1630)}: Значение не является значением объектного типа (Вставить)
       Субконто.Вставить(ВидСубк, ЗначениеСубконто);
22 ЯТолькоУчусь
 
13.07.12
12:03
ап..
23 Cube
 
13.07.12
12:06
(22) Что ап?) Не получилось что ли?
24 hhhh
 
13.07.12
12:16
(23) плохому учишь девушку.
(22) во-первых надо

ДокРКО.ВидОперации = Перечисления.ВидыОперацийРКО. ВыдачаПодотчетномуЛицу;

во-вторых

ДокРКО.Контрагент = Справочники.ФизическиеЛица.НайтиПоКоду("0000000007");

а в-третьих субконто здесь не нужно.
25 Cube
 
13.07.12
12:24
(24) Учу-то я хорошему, а вот то, что я не заметил не верный вид операции - это да, сплоховал...
26 ЯТолькоУчусь
 
13.07.12
12:58
(24) Спасибо, ща попробую
27 ЯТолькоУчусь
 
16.07.12
08:40
Ребята, извините что с опозданием, СПАСИБО! Все получилось, дело было в виде операции