Имя: Пароль:
1C
1С v8
Удаление входящих остатков
0 slitov
 
17.04.14
09:24
Мне нужно удалить все входящие остатки до 1 января 2014, и подгрузить их заново т.к. ни по одному счету не идут, бухгалтер баланс сделать за 1 квартал не может. После свертки базы перенос остатков был через операции, в комментарии написана такая фраза : "Сформирован обработкой свертки базы". Мнеб это все почистить, но не знаю как это правильно сделать, может кто подскажет.
1 Ненавижу 1С
 
гуру
17.04.14
09:27
подгрузить откуда?
2 ДенисЧ
 
17.04.14
09:27
удали эти операциии
3 slitov
 
17.04.14
09:33
Забыл написать, у меня БП 3.0.
Подгружать будем из торговых программ, у нас до 2014 был общий склад по магазинам а после 2014 решили разделить их. После удаления операций проблем с балансом не возникнет? Хотя уже расхождения балансов в миллионах...
4 Рэйв
 
17.04.14
09:38
//Чистика документов остатков {
        Запрос=Новый Запрос;
        Запрос.Текст="ВЫБРАТЬ
                     |    КорректировкаЗаписейРегистров.Ссылка
                     |ИЗ
                     |    Документ.КорректировкаЗаписейРегистров КАК КорректировкаЗаписейРегистров
                     |ГДЕ
                     |    КорректировкаЗаписейРегистров.Дата > &Дата
                     |    И КорректировкаЗаписейРегистров.Комментарий ПОДОБНО ""%[Сформирован обработкой свертки базы]%""
                     |
                     |ОБЪЕДИНИТЬ
                     |
                     |ВЫБРАТЬ
                     |    Оп.Ссылка
                     |ИЗ
                     |    Документ.ОперацияБух КАК Оп
                     |ГДЕ
                     |    Оп.Дата > &Дата
                     |    И Оп.Комментарий ПОДОБНО ""%[Сформирован обработкой свертки базы]%""";
        Запрос.УстановитьПараметр("Дата",'20131231235958');
        тРез=Запрос.Выполнить().Выгрузить();
        ОчиститьСообщения();
        тПросмотр=Новый ТаблицаЗначений;
        тПросмотр.Колонки.Добавить("Дата");
        тПросмотр.Колонки.Добавить("Док");
        тПросмотр.Колонки.Добавить("Комментарий");
        Для каждого Стр из тРез Цикл
            Нов=тПросмотр.Добавить();
            Нов.Дата        =Стр.Ссылка.Дата;
            Нов.Док            =Стр.Ссылка;
            Нов.Комментарий    =Стр.Ссылка.Комментарий;
            
        КонецЦикла;    
        тПросмотр.Сортировать("Дата,Док");
        тПросмотр.ВыбратьСтроку();
        
        Если Вопрос("Удалить документы остатков?",РежимДиалогаВопрос.ДаНет)<>КодВозвратаДиалога.Да Тогда
            Возврат;
        КонецЕсли;    
            
        НачатьТранзакцию();
        Для Каждого стр из тРез Цикл
            Сообщить("
            |
            |-------------------------"+Стр.Ссылка);
            Об=Стр.Ссылка.ПолучитьОбъект();
            Для каждого Дв Из Об.Движения Цикл
                Если Дв.Количество()>0 Тогда
                    Имя=Дв.Метаданные().Имя;
                    ПолноеИмя=дв.Метаданные().ПолноеИмя();            
                    Если Найти(ПолноеИмя,"РегистрНакопления")>0 Тогда
                        Набор=РегистрыНакопления[Имя].СоздатьНаборЗаписей();
                    ИначеЕсли Найти(ПолноеИмя,"РегистрСведений")>0 Тогда
                        Набор=РегистрыСведений[Имя].СоздатьНаборЗаписей();
                    ИначеЕсли Найти(ПолноеИмя,"РегистрБухгалтерии")>0 Тогда    
                        Набор=РегистрыБухгалтерии[Имя].СоздатьНаборЗаписей();
                    КонецЕсли;    
                    Набор.Отбор.Регистратор.Установить(Стр.Ссылка);
                    Набор.Записать();
                    Сообщить(""+Стр.Ссылка+".Очищены движения "+ПолноеИмя);
                КонецЕсли;        
            КонецЦикла;    
            Об.Удалить();
            
            
        КонецЦикла;    
        Если Вопрос("Зафиксировать удаление?",РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
            ЗафиксироватьТранзакцию();
        Иначе
            ОтменитьТранзакцию();
        КонецЕсли;    
    //---------    }
5 Рэйв
 
17.04.14
09:38
Резали базу.Сделал себе на случай перегрузки заново:-)
6 slitov
 
17.04.14
10:07
{Обработка.Обработка1.МодульОбъекта(39,20)}: Оператор Возврат (Return) не может употребляться вне процедуры или функции
            Возврат<<?>>; (Проверка: Сервер)
А как внешнюю обработку получится создать?
P.s. Я не волшебник, я только учусь! )))
7 slitov
 
17.04.14
10:49
Та, понял в чем косяк, только теперь другая ошибка вышла:
{Обработка.Обработка1.Форма.Форма.Форма(31,31)}: Ошибка в выражении
        тРез=Запрос.Выполнить(<<?>>).Выгрузить(); (Проверка: Тонкий клиент)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший