Резервное копирование чеков во внешние файлы и их восстановление

21.10.11

База данных - Архивирование (backup)

Решение проблемы восстановления потерянных кассовых чеков после восстановления поврежденной базы розницы.

В сети розничных торговых точек установили неудачные фискальные регистраторы. При сбоях по питанию, иногда ведет базу. А после ее восстановления оказывается, что несколько последних чеков, пробитых через фискальник, в базе 1С потеряны. В базе ведется партионный учет товара, поэтому списать что попало для "выравнивания" продаж нельзя, нужно списывать только то, что реально продано. Естественно, что часто вспомнить не получается. Делать ревизию накладно. Поэтому, нужна профилактика. Нам с Павлом Григорьевым пришла мысль делать резервную копию чека перед отправкой на фискальный регистратор во внешний файл. При запуске 1С очищаем каталог от чеков, пролежавших более 30 дней. В случае потери чеков запускается процедура, которая показывает список чеков, находящихся в специалном каталоге, позволяет выбрать один из них и импортировать в интерфейс кассира. Пробивать его или нет решать кассиру. Ниже привожу текст функций и процедур.

Сохранение объектов 1С во внешний файл *.xml  и его последующее восстановление на примере резервного копирования каждого чека.

 

Процедура СохранитьЧек()

            КаталогНаДиске = Новый Файл(мВременнаяПапка+"\Чеки");

    Если  Не КаталогНаДиске.Существует() Тогда

                СоздатьКаталог(мВременнаяПапка+"\Чеки");

    КонецЕсли;

           

// XML сериализация текущего объекта

            ЗаписьXML = Новый ЗаписьXML;

            ЗаписьXML.ОткрытьФайл(мВременнаяПапка+"\Чеки\"+Формат( ТекущаяДата(),"ДФ=ddMMyyyyHHmmss")+".xml", "UTF-16");

            ЗаписатьXML(ЗаписьXML, ЭтотОбъект);

            ЗаписьXML.Закрыть();

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

 

 

Процедура КнопкаВосстановитьЧекНажатие(Элемент)

            Если РольДоступна("ПолныеПрава") Тогда

                        Режим = РежимДиалогаВыбораФайла.Открытие;

                        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

                        ДиалогОткрытияФайла.ПолноеИмяФайла = "";

                        Фильтр = "XML(*.xml)|*.xml";

                        ДиалогОткрытияФайла.Фильтр = Фильтр;

                        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

                        ДиалогОткрытияФайла.Заголовок = "Выберите файл";

        ДиалогОткрытияФайла.Каталог=мВременнаяПапка;

                        Если ДиалогОткрытияФайла.Выбрать() Тогда

                                  

                                   ФайлНаДиске = Новый Файл(ДиалогОткрытияФайла.ПолноеИмяФайла);

                                   Если ФайлНаДиске.Существует() Тогда

                                              

                                               ЧтениеXML = Новый ЧтениеXML;

                                               ЧтениеXML.ОткрытьФайл(ДиалогОткрытияФайла.ПолноеИмяФайла);

                                               Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл

                                                           Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента

                                                                       И   ЧтениеXML.Имя     = "DocumentObject.ЧекККМ" Тогда

                                                                       Попытка

                                                                                  ДокументОбъект = ПрочитатьXML(ЧтениеXML);

                                                                       Исключение

                                                                                  Результат = Неопределено;

                                                                       КонецПопытки;

                                                           КонецЕсли;

                                               КонецЦикла;

                                               ЧтениеXML.Закрыть();

                                              

                                   КонецЕсли;

                        Иначе

                                   Предупреждение("Файл не выбран!");

                        КонецЕсли;

            КонецЕсли;  

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


 

Процедура ДействияФормыДействиеЗакрытиеЧека(Кнопка)

            //…………………                

СохранитьЧек();

            //………………….

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

 

 

 

// Процедура выполняется перед нначалом работы системы

//

Процедура ПриНачалеРаботыСистемы()

            //………………………………………

            Если Не РольДоступна("РМК") Тогда

            //………………………………………        

            Иначе

                        Расш="*.xml";

                        НайденныеФайлы = Новый Массив;

                        НайденныеФайлы = НайтиФайлы(РаботаСФайлами.ПолучитьИмяКаталога()+"\Чеки", Расш);

                       

                        Для Каждого ТекСтрока Из НайденныеФайлы Цикл

                                   Если  ТекСтрока.ПолучитьВремяИзменения()<ДобавитьМесяц(ТекущаяДата(),-1) Тогда

                                               Сообщить("Удаление архивных чеков"+ТекСтрока.ПолноеИмя);

                                               УдалитьФайлы(ТекСтрока.ПолноеИмя);

                                   КонецЕсли;  

                        КонецЦикла;

                       

            КонецЕсли;

 

 

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

 

См. также

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73597    629    45    

88

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    15937    21    6    

27

Архивирование (backup) Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

2400 руб.

27.08.2024    1479    1    6    

1

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3417    1CUnlimited    9    

6

Архивирование (backup) Администрирование СУБД Системный администратор Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    10368    n_mezentsev    15    

27

Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    30946    sapervodichka    37    

147
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Angeros 25.10.11 06:47 Сейчас в теме
А смысл их хранить?! Отчет по продажам выгрузить в главную базу и дело с концом. Максимум 1/2 дня.
2. elizarovs 83 25.10.11 06:54 Сейчас в теме
(1) Я же пишу: "Базу повело. После исправления потеряна информация о последних продажах". Нет этой информации в отчете о продажах, поскольку и чеков нет! Тем более нет Сменного Отчета о Розничных Продажах. За полгода на фирме такое раза 3 было. В основном, при сбоях по питанию на точках, где сдохли бесперебойники.
Оставьте свое сообщение