Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как скопировать корректировку записей регистров (http://forums.kuban.ru/f1040/kak_skopirovat-_korrektirovku_zapisej_registrov-2077353.html)

andre2011 18.01.2012 13:26

Как скопировать корректировку записей регистров
 
Как скопировать корректировку записей регистров - есть несколько документов, они огромны (по бух.учету), надо скопировать идентичные по налоговому учету...

Ёпрст 18.01.2012 13:55

действия - заполнить из документа

andre2011 19.01.2012 08:06

нет, не то! Данные введены в регистре накоплений,по БУ (движение приход и расход материала), теперь все это надо скопировать в такой же регистр накопления по НУ. Действия - заполнить из документа (такого нет просто)

Helen 1986 19.01.2012 08:46

действия - написать обработку

или

Действия - купить обработку

или

Действия - ..... обработку

Lexusss 19.01.2012 09:17

Конфигурация, надеюсь, Документооборот?

andre2011 19.01.2012 09:26

конфигурация УПП 8.2. А где купить обработку, я бы заказал. Она как мне сказали очень проста, но опыта пока в этом не особо

andre2011 19.01.2012 12:44

Упрощенный фрагмент кода обработки, иллюстрирующий запись проводок в регистр бухгалтерии, представлен в листинге (но это для переоценки ОС, подскажите как его переделать для моего случая???):

Сч01_01 = ПланыСчетов.Хозрасчетный.ОСвОрганизации;
Сч02_01 = ПланыСчетов.Хозрасчетный.АмортизацияОС_01;
Сч83_01 = ПланыСчетов.Хозрасчетный.ПриростСтоимостиИмуществаПоПереоценке;
ДБФ = Новый XBase;
ДБФ.ОткрытьФайл(ИмяФайла);
Если ДБФ.Открыта() Тогда
Попытка
НачатьТранзакцию();

ДокКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ДокКорректировка.ЭтотОбъект, ПараметрыСеанса.ТекущийПользователь);
ДокКорректировка.Дата = Период;

НоваяСтрокаРегБух = ДокКорректировка.ТаблицаРегистровБухгалтерии.Добавить();
НоваяСтрокаРегБух.Имя = "Хозрасчетный";
НоваяСтрокаРегБух.Представление = "Журнал проводок (бухгалтерский учет)";

ДокКорректировка.Записать();
ДокКорректировкаСсылка = ДокКорректировка.Ссылка;

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

ДБФ.Первая();
Пока Не ДБФ.ВКонце() Цикл
ОсновноеСредство = Справочники.ОсновныеСредства.НайтиПоКоду(СокрЛП(ДБФ.OS));
Если ОсновноеСредство.Пустая() Тогда
Сообщить("Не найдено ОС с кодом " + ДБФ.OS + "!", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

ЗХозрасчетный = НЗХозрасчетный.Добавить();
ЗХозрасчетный.Период = Период;
ЗХозрасчетный.Регистратор = ДокКорректировкаСсылка;
ЗХозрасчетный.Организация = Организация;
ЗХозрасчетный.Содержание = "Увеличение первоначальной стоимости ОС";
ЗХозрасчетный.СчетДт = Сч01_01;
ЗХозрасчетный.СчетКт = Сч83_01;
БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетДт, ЗХозрасчетный.СубконтоДт, "ОсновныеСредства", ОсновноеСредство);
БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "ОсновныеСредства", ОсновноеСредство);
ЗХозрасчетный.Сумма = ДБФ.SumB;

ЗХозрасчетный = НЗХозрасчетный.Добавить();
ЗХозрасчетный.Период = Период;
ЗХозрасчетный.Регистратор = ДокКорректировкаСсылка;
ЗХозрасчетный.Организация = Организация;
ЗХозрасчетный.Содержание = "Увеличение накопленной амортизации ОС";
ЗХозрасчетный.СчетДт = Сч83_01;
ЗХозрасчетный.СчетКт = Сч02_01;
БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетДт, ЗХозрасчетный.СубконтоДт, "ОсновныеСредства", ОсновноеСредство);
БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "ОсновныеСредства", ОсновноеСредство);
ЗХозрасчетный.Сумма = ДБФ.AmortB;

ДБФ.Следующая();
КонецЦикла;
ДБФ.ЗакрытьФайл();
НЗХозрасчетный.Записать();

ЗафиксироватьТранзакцию();
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
ОтменитьТранзакцию();
КонецПопытки;
КонецЕсли;

andre2011 23.01.2012 10:29

Процедура ПриКопировании(ОбъектКопирования)

ЭтотОбъект.Дата = ТекущаяДата();
ЭтотОбъект.Записать();

Для каждого Набор Из ОбъектКопирования.Движения Цикл
Набор.Прочитать();
Если Набор.Количество() = 0 Тогда
Продолжить;
КонецЕсли;

НаборТекущегоОбъекта = Движения[Набор.Метаданные().Имя];

Для каждого ЗаписьНабора Из Набор Цикл
НоваяЗапись = НаборТекущегоОбъекта.Добавить();
НоваяЗапись.Активность = ЗаписьНабора.Активность;
Если Лев(ТипЗНЧ(НаборТекущегоОбъекта),18) = "Регистр накопления" Тогда
Если НаборТекущегоОбъекта.Метаданные().ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
НоваяЗапись.ВидДвижения = ЗаписьНабора.ВидДвижения;
КонецЕсли;
КонецЕсли;
НоваяЗапись.Период = ТекущаяДата();

Для каждого Измерение Из Набор.Метаданные().Измерения Цикл
НоваяЗапись[Измерение.Имя] = ЗаписьНабора[Измерение.Имя];
КонецЦикла;
Для каждого Ресурс Из Набор.Метаданные().Ресурсы Цикл
НоваяЗапись[Ресурс.Имя] = ЗаписьНабора[Ресурс.Имя];
КонецЦикла;
Для каждого Реквизит Из Набор.Метаданные().Реквизиты Цикл
НоваяЗапись[Реквизит.Имя] = ЗаписьНабора[Реквизит.Имя];
КонецЦикла;

Движения[Набор.Метаданные().Имя].Записать();
КонецЦикла;

КонецЦикла;

КонецПроцедуры


Текущее время: 17:39. Часовой пояс GMT +3.