Имя: Пароль:
1C
1С v8
Перепроведение документов
0 Budulay2018
 
11.05.16
12:03
Здравствуйте.
Можно ли запретить документу формировать движения в определенных регистрах?  Т.е. оставить в настройке документа "Движения" только нужные мне регистры, перепровести и вернуть всё взад)
Ну, и чем мне это грозит, как обычно. Извините, за возможно глупый вопрос
1 FIXXXL
 
11.05.16
12:09
(0) обработкой записи формируй и подменяй где надо
2 catena
 
11.05.16
12:09
(0)И еще код подчистить, который делает движения в этих регистрах.
Проще программно почистить движения в этих регистрах?
Грозит - восстановлением движений при перепроведении.
3 Budulay2018
 
11.05.16
12:21
(2) Т.е. если убрать регистры в настройках и оставить в модуле, то движения в этих регистрах все равно будут формироваться?
4 catena
 
11.05.16
12:34
(3)Нет, проведение будет вылетать с ошибкой.
5 Budulay2018
 
11.05.16
12:36
(4) Понятно. Спасибо
6 mehfk
 
11.05.16
12:38
(0) Перепроведи на копии, а потом обработкой ВыгрузкаЗагрузкаДанныхXML82.epf перенеси.
7 PR пять
 
11.05.16
12:39
(0) :)))
Прикидывал, что выложу эту обработку в магазин (бесплатно) одной из первых :))
Общая идея простая: в транзакции проводится документ, копируются нужные движения в ТЗ, транзакция отменяется, движения пишутся в движения.
8 catena
 
11.05.16
12:43
(7)Я уже выкладывала подобную обработку...
9 PR пять
 
11.05.16
12:44
(8) Куда, на ИСу?
10 catena
 
11.05.16
12:49
(9)Проверила - оказывается наврала, только предпросмотр выкладывала (да, на ИС). По той же схеме: транзакция, чтение движений, отмена транзакции. Еще в 2012 году))
11 Budulay2018
 
11.05.16
13:22
(7) Полезная штуковина была бы)
12 catena
 
11.05.16
13:34
(11)
Процедура ПровестиПоРегистру(ДокСсылка, ИмяРегистра, ТипРегистра)  Экспорт
    ДокОбъект = ДокСсылка.ПолучитьОбъект();

    НачатьТранзакцию();

    Если ИмяРегистра<>"Типовой" Тогда
        ПроставитьСтатусПроводок(ДокОбъект,Перечисления.СостоянияДокументов.ПустаяСсылка());
    КонецЕсли;    
    
    ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
    ДокОбъект.Движения[ИмяРегистра].Прочитать();
    ТаблицаДвиженийРегистра = ДокОбъект.Движения[ИмяРегистра].Выгрузить();

    ОтменитьТранзакцию();

    Если ТипРегистра = "РегистрыСведений" Тогда
        НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
    ИначеЕсли ТипРегистра = "РегистрыНакопления" Тогда    
        НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
    ИначеЕсли ТипРегистра = "РегистрыБухгалтерии" Тогда    
        НаборЗаписей = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
    ИначеЕсли ТипРегистра = "РегистрыРасчета" Тогда    
        НаборЗаписей = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей();
    Иначе
        Возврат;
    КонецЕсли;    
    НаборЗаписей.Отбор.Регистратор.Установить(ДокСсылка);
    НаборЗаписей.Загрузить(ТаблицаДвиженийРегистра);
    НаборЗаписей.Записать();
КонецПроцедуры
13 Serg_1960
 
11.05.16
13:42
Эээ... конфигурация, как всегда не озвучена :(

Если в конфигурации используется РАУЗ, то алгоритма (12) недостаточно. При проведении документа по регистрам РАУЗа надо ещё "отслеживать" создание новых ключей аналитики.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан