про нашего любимого желто-красно-синего друга

Старенький слабенький компьютер после перепроведения центральной базы не смог принять файл обмена с сообщением "не недостаточно памяти". После него программа вылетала.

Помогло ограничение на количество объектов в транзакции (я поставил 100)

Потребовалось настроить выгрузку из 1С:УНФ в 1С:Бухгалтерия 3.0

Базовая настройка простая и не вызывает сложностей, подробно про нее можно почитать, например, здесь.

Но далее возникли проблемы:

1) Запуск регламентного задания обмена на файловой базе.

Регламентные задачи на SQL-базах работают на стороне SQL-сервера и не вызывают проблем, на файловых базах они, конечно, тоже, теоретически, должны работать, если запущен хотя бы один сеанс, но по факту то работали то нет.

В связи с этим, было решено вызывать обмен вручную с помощью внешней обработки и планировщика задач.

Вручную из обработки обмен можно вызвать командой:

ОбменДаннымиСервер.ВыполнитьОбменДаннымиПоРегламентномуЗаданию("00001"); //где 00001 год регламентного задания в справочнике "Сценарии синхронизации данных"



2) Исключить документы из обмена.

Поскольку в УНФ приходы от клиентов на расчетный счет и оплаты поставщикам ведутся вручную, а в бухгалтерии используется обработка "обмен с клиент-банком", то нужно было исключить выгрузку эти операций введенных вручную в бухгалтерскую программу.
Список документов в обмене определен правилами обмена и настройками не меняется, нужно было бы исправлять сами правила обмена и исключать документы. Но есть более простой способ. Тем более, поскольку мы вызываем обмен обработкой, в той же обработке перед вызовом обмена, отменяем регистрацию изменений по нужным нам типам документов, в частности ПоступлениеНаСчет и РасходСоСчета.

//отменяем отправку поступлений на счет
Док = Метаданные.Документы.ПоступлениеНаСчет;
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("МойОбмен");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Док);
//отменяем отправку расходов со счета
Док = Метаданные.Документы.РасходСоСчета;
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("МойОбмен");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Док);

Ниже приложена рабочая обработка, можете скачать и использовать.

 

Не так давно в конфигурации Бухгалтерия Предприятия 2.0 появилась обработка "Расчет авансовых платежей по налогу на имущество"

Первый и второй квартал 2021 года авансовые платежи рассчитывались корректно, но при расчете 3 квартала сумма налога оказалась неверной (хорошо, что бухгалтер не слепо доверяет программе, а все перепроверяет)

В процессе разбора в коде, я выяснил, что в ее логике зашит следующий расчет Среднегодовой стоимости имущества:

(01.01+01.02+01.03+01.08+01.09+01.10)

При том, что по правилам должны считаться суммы остаточной стоимости за каждый месяц с 01 по 10.

(01.01+01.02+01.03+01.04+01.05+01.06+01.07+01.08+01.09+01.10)

Т.е. по сути в формуле обработки не учтен 2 квартал.

Поэтому в форме обработки пришлось дописать для 3 квартала:

		Если Строка.НомерПериода > 7 И Строка.НомерПериода < 11 Тогда
			
			//+++++++Добавленный код++++++++++++
			ДелимоеСредняяСтоимость = ДелимоеСредняяСтоимость + Строка.ОстаточнаяСтоимостьНа0105
			+ Строка.ОстаточнаяСтоимостьНа0106 + Строка.ОстаточнаяСтоимостьНа0107;
                        //-------Конец Добавленного кода------------
			
			ДелимоеСредняяСтоимость = ДелимоеСредняяСтоимость + Строка.ОстаточнаяСтоимостьНа0108
			+ Строка.ОстаточнаяСтоимостьНа0109 + Строка.ОстаточнаяСтоимостьНа0110;
			
			Делитель = 10;
			
		КонецЕсли;

А так же оказалось, что в остаточную стоимость на 01.10 обработка считает остаточную стоимость на 01.09 (т.е. суммы в обеих колонках равны)

Так же пришлось исправить код:

        Период = ?(Счетчик = 10, КонецМесяца(Период), ДобавитьМесяц(Период, 1));

на:

        //Период = ?(Счетчик = 10, КонецМесяца(Период), ДобавитьМесяц(Период, 1));
        Период = ДобавитьМесяц(Период, 1);

К данной статье приложил исправленную доработку, поскольку в последней версии конфигурации на 28.10.2021 она все еще в таком же виде, можете использовать ее как внешнюю или заменить в конфигурации.

Существует множество способов резервного копирования серверов и баз данных, но нигде не нашел описания автоматизации резервного копирования баз 1С в облако cloud.mail.ru

Почему cloud.mail.ru? Потому что в 2013 году были получены халявные 100Гб и грех ими не воспользоваться. Так же в данной статье я опишу несколько полезных команд windows, которые пригодятся и для других задач (например очистка файлов старше определенного срока, как убить сеансы 1С, что делать чтобы bat-файл дожидался выгрузки dt, не переходя на следующую команду, архивация dt с разбивкой на архивы не более 2Гб (mail.ru файлы большего размера не пропускает) )

Итак, для начала, например, на диске D: создаем папку backup. В ней папку SQL, в которую у нас будут складываться ежедневные backup'ы sql сервера. Настроить их можно следующим образом: https://infostart.ru/public/199760/

Затем нам нужно позаботиться чтобы на сервере был установлен архиватор, в моем примере WinRar

И настроить WebDAVCloudMailRu для подключения хранилища cloud.mail.ru в качестве сетевого диска, подробнее здесь:  https://glashkoff.com/webdav-cloudmailru/

Теперь все готово для запуска нашего .bat файла, которые последовательно выполняет операции:

1) Удаляем бэкапы базы SQL средствами сервера старше 7 дней

Forfiles -p "D:\backup\SQL" -s -m *.* -d -7 -c "cmd /c del /q @path"

2) Удаляем временные файлы, остающиеся от службы WebDAV (иначе они переполнят диск C:)

del /F/S/Q C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\* 

3) Убиваем открытые сеансы 1С на сервере (можно перед запуском нашего bat-файла в планировщике поставить перезагрузку сервера, чтобы наверняка)

taskkill /IM 1cv8.exe /f
taskkill /IM 1cv8c.exe /f
taskkill /IM 1cv8s.exe /f

4) Выгружаем базы. В командной строке выгрузки .dt нужно указывать именно 1cv8.exe, иначе 1С вернет управление командному файлу и он пойдет дальше не дождавшись выгрузки.

командная строка выгрузки SQL базы
call "C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" CONFIG /M /S"Server1c\ut" /N"ИмяПользователя" /P"ПарольПользователя" /Out"D:\backup\1c_ut.log"  /DumpIB"D:\backup\bak\ut.dt"

командная строка выгрузки файловой базы
call "C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" CONFIG /M /F"C:\1С\Бухгалтерия" /N"ИмяПользователя" /P"ПарольПользователя" /Out"D:\backup\1c_buh.log"  /DumpIB"D:\backup\bak\buh.dt"

5) Архивируем выгруженные базы, с размером не более 2000000 кбайт (2Гб), иначе сервис их не пропустит

"C:\Program Files (x86)\WinRAR\rar.exe" a -o+ -dh -r -m5 -v2000000 D:\backup\bak\backup1Cut_0.rar D:\backup\bak\ut.dt
"C:\Program Files (x86)\WinRAR\rar.exe" a -o+ -dh -r -m5 -v2000000 D:\backup\bak\backup1Cbuh_0.rar D:\backup\bak\buh.dt

6) подключаем облако mail.ru как сетевой диск через службу WebDAVCloudMailRu 

net use M: /DELETE
net use M: http://127.0.0.1:801 "ПарольОблакаMailRu" /USER:ЛогинОблакаMailRu

7) Копируем архивы в облако Mail.ru

xcopy "D:\backup\bak\backup1Cbuh_0.rar" M:\ /Y
xcopy "D:\backup\bak\backup1Cut_0.*" M:\ /Y

На этом все. Готовый .bat-ник можете скачать из вложения к статье.

Склад для хранения домашних вещей www.skladovka.ru. . Информация ассистент скачать бесплатно тут. . Видео с хэштегом Osman Navruzov muzfm.tv/29734-osman-navruzov.html.