Имя: Пароль:
1C
1С v8
КД, выгрузка движений документов в бух. операцию
,
0 Лохматые Уши
 
06.01.15
09:33
Всем привет!
Есть задача по выгрузке регистра бухгалтерии из БП 2.0 в БП 3.0.
Как в конвертации данных прописать правила?
К примеру, в качестве источника указываем прих. касс. ордер, в качестве приемника бух. операцию.
В правилах выгрузки данных формируем ТЗ по движениям документа:

Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Проводки.Отбор.Регистратор.Значение = Объект;
Проводки.Прочитать();
ТаблицаНабораЗаписей = Проводки.Выгрузить();

А дальше что?
Нигде не нашел толкового примера.
1 yavasya
 
06.01.15
09:44
я бы выгружал в .dbf
2 yavasya
 
06.01.15
09:45
Задача для чего нужна вообще не понятна
3 Лохматые Уши
 
06.01.15
09:51
(1) Можно и в txt выгрузить, но как потом многократно загружать?
Задача - консолидировать бухгалтерию из нескольких баз в одну.
Смотреть консолидированные данные уже в новой бухгалтерии 3.0.
Документы переносить нет смысла, пока решено перенести все движения. В качестве регистратора у регистра бухгалтерии будет бух. операция.
4 renegade
 
06.01.15
09:58
Дальше создаешь структуру с реквизитами документа и передаешь ее в ВыгрузитьПоПравилу(). Например вот так:


Если ТаблицаДанных.Количество() <> 0 Тогда
    
    ВходящиеДанные = Новый Структура("Номер, Дата, Содержание, СпособЗаполнения, СуммаОперации, ТиповаяОперация, Комментарий, Организация, Хозрасчетный");
    ВходящиеДанные.Организация                    = Неопределено;
    ВходящиеДанные.Комментарий                    = "Комментарий";
    ВходящиеДанные.Содержание                      = "Содержание";
    ВходящиеДанные.СпособЗаполнения               = "Вручную";
    ВходящиеДанные.СуммаОперации                     = ТаблицаДанных.Итог("Стоимость");
    
    ТаблицаДвижений = Новый ТаблицаЗначений;
    ТаблицаДвижений.Колонки.Добавить("СубконтоДт", Новый ОписаниеТипов("РегистрБухгалтерииСубконто.Хозрасчетный"));
    ТаблицаДвижений.Колонки.Добавить("СубконтоКт", Новый ОписаниеТипов("РегистрБухгалтерииСубконто.Хозрасчетный"));
    ТаблицаДвижений.Колонки.Добавить("ВалютаДт");
    ТаблицаДвижений.Колонки.Добавить("ВалютаКт");
    ТаблицаДвижений.Колонки.Добавить("Организация");
    ТаблицаДвижений.Колонки.Добавить("ПодразделениеКт");
    ТаблицаДвижений.Колонки.Добавить("ПодразделениеДт");
    ТаблицаДвижений.Колонки.Добавить("НеКорректироватьСтоимостьАвтоматически");
    ТаблицаДвижений.Колонки.Добавить("Содержание");
    ТаблицаДвижений.Колонки.Добавить("ВалютнаяСуммаДт");
    ТаблицаДвижений.Колонки.Добавить("ВалютнаяСуммаКт");
    ТаблицаДвижений.Колонки.Добавить("КоличествоДт");
    ТаблицаДвижений.Колонки.Добавить("КоличествоКт");
    ТаблицаДвижений.Колонки.Добавить("Сумма");
    ТаблицаДвижений.Колонки.Добавить("СуммаВРДт");
    ТаблицаДвижений.Колонки.Добавить("СуммаВРКт");
    ТаблицаДвижений.Колонки.Добавить("СуммаНУДт");
    ТаблицаДвижений.Колонки.Добавить("СуммаНУКт");
    ТаблицаДвижений.Колонки.Добавить("СуммаПРДт");
    ТаблицаДвижений.Колонки.Добавить("СуммаПРКт");
    ТаблицаДвижений.Колонки.Добавить("Активность");
    ТаблицаДвижений.Колонки.Добавить("Период");
    ТаблицаДвижений.Колонки.Добавить("Регистратор");
    ТаблицаДвижений.Колонки.Добавить("СчетДт");
    ТаблицаДвижений.Колонки.Добавить("СчетКт");
    
    Для Каждого СтрокаТЗ Из ТаблицаДанных Цикл
        СтрокаТаблицаДвижений = ТаблицаДвижений.Добавить();
        СтрокаТаблицаДвижений.СубконтоДт.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства, СтрокаТЗ.ОсновноеСредство);
        СтрокаТаблицаДвижений.СубконтоДт.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, СтрокаТЗ.Контрагент);
        СтрокаТаблицаДвижений.Сумма = СтрокаТЗ.ОстаточнаяСтоимость;
    КонецЦикла;
    
    ВходящиеДанные.Хозрасчетный                 = ТаблицаДвижений;
    
    ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ОперацияБух");
    
КонецЕсли;
5 Лохматые Уши
 
06.01.15
10:09
(4) Спасибо! Пробую...
6 yavasya
 
06.01.15
10:11
(3) точно так как и кд, обработкой. В 3.0 ещё проще обработки вызывать
7 Лохматые Уши
 
06.01.15
11:35
Не могу побороть эту хрень:

Ошибка при загрузке данных: Значение не является значением объектного типа (ПометкаУдаления)

В ПКС везде пробовал отключать "ПометкаУдаления". Не помогает.
8 Мимохожий Однако
 
06.01.15
11:52
Попробуй в исходных базах снять все пометки удаления перед выгрузкой. Может быть, и поможет.
9 renegade
 
06.01.15
11:57
В ПКО задействованы какие-нибудь из обработчиков ПередЗагрузкой, ПриЗагрузке, ПослеЗагрузки?
10 Лохматые Уши
 
06.01.15
12:05
(9) Обязательно.
Тут дело в том, что у регистра бухгалтерии нет свойства "ПометкаУдаления".
11 SleepyHead
 
гуру
06.01.15
12:29
(10) у регистра нет, а у бухгалтерской операции? И вообще что ты называешь бухгалтерской операцией в БП 3 ?
12 Лохматые Уши
 
06.01.15
12:33
(11) РегистрБухгалтерииЗапись.Хозрасчетный
Пробовал ДокументСсылка.ОперацияБух, в этом случае ошибок нет, но и ничего не выгружается.
13 SleepyHead
 
гуру
06.01.15
12:34
нашел, этодокумент "ОперацияБух", ну у нее может быть пометка удаления, проверь, не поставил ли случайно.
14 SleepyHead
 
гуру
06.01.15
12:36
в ПКО документа "ОперацияБух" нужно табличную часть "ТаблицаРегистров" переопределить, и добавить движения (имя движений совпадает с именем регистра)

И там, и там в обработчике ПКГС переопределить переменную "КоллекцияОбъектов", в твоем примере в (0) не увидел, как ты ее переопределяешь
15 Лохматые Уши
 
06.01.15
12:43
(14) В свойствах приемника есть ТаблицаРегистровНакопления, ТаблицаРегистровСведений. Нет таблицы регистров бухгалтерии.
16 SleepyHead
 
гуру
06.01.15
12:47
(15) нажми кнопку "Синхронизация свойств", увидишь те регистры накопления, в которых могут быть движения операции. Отметь нужный, он будет выглядеть как табличная часть документа. на уровне этой табличной части (то есть ПКГС) и переопределяй переменную "КоллекцияОбъектов"

А для табличной части документа "ТаблицаРегистровНакопления" будет примерно такой код

КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("Имя");

Стр = КоллекцияОбъектов.Добавить();
Стр.Имя = "ИмяРегистраНакопления";
17 Лохматые Уши
 
06.01.15
13:42
(16) Спасибо, не получилось.
Возникла идея - Создать в БП 3.0 свой понятный документ, в который буду переносить движения и проводить. Гораздо понятнее и проще получится. С регистром бухгалтерии не так все просто и понятно.
18 SleepyHead
 
гуру
06.01.15
13:50
(17) Совсем забыл, в ПКО документа "ОперацияБух", в после загрузки надо прописать

Объект.Движения.ИмяТвоегоРегистра. Записывать = Истина;
19 SleepyHead
 
гуру
06.01.15
13:51
Ну вот не знаю, у меня получалась аналогичная загрузка :) Можешь конечно попробовать через КД как-то иначе загрузить.
20 rozer76
 
06.01.15
20:57
(0) там не все так просто. Недавно разбирался с этим когда писал выгрузку из КИС в итрп бюджетирование. Скинь мыло - пришлю схему конвертации. Там например перенос остатков по взаиморасчетам конвертируется в "операция бух"
21 rozer76
 
07.01.15
06:00
(0) ушло на почту