Имя: Пароль:
1C
1С v8
КД2 перенос Субконто
0 krasnodar95
 
24.05.13
14:33
Из бп 77 в бп 82 переношу обортоты за период по дт76.АВ кт68.2. В пко формирую ТЗ:

ВыборкаДанных=СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Хозрасчетный");
ВыборкаДанных.НоваяСтрока();
ВыборкаДанных.Хозрасчетный=СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.Хозрасчетный.НоваяКолонка("СубконтоДт");
ВыборкаДанных.Хозрасчетный.НоваяКолонка("Сумма");
ВыборкаДанных.Хозрасчетный.НоваяКолонка("СчетДт");
ВыборкаДанных.Хозрасчетный.НоваяКолонка("СчетКт");

БухИтоги=СоздатьОбъект("БухгалтерскиеИтоги");
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.СчетаФактурыВыданные);
БухИтоги.ВыполнитьЗапрос(ДатаНачала, ДатаОкончания, "76.АВ", "68.2",,2,,);
БухИтоги.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Пока БухИтоги.ПолучитьСубконто()=1 Цикл
   БухИтоги.ВыбратьСубконто(ВидыСубконто.СчетаФактурыВыданные);
   Пока БухИтоги.ПолучитьСубконто()=1 Цикл
       ВыборкаДанных.Хозрасчетный.НоваяСтрока();
       
       ВыборкаДанных.Хозрасчетный.СчетДт=СоздатьОбъект("Счет");
       ВыборкаДанных.Хозрасчетный.СчетДт.НайтиПоКоду("76.АВ");
       ВыборкаДанных.Хозрасчетный.СчетКт=СоздатьОбъект("Счет");
       ВыборкаДанных.Хозрасчетный.СчетКт.НайтиПоКоду("68.2");
       
       ВыборкаДанных.Хозрасчетный.СубконтоДт=СоздатьОбъект("ТаблицаЗначений");
               
       ВыборкаДанных.Хозрасчетный.СубконтоДт.НоваяКолонка("Ключ");
       ВыборкаДанных.Хозрасчетный.СубконтоДт.НоваяКолонка("Значение");
       ВыборкаДанных.Хозрасчетный.СубконтоДт.НоваяСтрока();
       ВыборкаДанных.Хозрасчетный.СубконтоДт.Ключ=ВидыСубконто.Контрагенты;
       ВыборкаДанных.Хозрасчетный.СубконтоДт.Значение=БухИтоги.Субконто(1);
       ВыборкаДанных.Хозрасчетный.СубконтоДт.НоваяСтрока();
       ВыборкаДанных.Хозрасчетный.СубконтоДт.Ключ=ВидыСубконто.СчетаФактурыВыданные;
       ВыборкаДанных.Хозрасчетный.СубконтоДт.Значение=БухИтоги.Субконто(2);
       ВыборкаДанных.Хозрасчетный.Сумма=БухИтоги.ДО();
   КонецЦикла;
КонецЦикла;

Еще я создал ПКО для СчетаФактурыВыданные, Контрагенты и Хозрасчетный(для плана счетов) при выгрузке из 77 пишет:

Возврат мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(НомерПКО, Реквизит);
{D:\1С\БАЗЫ\ПЕРЕНОС77В82\ОБРАБОТКАДЛЯ77.ERT(2042)}: Номер за пределами значения!

Я предполагаю что это потому что я не смог связать субконто с создаными ПКО, а как это сделать не знаю. Если выгружать без субконто то все работает.
1 krasnodar95
 
24.05.13
14:34
"Из бп 77 в бп 82 переношу обортоты за период по дт76.АВ кт68.2. В пко формирую ТЗ: "-извиняюсь не в ПКО а в ПВД
2 krasnodar95
 
24.05.13
14:53
Наааароооод!!!
3 dk
 
24.05.13
15:01
в ПКС Субконто не указывал жестко ПКО?
4 krasnodar95
 
24.05.13
15:03
(3) Неа, можно пример?
5 dk
 
24.05.13
15:11
В ПКС субконто пропиши
ПередВыгрузкой:

Сообщить(ТипЗначенияСтр(Объект.Субконто));
Попытка
Сообщить(Объект.Субконто.Вид());
Исключение
КонецПопытки
6 dk
 
24.05.13
15:11
ну и смотри на каком субконто вывалится
7 krasnodar95
 
24.05.13
15:43
(6) Вываливается на самом первом вот все что вывелось:
Начало выгрузки:   24.05.13 15:39:54
ТаблицаЗначений
Возврат мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(НомерПКО, Реквизит);
{D:\1С\БАЗЫ\ПЕРЕНОС77В82\ОБРАБОТКАДЛЯ77.ERT(2073)}: Номер за пределами значения!
8 dk
 
24.05.13
15:53
КоллекцияОбъектов или как-то так вместо Объект
9 krasnodar95
 
24.05.13
15:55
(8) Да я уже понял, я так и написал%:
Сообщить(ТипЗначенияСтр(ОбъектКоллекции.СубконтоДт));
Попытка
Сообщить(ОбъектКоллекции.СубконтоДт.Вид());
Исключение
КонецПопытки;
10 krasnodar95
 
24.05.13
15:56
А на это мне (7)
11 krasnodar95
 
27.05.13
09:41
Ответ нашел здесь http://infostart.ru/public/120035/, правда не совсем понимаю как работает это решение, но оно работает. Жаль что никто не подсказал...