Имя: Пароль:
1C
1С v8
Как перепровести документы по РАУЗ, но не изменяя другие движения?
0 Serg_1960
 
28.05.12
09:42
УПП, РАУЗ. Нужно изменить параметры учета по УУ и соответственно придется(?) перепроводить документы, но бухие нервно реагируют на перепроведение документов по БУ.

Подскажите, кто делал, как перепровести документы (проведенные по УУ,БУ и НУ) только по управленческому учету?

Пока что, кроме варианта "сохранить движения - перепровести документ - восстановить движения" ничего более в голову не приходит.
1 Amra
 
28.05.12
09:45
Нафига? Напиши обработку, которая сформирует нужные тебе движения без перепроведения документов вообще
2 х86
 
28.05.12
09:46
(0)движения формируются в общем модуле, используй его
3 Maxus43
 
28.05.12
09:51
(2) + в подписке. Тупо вызывай эту подписку для документов... правда там и проводки по БУ/НУ делаются одновременно, емнип
4 Serg_1960
 
28.05.12
09:56
Уже копаюсь в общих модулях.

PS: насчет "нафига?": Проблема в том, что внедренцы (ну есть же "хорошие" люди, дай бог им здоровья) выводили остатки "помесячно" искуственным путём с помощью обработок. Вплоть до очистки записей регистров и удаления движений по некоторым документам :(
5 х86
 
28.05.12
09:59
(3)нужно посмотреть, в общем модуле вроде движения не записываются. Поэтому получать все движения, а писать только нужные
6 Maxus43
 
28.05.12
10:01
(5) записываются... причем одновременно и РАУЗ и проводки, и пара регистров ещё помоему.
7 Maxus43
 
28.05.12
10:04
в принципе можно в обработку перенести логику формирования движения РАУЗа... не больно долго, там алгоритм один. Правда он зависит от переданных параметров, если в обработке делать - надо таблицы документа для проведения компоновать будет. Короче много нюансов, имхо лучше таки перепровести попробовать
8 rinatru
 
28.05.12
10:05
есть уже обработка, которая позволяет проводить документы по выбранным регистрам. если очень прижало, то пиши адрес. вышлю
9 х86
 
28.05.12
10:06
(6)тогда пробовать записывать движения, запоминать, отменять транзакцию, записывать нужные  как-то так  )
10 Maxus43
 
28.05.12
10:06
(8) принцип какой? подозреваю что как в (0). Перепроведение с запоминанием старого состояния
11 rinatru
 
28.05.12
10:08
(10) принцип простой... делаются все движения.. но Истина для проведения выставляется только для нужных регистров
12 Maxus43
 
28.05.12
10:08
(9) угу, как идея в (0) и (8) подозреваю...
13 Serg_1960
 
28.05.12
10:11
Потому и спросил на форуме, что пока не могу "выделить" нужные мне общие фрагменты кода (единого подхода нет). Да и сложно "выделить" из движения по этому регистру только один из видов учета.
14 rinatru
 
28.05.12
10:11
(9) и (12) именно так. :)
15 Serg_1960
 
28.05.12
11:14
Может кому и понадобится :)

Изменили настройку, которая оказывает влияние на учет материалов в эксплуатации УУ и нужно "перезаполнить" ввод остатков по регистрам учета затрат (работает, начиная с версии 1.2.15):

РазделыУчета = Новый Массив();

//РазделыУчета.Добавить("НезавершенноеПроизводство");
//РазделыУчета.Добавить("БракВПроизводстве");
//РазделыУчета.Добавить("ЗатратыНаВыпускПродукции");
//РазделыУчета.Добавить("Затраты");
//РазделыУчета.Добавить("ПартииТоваров");

РазделыУчета.Добавить("МатериалыВЭксплуатации");
   
ПереходНаРасширеннуюАналитикуУчета.СформироватьОстаткиПоРегистрамУчетЗатратИУчетЗатратРегл(
       ДатаРасчетаОстатков,
       Истина,    // УправленческийУчет,
       Ложь,    // БухгалтерскийУчет,
       Ложь,    // НалоговыйУчет
       РазделыУчета);
16 Serg_1960
 
06.06.12
11:00
Процедура перезаполнения регистра накопления УУ, не претендующая на оригинальность :( может кому и понадобится :)

Процедура ПереЗаполнениеРегистраНакопленияУУ(ИмяРегистра, ДатаНач, ДатаКон)
   
   Запрос = Новый Запрос();
   Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    " + ИмяРегистра + ".Регистратор,
   |    " + ИмяРегистра + ".МоментВремени
   |ИЗ
   |    РегистрНакопления." + ИмяРегистра + " КАК " + ИмяРегистра + "
   |ГДЕ
   |    " + ИмяРегистра + ".Период МЕЖДУ &ДатаНач И &ДатаКон
   |
   |УПОРЯДОЧИТЬ ПО
   |    " + ИмяРегистра + ".МоментВремени";
   
   Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
   Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл

       ОбработкаПрерыванияПользователя();
       Состояние(Выборка.Регистратор);
       
       Попытка
           Объект=Выборка.Регистратор.ПолучитьОбъект();
           
           НачатьТранзакцию();
           
           Если Объект.Метаданные().Реквизиты.Найти("ОтражатьВБухгалтерскомУчете") <> Неопределено Тогда
               Объект.ОтражатьВБухгалтерскомУчете = Ложь;
           КонецЕсли;
           Если Объект.Метаданные().Реквизиты.Найти("ОтражатьВНалоговомУчете") <> Неопределено Тогда
               Объект.ОтражатьВНалоговомУчете = Ложь;
           КонецЕсли;
           
           Объект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
           Объект.Движения[ИмяРегистра].Прочитать();
           ТаблицаЗаписей = Объект.Движения[ИмяРегистра].Выгрузить();
           
           ОтменитьТранзакцию();
           
           Объект.Движения[ИмяРегистра].Загрузить(ТаблицаЗаписей);
           Объект.Движения[ИмяРегистра].Записать(Истина);
           
       Исключение
           
           Если ТранзакцияАктивна() Тогда
               ОтменитьТранзакцию();
           КонецЕсли;
           
       КонецПопытки;
       
   КонецЦикла;    
   
   Возврат;
   
КонецПроцедуры
17 John83
 
06.06.12
11:08
не проще на копии сделать перепроведение и загрузить нужные регистры?
18 Serg_1960
 
06.06.12
18:01
Не тот случай. Хочу эту обработку отдать на откуп юзверам - пусть сами решают когда это нужно делать. И, главное, - пусть сами и делают :)
19 МихаилМ
 
06.06.12
18:05
(18)
несистемный подход.

все равно Вам разгребать придется
20 Serg_1960
 
06.06.12
18:08
угу. Чем и занимаюсь последние две недели. Юзверы клаунят в базе так, что и не сразу сообразишь как ликвидировать это малой кровью