<?php // Полная загрузка сервисных книжек, создан 2024-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='\
Работает в типовых? Или в любых?
(1) TODD22, работает в любых, протестировал на 3 конфигурациях, если нужно ее подключать Как внешку, то сегодня добавлю функционал бсп для подключения
Обновлено:
Добавил функционал для подключения как внешнюю обработку к конфигурациям на основе БСП.
Кто скачал, отписывайтесь, устраивает или нет. Может чего нужно добавить или обработка идеальная=)
Вид — «Контрагенты» — увы не найдено … БП 3.0
(5) pvb2003, а можно скрин ошибки?
При нажатии на кнопку отобрать в конфигурации 3.0 Бухгалтерия появляется сообщение
{Форма.Форма.Форма(1127)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы): Недопустимое значение параметра (параметр номер ‘2’)
(7) balance, ошибка связана с настройками функциональных опций, завтра выложу исправленную версию обработки.
Обновлено 12.08.2015
Исправил ошибку с функциональными опциями, теперь если реквизит не доступен по функциональным опциям, то он не будет отображаться и в редакторе.
Добрый день!
При нажатии Отобрать
ОтобратьСервер()
…
ЗначениеВДанныеФормы(лРезультатОтбора,ЭтаФорма.РезультатОтбора);
Сообщение об ошибке:
{Форма.Форма.Форма(1133)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы): Недопустимое значение параметра (параметр номер ‘2’)
Прошу исправить.
БП 3.0 Последний релиз, БД MSSQL SERVER 2012
(10) Sergant, здравствуйте, подскажите включены ли функциональные опции, какой точно релиз конфигурации?
Обновлено 18.10.2015
Исправил ошибку, приводящую в невозможности использования данной обработки для некоторыйх документов (Ошибка при вызове метода контекста (ЗначениеВДанныеФормы))
(12)
Добрый день Управление торговлей, редакция 11.1 (11.1.9.56)
{Форма.Форма.Форма(1146)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы): Недопустимое значение параметра (параметр номер ‘2’)
Обработку скачал сегодня.
При выборе ссылки на документ (реализация товаров и услуг), нижняя табличная часть не заполняется!
(13) dimabenyash, странно думал эту проблему решил, у вас конфигурация с доработками?
(13) dimabenyash, Исправил, маленький недочет пропустил.
Интересный механизм: +1
спасибо за обработку … маленький совет … добавьте кнопку «выбрать все документы» , т.к. по одному документу в список добавлять документы трудоемко, а через запрос , консоль запросов добавление не удается
(17) FlexL, постараюсь вскоре выложить новую версию обработки, которая будет поддерживать множественный выбор, подскажите, а что не получается с консолью?
Не передаются данные запроса из консоли запроса в обработку. Т.е. после нажатие кнопки «добавить запросом», подключаю консоль запросов, пишу запрос, нажимаю «выбрать результат» и выдает ошибку. Правда я использовал консоль запросовhttp://infostart.ru/public/190493/ , другой под рукой не было.
(19) FlexL, данная консоль для обычных форм, и она в принципе не работает на управляемых. Попробуйте консоль просто открыть в программе, скорее всего откроется пустая форма.
Добрый день.
Пытаюсь использовать вашу обработку в ЗУП 3.0
Групповое изменение движений документа «Перенос данных» регистр «ВзаиморасчетыССотрудниками»
На закладке «Список объектов» нажимаю кнопку «Добавить» — появляется список документов …
А как выбрать конкретный документ?
Кнопки выбора нет.
Подключил консоль запросов, написал запрос — но почему то результаты запроса не переносятся
(21) OlegBog1971, когда нажимаете кнопку добавить, откроется форма выбора документов, 2 раза щелкаете мышкой на нужном вам документе, тогда он добавится в список объектов, чтобы работать с одним документов в обработке, просто в «списке объектов» должен быть один документ.
(22) при двойном щелчке по нужному документу открывается сам документ, в список объектов ничего не попадает.
Использую типовую ЗУП 3.0.25.64
(23) OlegBog1971, хм, а в левом верхнем углу нет кнопки выбрать? можете прислать скрин формы, когда выбираете?
(24) вот скрин результата нажатия на кнопку Добавить — появляется список документов
(24) вот скрин результата двойного клика при выборе конкретного документа — открывается сам документ
(26) OlegBog1971, вы не туда добавили скрины, нужно нажимать не на кнопку «Выберите файл», а ниже под полем для комментария «Прикрепить файл»
пардон …
как видите кнопки выбора нет
(28) OlegBog1971, хорошо сегодня протестирую для зуп 3.0, возможно это ошибка 8.3.7, напишите в личном сообщении свой e-mail и я как сделаю вышлю вам исправленную версию.
(29) отправил в личку
Добрый день! 1С:Предприятие 8.3 (8.3.7.1873)
Бухгалтерия государственного учреждения, редакция 2.0 (2.0.42.25)
{Форма.Форма.Форма(1100)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы): Недопустимое значение параметра (параметр номер ‘2’)
Вид :Корректировка регистров
Обработку скачала сегодня.
(31) Ироида, Добрый день, подскажите, при каких обстоятльствах проявляется ошибка, и в каком документе?
(31) Ироида, обновил, просьба перескачать обработку.
Как удалить лишние движения данной обработкой? Например у документ в регистре накопления 4 строки, нужно оставить две.
(34) Здравствуйте, данная обработка не обладает таким функционалом.
(34)
http://infostart.ru/public/103021/
Смотрите
(36) интересует обработка в управляемых формах
У меня при использовании обработки возникла маленькая проблемка:
— При добавлении выборки из запроса, сама выборка сохраняется на сервере, а первое чтение на корректность ссылок происходит на клиенте из-за чего происходит сваливание обработки.
После долгого анализа самойрешение проблемы оказалось до банальности простым:
вместо
И все заработало.
(38) давно в нее не заглядывал, спасибо за комментарий
Для того, чтобы после выбора документов были показаны движения, нужно перейти на закладку Отбор и нажать кнопку Отобрать. Нельзя ли сделать так, чтобы при отборе документов, автоматом обновлялись движения снизу?
Также мне пока не надо конечно, но непонятно, почему нельзя править отдельные проводки без групповой обработки? Или это потому, что версия Лайт?
(40) здравствуйте, потому-что версия лайт, у меня лежит про версия, все не могу выложить. Это сделано так как не у всех мощные компьютеры, а любой такой отбор вызывает серверный вызов, да и выбирать можно несколько документов, и отбор накладывать дополнительный, смысл получать то, что не факт, что тебе необходимо.
Так выложи ПРО-версию, может там еще какие фичи интересные есть?
Добрый день!
При попытке изменить движения регистра бухгалтерии ЕПСБУ в бухгалтерской операции, на закладке что изменить не дает выбрать субконто. Выбирает только его тип. Это косяк!!!
(43) Здравствуйте, а после того как выбрали тип нельзя продолжить выбор субконто?
В настройках при выборе консоли запросов выдает ошибку:
{ВнешняяОбработка.РедактированиеРеквизитовТЧУпрФорма.Форма.Настройки.Форма(68)}: В обработчике ОбработкаЗапросаПутьНачалоВыбора используется вызов контекстного серверного метода формы
Платформа: 1С:Предприятие 8.3 (8.3.10.2561)
http://v8.1c.ru/buhv8/)
http://www.1c.ru)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.52.36) (
Copyright (С) ООО «1C-Софт», 2009 — 2017. Все права защищены
(
Расширение конфигурации: Расширение У
Режим: Файловый (без сжатия)
Приложение: Толстый клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский
Вариант интерфейса: Такси
Ошибки:
———————————————————————————
29.09.2017 15:25:59
{ВнешняяОбработка.РедактированиеРеквизитовТЧУпрФорма.Форма.Настройки.Форма(68)}: В обработчике ОбработкаЗапросаПутьНачалоВыбора используется вызов контекстного серверного метода формы
(45) ошибку зафиксировал, спасибо
(44) Здравствуйте! действительно, после выбора типа не выпадает список выбора субконто.
Например ДоговорКонтрагента выбирает просто Договор из типа, а после изменения очищает реквизит в операции совсем, не заполняя его вообще ничем.
(47)
(44)
Простите, а для нас есть вариант решения проблемы?
Все хорошо, но вот КонтрольСсылокДляВыбораЗапросом(Адрес) поправьте уже. Перенесите её на сервер, с результатом запроса нельзя на клиенте работать.
Или это такой интеллектуальный ценз на использование конструктора запросов?
Проблему с выбором субконто так и не решили с июля месяца?
ваша обработка подойдет для документа «Перенос данных» в ЗУП 3,1?
Там как таковой табличной части нет, добавляется разный набор регистров в документ
(52) да, конечно, выбираете, что нужно редактировать движения.
Добрый день Андрей!
Скачала вашу обработку для документа «Перенос данных» в ЗУП 3,1(спасибо за неё!), столкнулась с неясностью:
может ли быть так, что в вашей обработке отображаются не все регистры, закрепленные для документа «Перенос данных» ?
Выбрала вид: «Перенос данных», галка «Редактировать движения» стоит, а в списке движений отсутствует нужный регистр накопления: «Учет доходов для исчисления страховых взносов», в доке «Перенос данных» он есть, подскажите как его выбрать в обработку?
скриншоты во вложении
(54) таблица отображает регистры, так как они выглядят в конфигураторе, скорее всего ваш регистр в конфигураторе называется немного иначе
Да спасибо, разобралась,
(55)
Отличная обработка, меня пока всё устраивает, благодарю!
Нашел еще ошибку: процедура ЗаполнитьНастройки, строка 958, насчет строки не уверен:
Было:
лНайденноеЗначение = мСписокРеквизитов.НайтиПоЗначению(лЗначение.Значение);
Должно быть:
лНайденноеЗначение = мСписокРеквизитов.НайтиПоЗначению(лЗначение);
Иначе вместо нужных недоступных строк, удаляются просто все подряд и табличные части затем отображаются некорректно.
(58) Здравствуйте. спасибо за замечание, проверю в ближайшее время.
Нашел еще одну ошибку:
В случае если в ТЗ, есть тип уникальный идентификатор или неопредено, то в запросе такую ТЗ выбрать нельзя.
Это вставка в функцию Функция ЗаписатьНаСервере(пПараметры) после инициализации переменной РезультатОтбора.
Здравствуйте! Подойдет Ваша обработка для редактирование проводок документа «Начисление зарплаты» 1С Бухгалтерия 8.3.
(61) Здравствуйте, да, если хотите подменить одно значение на другое.
т.е. я могу менять счета бухгалтерского учета? т.к. 1с заблокировала эту функцию