<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
А обработки ввода информации и загрузки ФИАС сами где?
Извиняюсь. Перезалил. :)Дайте почту, скину отдельно.
Не в тему разработки, но —
Чем ФИАС для пользователя информационной системы лучше КЛАДР? Какой объём занимают таблицы, достоверней ли КЛАДРа, есть ли точное взаимное соответствие, как обновляется этот классификатор?
(Вариант «это требует налоговая» не интересен, может им существовать осталось n малое секунд).
Автор, дорогой, где же ты раньше был ? Сами переходим на Сафари, убил кучу времени, чтобы прикрутить к торговой конфигурации этот самый ФИАС.
(3) Зеленоград,
http://kladr.ws/fias-dlya-programmista
ФИАС vs КЛАДР 🙂
(4) AKV77, Сами в процессе внедрения… Может тем кто будет после нас, будет легче, раз нам Сафари помочь не хотят… 🙂
А зачем? kladr легче найти
🙂 Кому это надо, тот воспользуется, а на нет, как говорится и суда нет :).
1С же свою БП перевели на ФИАС. Они уж точно ничего просто так делать не будут 🙂
А ПФР не перевел свою программу на ФИАС и проверяет kladr
1с перевел на ФИАЛ только затем, чтобы увеличить количество продаж ИТС
Возможно ли сделать загрузку dbf фиас из 8,1?
(10) wees, К сожалению, в 1С 8.1 не удалось прочитать данный формат обновления, поэтому обновление в 8.1 осуществляется из конфигурации ФИАС 8.2.
Разобрался
Огромное спасибо!
Проделана большая и очень нужная работа.
Короче, скачал я твоё творение, чтоб заюзать на 82 УФ, но был жестко обломан. Не загрузку я у тебя откуммуниздил на ура и был рад, что не пришлось вникать. Но с очисткой пришлось потрошить типовую, как и с формой выбора ибо у тебя нетуть почти всего фунгционала. А исчо ты все регистры по своему назвал.
Частично наименования объектов пересекались с именами моей конфигурации — пришлось переименовывать все, что бы было понимание, что к чему относится…
Добрый день!
Очень пригодилась обработка!
Единственное НО, существуют адреса, в которых отсутствует улица, например: деревня Такая-то, д. 1. В этой обработке завести такой адрес не получается. Можно-ли что-то придумать??
Если честно давно уже ей не пользовался, но насколько я помню, Вы можете просто внести улицу наименование улицы с клавиатуры,а не выбирать ее…
Добрый день!
Ситуация такая: существуют адреса, которые не содержат улицу, например: Вараксино с, Завьяловский р-н, Удмуртская Респ, дом 2 (это реальный адрес, в деревне нет улицы — сразу номер дома). При попытке набрать такое в обработке происходит ошибка: {Обработка.ВводКонтактнойИнформацииФИАС.Форма.ВводАдреса(785)}: Значение не является значением объектного типа (Идентификатор) СписокЗданийДомовУлицы=АдресныеОбъектыФИАС.ЗданияСооруженияУлицы(УлицаСтруктура.Идентификатор).
Ну очень надо побороть такую проблему!
(18) Насчет типовых — не знаю, где как. Но в самодельной конфигурации (кстати, тоже для ФИАС) на основе последней БСП — такая ситуация норм отрабатывает.
Вероятно, нужно обновить конфу.
Перезалил файл конфигурация ФИАС 8.2
(20) БОЛЬШОЕ СПАСИБО !
(20) единственная разработка для ФИАС на обычных формах!
Не подскажете, а есть доработанная форма ввода адреса, чтобы как в БСП. выбор улиц, городов в отдельных формах))?
Спасибо за разработку. Нужно было привязать в УП ЖКХ справочник зданий к ФИАС.
На сайте ГНИВЦ информация, что выгрузка в формате КЛАДР будет доступна до конца года. После — только ФИАС. Так что разработка весьма актуальна.
Добры день,
Скачал конфигурацию для 8.2, при попытке загрузить ФИАС (взял только 77 регион для быстроты) — получил ошибку Illegal array index when decoding EII.
Подскажите пожалуйста, как решить и с чем связана может быть?
Коллеги, разобрался — видимо ошибка платформы была, на другом релизе 8.2 заработало.
Скачала конфигурацию 8.2. При попытке загрузить адреса выдается ошибка:
IIIegal array index when decoding EII
Платформа 8.2.19.130
(26) Подскажите, пожалуйста, какая ошибка платформы? Скачала конфигурацию. Получила такую же ошибку. Но платформа у меня 8.2.19.130. Это последняя на текущий момент платформа по 8.2.
Какая у Вас платформа и как решилась данная ситуация?
Работает на платформах 8.2.18… или 8.3
Подойдет ли для 1С УПП 8.3? Формы НЕ управляемые
(28)
У меня заработало на 8.2.17.169
(30) При запуске данной (скачанной обработки) под платформой 8.3. (у нас 8.3.9.2170) загрузка в данную конфигурацию отрабатывает нормально. А потом в любую конфигурацию, запущенную под 8.2 загрузить обработкой «ВыгрузкаЗагрузкаДанныхXML82.epf». Обработка работает для выгрузки и для загрузки данных, несмотря на то, что запущена конфигурация под 8.3. Это проверили.
Если у Вас «1С: УПП» работает под 8.3, то сразу должно грузиться без ошибок…
Процедура или функция с указанным именем не определена (ПолучитьИндексПоУлицеДомуКорпусу)
ИндексУлицы = <<?>>ПолучитьИндексПоУлицеДомуКорпусу(Улица, СтруктураЗаписи.Поле7, СтруктураЗаписи.Поле8)
Процедура или функция с указанным именем не определена (ПолучитьАдресныйЭлемент)
Улица = <<?>>ПолучитьАдресныйЭлемент(СтруктураЗаписи.Поле6, 5, РодительИндекса.Код);
А откуда эти процедуры? (Это при попытке запуска обработки)
Что-то ни в инете ни тут не нашел ответа на вопрос, а как быть если нужно в старую конфигурацию (УТ 10.3, БП 2.0, ЗУП 2.5) загрузить вместо старого КЛАДР данные из ФИАС? Естественно не меняя конфигурацию, ведь если я даже внесу данную конфу и загружу адреса они не будут подбираться например в карточке контрагента
(33) Тоже не получается открыть ровно с такими же ошибками. Не удалось найти эти функции?
(35)УправлениеКонтактнойИнформацией.ПолучитьАдресныйЭлемент Это в ЗУП 2.5, вероятно в других конфигурациях как-то аналогично
(36) Да, спасибо. Уже нашла, в УПП тоже в общем модуле УправлениеКонтактнойИнформацией. Единственное, одна из процедур не была экспортной.
У нас в УПП 1.3 8.1 я эти поля вносил дополнительно в карточку контрагента. Соответственно и обработку по их заполнению. И в дальнейшем вытаскивал данные из регистров, если надо было выгрузить адрес контрагента в формате ФИАС.
Так кода ФИАС нигде нет?
(39) Есть в документах «НачислениеПоБольничномуЛисту» и «ОтпускПоУходуЗаРебенком» из этих документов выгружается…
Какой у Вас релиз?
Да. Для релиза 130 при ручном вводе кода в начислении больничного, данные попадают в реестр ( на форме данные действительно НИГДЕ не отображаются) и реестр выгружается. Переформировывать реестр ( если список отредактирован в ручную ) не обязательно но перевыбрать каждый больничный придется.
Поясните, пожалуйста, что именно делает данная конфигурация, позволяет получить код ФИАС без обращения на сайт налоговой? ведь в ЗУП 2.5 нет даже никакого регистра и обработок для получения кода из адреса, всего 2 места занесения документы «НачислениеПоБольничномуЛисту» и «ОтпускПоУходуЗаРебенком».
В этих документах так же надо будет вносить данные в ручную? Или реализован какой то регистр хранения ФИАС по сотрудникам и необходимо будет доработать документы начисление и отпуск? Спасибо.
Подскажите, данная доработка умеет возвращать уникальный идентификатор номера адреса?
как это требуется заполнять в реестре сведений фсс
Конфигурация позволяет, при внедрении в типовую, загружать классификатор ФИАС и для необходимых справочников, например контрагентов, выбирать адрес из этого классификатора. При этом выбранное значение хранится как в строковом виде как представление, так и в виде xml кода. Данный механизм повторяет механизм 1с бухгалтерии предприятия 3.0. По поводу кода фсс сказать ничего не могу, не сталкивался, конфигурация предназначалась не для этого, но если дадите пример кода фсс могу посмотреть если что нибудь подобное…
в документе «реестр сведений фсс по нетрудоспособности» (например) необходимо помимо указания кладр адреса, указывать еще и уникальный идентификатор номера адреса. Строка в виде — 85042017-****-****-****-AC6F5837CE52 (* — скрытые данные мною). Данный идентификатор, как я понял берется сhttp://fias.nalog.ru
https://dadata.ru/api/clean/#response-address
И скорее всего тут необходимо реализовывать API запросы —
(44)Спасибо за ответ, а в документы Начисление по больничному листу уже каждый может самим организовать заполнение ФИАС правильно? Эти документы не изменялись в предложенном решении?
Да, скорее всего
Добрый день! В описании указан релиз конфигурации 1С УПП 3.2.1. Возможно допущена опечатка.Скорей всего релиз 1.3.2 или 1.2.3.
Вопрос к автору: я правильно понимаю, что конфигурация позволяет хранить в базе данные по GUID домов по ФИАС?
(49)Отвечу сам себе. Не стали качать эту конфигурацию, сделали скульную базу полноценную с обновлением на паскале и прямыми запросами из 1С. Скульная база весит 44 гигабайта без индексов, из всех таблиц дома — самая огромная. 1С пошли по пути «кастрации» в типовых конфигурациях, и таблица домов превратилась в строку в хранилище значений, остались только номера. В общем, если конфигурация дернута из типовой БП, то GUID домов Вам не увидеть в ней. Для Сафари не подойдет однозначно.
(2)Просьба автору связаться с нами stentor123@mail.ru Существует проблема при переходе на новую версию ФИАС
Жаль что обработку по переносу не включили в саму конфигурацию. Если не сложно можно ее на мыло выслать? Flynxx@gmail.com
Есть ссылка на другой ресурс?
Правильно я понимаю что полный фиас (https://its.1c.ru/download/fias2) ваша обработка не грузит?