Автоматическая сверка данных в различных базах (Работа с FTP,SMTP,Планировщик Windows, запуск внешних обработок, командная строка 1С)

02.05.12

Интеграция - Перенос данных 1C

Бывают проблемы когда после обмена РИБ в базе Главного узла и дочернего наблюдаются расхождения в данных, для выяснения этих расхождений Я решил сравнивать отчет ОСВ в дочке и голове в автоматическом режиме без доработки типовой конфигурации.

Обработки и отчеты разрабатывались для конфигурации Бухгалтерии Для Казахстана 2.0 это не окончательная их версия, но при желании можно взять идею

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
АвтоматическаяСверкаОСВ.zip
.zip 83,93Kb
65 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

1. Для начала сохранил нужный мне отчет как внешний .

2. В модуле при открытии этого отчета прописал выгрузку результата отчета в файлы mxl и сохранение на FTP сервере организации, в моем случае изменение модуля формы отчета ОСВ выглядит так :

Функция СоединениеФТП() /// Айбек 


Сервер = "192.168.1.59";
Пользователь = "region";
Пароль = "ht3214";
Порт = 21;

Попытка



Соединение = Новый FTPСоединение(Сервер, Порт, Пользователь, Пароль, ,Ложь);

Исключение



// ошибка при подключении к ftp

Сообщить("Ошибка при подключении к FTP : " + Сервер + " ! " + ОписаниеОшибки());

Возврат Неопределено;



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

Возврат Соединение;

 

КонецФункции

 

Процедура ИзменитьОтбор(Код) Экспорт



Парам = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ОрганизацияПараметр");
Парам.Использование = Истина;
Парам.Значение = Справочники.Организации.НайтиПоКоду(Код);



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


Процедура ВыгрузитьОСВ(Соединение,КодОрганизации,КодУзла,Голова = Ложь)



ИзменитьОтбор(КодОрганизации);

Настроить();
СтандартныеОтчеты.ВосстановитьНастройкиФормы(ЭтаФорма);
ОбновитьПанельНастроек();
СтандартныеОтчеты.УправлениеОтображениемОбластейОтчета(ЭтотОбъект, ЭтаФорма);
СтандартныеОтчеты.УправлениеОтображениемПанелиПользователя(ЭтаФорма);
СтандартныеОтчеты.ЗаполнитьТаблицуЭлементов(ЭтаФорма);


ОбновитьОтчет();
ЭлементыФормы.Результат.Записать(КаталогВременныхФайлов()+"/КНС_"+КодУзла+".mxl");


Если Голова Тогда


Соединение.Записать(КаталогВременныхФайлов()+"/КНС_"+КодУзла+".mxl","КНС_"+КодУзла+".mxl");


Иначе


Соединение.Записать(КаталогВременныхФайлов()+"/КНС_"+КодУзла+".mxl","фКНС_"+КодУзла+".mxl");


КонецЕсли;



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


Процедура ПриОткрытии()


Соединение = СоединениеФТП();

/// Айбек
НачалоПериода = НачалоМесяца(ТекущаяДата());
КонецПериода = КонецМесяца(ТекущаяДата());

Если ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "КНС" Тогда



ВыгрузитьОСВ(Соединение,"000000001","АЛМ",Истина);
ВыгрузитьОСВ(Соединение,"АБ0000002","АПФ",Истина);
ВыгрузитьОСВ(Соединение,"ТР0002 ","ЖПФ",Истина);
ВыгрузитьОСВ(Соединение,"УР0000001","ЗКП",Истина);
ВыгрузитьОСВ(Соединение,"КЗ0000001","КПФ",Истина);
ВыгрузитьОСВ(Соединение,"АК0000001","МПФ",Истина);
ВыгрузитьОСВ(Соединение,"000000002","ЮКП",Истина);



ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "АЛМ" Тогда


ВыгрузитьОСВ(Соединение,"000000001","АЛМ");
ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "АПФ" Тогда
ВыгрузитьОСВ(Соединение,"АБ0000002","АПФ");
ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "ЖПФ" Тогда
ВыгрузитьОСВ(Соединение,"ТР0002 ","ЖПФ");
ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "ЗКП" Тогда
ВыгрузитьОСВ(Соединение,"УР0000001","ЗКП");
ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "КПФ" Тогда
ВыгрузитьОСВ(Соединение,"КЗ0000001","КПФ");
ИначеЕсли ПланыОбмена.ПоОрганизации.ЭтотУзел().Код = "МПФ" Тогда
ВыгрузитьОСВ(Соединение,"АК0000001","МПФ");


Иначе


ВыгрузитьОСВ(Соединение,"000000002","ЮКП");


КонецЕсли;

ПрекратитьРаботуСистемы();

 

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

 

3. Cохранил этот отчет в справочнике внешние отчеты , конешно можно его запускать на прямую как внешний но Я решил чтобы сам отчет был в базе.

Создал обработку которая бы запускала этот отчет  в форме ПриОткрытии()  прописал:

СсылкаОтчет = Справочники.ВнешниеОбработки.НайтиПоКоду("ШМ0000003");// код отчета в справочнике ВнешниеОбработки
ХранОбъект = СсылкаОтчет.ХранилищеВнешнейОбработки.Получить();
ХранОбъект.Записать(КаталогВременныхФайлов()+"/otchet.ert");
Отчет = ВнешниеОтчеты.Создать(КаталогВременныхФайлов()+"/otchet.ert");
ФормаОтчета = Отчет.ПолучитьФорму("ФормаОтчета");
ФормаОтчета.Открыть();

Если без сохранения можно ограничиться тремя нижними строчками , и на прямую указать путь к отчету.

Далее добавил задание в планировщик которое запускало все это:

 

ДЛЯ КЛИЕНТ-СЕРВЕРНОЙ БАЗЫ 1С

 

"C:\Program Files (x86)\1cv82\8.2.14.537\bin\1cv8.exe" ENTERPRISE /Salm-srv4\buh_cons82 /NАдмин /P1й2ц /AppAutoCheckMode /Execute"C:\RunSaveOSV.epf" /DisableStartupMessages

Расшифровки для создания задания :

alm-srv4 – Имя Сервера на котором находиться база

buh_cons82 – Имя Базы на севере 1С Предприятие

Админ – Имя пользователя 

1й2ц – Пароль пользователя

C:\RunSaveOSV.epf – Путь к файлу обработки

 

ДЛЯ ФАЙЛОВОЙ БАЗЫ 1С

"C:\Program Files (x86)\1cv82\8.2.14.537\bin\1cv8.exe" ENTERPRISE /F”C:\База1С” /NАдмин /P1й2ц /AppAutoCheckMode /Execute"C:\RunSaveOSV.epf" /DisableStartupMessages

Расшифровки для создания задания :

C:\База1С – Каталог базы данных 1С Предприятие

Админ – Имя пользователя

1й2ц – Пароль пользователя

C:\RunSaveOSV.epf – Путь к файлу обработки

 

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

 

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

МодульФормы обработки сравнения файлов:

 

Функция ОтправитьНаПочту(ТекстПисьма)

Профиль = Новый ИнтернетПочтовыйПрофиль;

Профиль.Пользователь = "asdasd@mail.ru";
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
Профиль.ПользовательSMTP = "asdasd@mail.ru";
Профиль.Пароль = "выфвыф";
Профиль.ПарольSMTP = "выфвыф";
Профиль.ПользовательSMTP = "asdasd";
Профиль.АдресСервераSMTP = "smtp.mail.ru";
Профиль.ПортSMTP = 25;

Письмо = Новый ИнтернетПочтовоеСообщение;

//Письмо.Получатели.Добавить("321@321.kz");
Письмо.Получатели.Добавить("вфыв@выф.kz");

Письмо.ИмяОтправителя = "Служба проверки ОСВ";
Письмо.Отправитель.ОтображаемоеИмя = "Служба проверки ОСВ";
Письмо.Отправитель.Адрес = "asdasd@mail.ru";

Письмо.Кодировка = "UTF-8";

Письмо.Тема = "Расхождение данных в ОСВ от " +Формат(ТекущаяДата(),"ДЛФ=DD") ;

ТекстПисьма = Письмо.Тексты.Добавить(ТекстПисьма,ТипТекстаПочтовогоСообщения.HTML);

Почта = Новый ИнтернетПочта;

Попытка
Почта.Подключиться(Профиль);
Почта.Послать(Письмо);
Почта.Отключиться();
Отправлено = Истина;
Исключение
Сообщить(НСтр("Ошибка отправки!") + ОписаниеОшибки());
Отправлено = Ложь;
КонецПопытки;


 Возврат Отправлено;

КонецФункции


Функция СоединениеФТП() /// Айбек


Сервер = "192.168.1.59";
Пользователь = "region";
Пароль = "585858";
Порт = 21;

Попытка



Соединение = Новый FTPСоединение(Сервер, Порт, Пользователь, Пароль, ,Ложь);



Исключение



// ошибка при подключении к ftp
Сообщить("Ошибка при подключении к FTP : " + Сервер + " ! " + ОписаниеОшибки());



Возврат Неопределено;



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

Возврат Соединение;


КонецФункции


Процедура ПроверитьОСВ(КодУзла,Соединение,Ошибка,ТекстДобавление)

 

Попытка /// лень писать код с проверкой существования файлов на фтп


Соединение.Получить("КНС_"+КодУзла+".mxl", КаталогВременныхФайлов()+"/КНС_"+КодУзла+".mxl");
Соединение.Получить("фКНС_"+КодУзла+".mxl", КаталогВременныхФайлов()+"/фКНС_"+КодУзла+".mxl");

Сравнение = Новый СравнениеФайлов;

Сравнение.ПервыйФайл = КаталогВременныхФайлов()+"/КНС_"+КодУзла+".mxl";
Сравнение.ВторойФайл = КаталогВременныхФайлов()+"/фКНС_"+КодУзла+".mxl";


Если НЕ Сравнение.Сравнить() Тогда


ТекстДобавление = ТекстДобавление + КодУзла + "

"; // Символы.ПС можно было
Ошибка = Истина;


КонецЕсли;
Исключение

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

 

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


Процедура КнопкаВыполнитьНажатие(Кнопка) // можно было прописать сразу при открытии , но я сначала проверял потом так и осталось


Соединение = СоединениеФТП();
Ошибка = Ложь;
ТекстДобавление = "";
ПроверитьОСВ("АЛМ",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("АПФ",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("ЮКП",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("ЖПФ",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("МПФ",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("КПФ",Соединение,Ошибка,ТекстДобавление);
ПроверитьОСВ("ЗКП",Соединение,Ошибка,ТекстДобавление);

Если Ошибка Тогда
ТекстHTML =
"
|
|
|
|
|
|
|Добрый День!

|

|Данное письмо было посланно в автоматическом режиме , отвечать на него не требуется, расхождение
|наблюдается по следующим узлам :

"
+ ТекстДобавление +"

|С уважением №"№"№" Айбек

|Департамент информационных технологий

|АО ""№"№"№"к""

|Тел: 1267

|
|";

ЛогФайл = Новый ТекстовыйДокумент;
ЛогФайл.УстановитьТекст(ТекстHTML);

Если НЕ ОтправитьНаПочту(ТекстHTML) Тогда


ЛогФайл.Записать(КаталогВременныхФайлов()+"/log.html");
Соединение.Записать(КаталогВременныхФайлов()+"/log.html","mail_error"+Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy")+".html");


КонецЕсли;


ЛогФайл.Записать(КаталогВременныхФайлов()+"/log.html");

Соединение.Записать(КаталогВременныхФайлов()+"/log.html","mail_error"+Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy")+".html");


КонецЕсли;


Сообщить("Расхождение данных по :" + ТекстДобавление);



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

Процедура ПриОткрытии()


КнопкаВыполнитьНажатие(Неопределено);


ПрекратитьРаботуСистемы();

 

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

 

5. Требуется создать задание в планировщике с запуском обработки из пункта №4 , по времени после выгрузок всех файлов.

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

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 24894 руб.

12.06.2017    148451    864    302    

455

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.21.x).

35000 руб.

23.07.2020    58770    284    75    

224

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.246.x) и БП 3.0 (3.0.175.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    27845    198    58    

153

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    175122    319    267    

388

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16260 руб.

18.02.2016    191262    626    536    

545

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Перенос данных из КА 1.1 в КА 2 | из КА 1.1 в УТ 11 | Воспользовались более 367 компаний! | Переносятся все возможные виды документов, начальных остатков и вся справочная информация из "1С:КА 1.1" в "1С:КА 2.х" / "1С:УТ 11" | Разработан в формате КД 2 (правила конвертации данных) | Фильтр по организациям при выгрузке | Выбор разных алгоритмов выгрузки начальных остатков | Можно проверить перенос до покупки!

55778 50200 руб.

04.12.2015    194230    254    351    

409

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    39717    112    73    

106

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С v8.3 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

110400 руб.

11.06.2015    59184    38    20    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ak0710 166 08.05.12 08:37 Сейчас в теме
2. Артано 799 09.05.12 16:31 Сейчас в теме
(1) К моему удивлению тут обнаружилось немало людей именующих себя программистами и выдающие скачанные отсюда работы за свои труды. Причем это явление довольно распространено. Недавно испытал момент славы, в одной организации предприимчивый молодой человек, под видом весьма технологичной вещи загнал им выложенную мною на сайте простенькую печатную форму. За работу и внедрение(!!!) взял 5к. Такие дела :-(

P.S. По теме чтобы не оффтопить - идея хорошая. Попробую завтра пощупать
3. ak0710 166 10.05.12 09:04 Сейчас в теме
(2) Артано, Да это так и есть , Я думаю может загружать только идеи как делать то или иное или просто наброски , а не готовый результат , обмен знаниями это хорошо.
4. ak0710 166 29.05.12 12:47 Сейчас в теме
Так же хотелось бы дополнить что после проверки каждый день требуется чистить эти файлы с фтп каталога , так как у меня свой сервер фтп я на нем запускаю батник с таким содержанием:

del /s d:\regions\*.mxl
del /s d:\regions\*.html

"d:\regions\" каталог выгрузки ОСВ.
5. slavich 7 10.09.12 15:00 Сейчас в теме
Идея супер, приходится время от времени проделывать тоже самое но в ручном режиме, по той же технологии...
Оставьте свое сообщение