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

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С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В текущих версиях 1С пока нет функции, позволяющей автоматически отмечать возврат оригиналов документов с помощью сканера штрих-кодов. Многие контрагенты часто сталкиваются с проблемой утери оригиналов УПД или их невозврата. В ответ на эти запросы было разработано расширение, которое упрощает контроль за возвратом оригиналов документов и помогает лучше организовать их хранение.

12000 руб.

19.02.2025    1733    3    0    

3

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

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

5000 руб.

06.11.2012    77769    633    45    

92

Архивирование (backup) Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

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

5010 руб.

03.09.2014    18333    32    7    

39

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    6402    nasonkin    17    

27

Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    3070    Prelude    5    

12

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

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

2400 руб.

27.08.2024    3033    1    6    

2

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

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

13.08.2024    7331    1CUnlimited    9    

6

Инструменты администратора БД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Обработка для "обновления" своей тестовой базы из резервной копии рабочей базы без помощи админов.

1 стартмани

21.05.2024    3876    15    DenDev1C    4    

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