<?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.6.14):
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет(1053)}: Тип не определен (СправочникСсылка.ЗначенияСвойствОбъектов)
ИначеЕсли ТипЗнч(Элемент.Значение) = Тип(«СправочникСсылка.ЗначенияСвойствОбъектов») Тогда
+ Если прервать отчет то в отборе вылазит — ###ОтборПоОрганизации###.
Было бы неплохо еще и регистр «Налоговый» использовать…
Спасибо автору.
Публикация даёт представление о дальнейшем развитии системы бух.отчетов от фирмы 1с.
Ожидал большего.
(8)+1
В УПП не работает.
Вот примерно такие ошибки
{ОбщийМодуль.ОбщегоНазначения(4685)}: Поле объекта не обнаружено (новнаяОрганизация)
ЗначениеИзПараметраСеанса = ПараметрыСеанса[Сред(ИмяПараметра, 3)];
{Форма.ОборотноСальдоваяВедомостьПоСчету(844)}: Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных): Ошибка получения информации набора данных
по причине:
{Форма.ОборотноСальдоваяВедомостьПоСчету(844)}: Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных): Ошибка получения информации набора данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(26, 57)}: Поле не найдено «ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПорядокПогашенияСтоимости»
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.<<?>>ПорядокПогашенияСтоимости КАК ПорядокПогашенияСтоимостиБУ
Ну + давно нужно было эти отчеты на компановке сделать.
За обработку плюс.
БП 1.6.14
В разных видах отчета при добавлении отбора выдается одна и та же ошибка 🙁
Например, Анализ счета, в панели отбора нажимаю Добавить элемент, выдается ошибка
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет(1127)}: Поле объекта недоступно для записи (ЭтаФорма)
Отказ = Истина;
При просмотре кода становится видно, что ошибка вызова метода модуля «мОтборДобавитьЭлемент» из метода формы (строка №1030) «Процедура КоманднаяПанельОтборДобавитьЭлемент(Кнопка)
мОтборДобавитьЭлемент(ЭтаФорма, ЭтаФорма); !!
КонецПроцедуры»
Исправить легко — мОтборДобавитьЭлемент(ЭтаФорма);
(11+) И подобные ошибочные вызовы есть в нескольких формах — Карточка счета и т.д.
на упп не работает
При выборе в главной ОСВ варианта оформления : Основной ,
не выводится шапка таблицы.
Список недочетов можно продолжить.
Автор, несмотря на актуальность выложенного отчета,
количество ошибок и недочетов — слишком велико.
(5), (11) исправлено
(10), (13) теперь работает и в УПП
(14) это ошибка первоисточника. Исправил.
(14) какие еще?
(8), (9) можно поподробнее, что вы ожидали увидеть в этих отчетах?
(18) В отчете Анализ Счета в группировках по счету при попытке добавления новой группировки (субконто) :
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет(1180)}: Поле объекта недоступно для записи (ЭтаФорма)
Отказ = Истина;
(0) Почему так долго происходит первоначальное открытие формы отчета?
Я бы хотел увидеть в Универсальном отчете на СКД
1. Запуска любого бух.отчета из другого.
Например запустить для опредленного субконто из «ОСВ по счету» Анализ счета» или «Обороты счета».
2. Возможность перепроведения документов из отчета
Если интересно , скромно предложуhttp://infostart.ru/projects/3288/
Также посмотритеhttp://infostart.ru/projects/5189/
(21) Особенность СКД. Много места в опер.памяти.
(0) Главбух жалуется:
берем анализ счета, находим строку, у которой есть и дебетовое, и кредитовое движение, щелкаем для расшифровки, например, дебета.
Получаем отчет «Отчет по проводкам», в котором есть все движения, а не только дебетовые.
В штатных отчетах на БП 1.6.14 такого бага нету 🙁
(24) работаю над исправлением
В функции Модуля объекта мПолучитьПредставлениеПериодичности(Периодичность) исправь Периодичность = 6. Она там везде 6…
(20), (24), (26) исправил
(22)
> 1. Запуска любого бух.отчета из другого.
Возьму на заметку
> 2. Возможность перепроведения документов из отчета
Кажется, что для стандартных отчетов это лишнее.
(28) Спросите у бухгалтеров . Они расскажут зачем это нужно :
перепровести документы только по одной номенклатуре или контрагенту.
(29) я считаю, что отчеты, тем более одни из самых часто используемых, не должны изменять данных.
(30) Речь идёт о лишь о возможности для бухгалтера , находясь ,например, в отчете «Оброты счета» с режимом по документам перепровести документы-
движения , составившие сальдо только по одному субконто.
(31) я прекрасно понял о чем идет речь. Но все же, я считаю, что отчет должен только получать информацию, а не изменять. Ведь перепроведение может очень существенно изменить данные.
Хотелось бы узнать, необходим ли подобный отчет по НУ?
В УПП не работает НИ один отчет! . Уберите из заголовка или надо доделать
(34) версия УПП? На что ругается? В УПП 1.2.24 работает, проверял.
УПП 1.2.23.2
1. Везде (ОСВ по счету, обороты счета и тд ) Поле не найдено «ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПорядокПогашенияСтоимости»
2. {ОбщийМодуль.ОбщегоНазначения(4696)}: Поле объекта не обнаружено (новнаяОрганизация)
ЗначениеИзПараметраСеанса = ПараметрыСеанса[Сред(ИмяПараметра, 3)];
(36) см. (16). Скачайте заново отчет.
Действительно, видно я скачивала раннюю версию. Плюсую
Теперь и в 1С:Бухгалтерия предприятия 8 для Украины работает
Теперь и в 1С:Управление производственным предприятием для Украины работает
Большой плюс. Спасибо. Очень нужно.
Необходим подобный отчет по НУ. Очень нужен.
Теперь и в 1С:Управление торговым предприятием для Украины работает
(42) это уже второе пожелание, если наберется больше 5, то сделаю и по НУ
Ну раз идет подсчет голосов, да еще гарантируется работа в УТП для Украины — и я подам заявку на отчет по НУ… :))
в модуле формы «ОборотноСальдоваяВедомость» в строке 753 (процедура «КоманднаяПанельДополнительныеПоляДобавитьЭлемент»)
Измени
мДополнительныеПоляДобавитьЭлемент(ЭтаФорма, ЭтаФорма);
на
мДополнительныеПоляДобавитьЭлемент(ЭтаФорма);
иначе выскакивает ошибка поле Отка недоступно для записи
хотя от добавления дополнительных полей ничего не меняется 🙁 или я не понял, что там должно измениться. Но во всяком случае ошибка вылетать не будет
в модуле формы «ОборотноСальдоваяВедомость» в процедуре «ГруппировкаПредставлениеНачалоВыбора» перед открытием формы «ФормаНастройкаПоСубконто» измени
ФормаНастройкиСубконто.Открыть();
на
ФормаНастройкиСубконто.РежимВыбора = Истина;
ФормаНастройкиСубконто.ОткрытьМодально();
иначе возникает ошибка
{ОбщаяФорма.ФормаНастройкаПоСубконто(27)}: Ошибка при вызове метода контекста (Закрыть): Операция не доступна для не открытой формы
Закрыть();
конфигурация БП 1.6.15
по причине:
Операция не доступна для не открытой формы
аналогично в процедуре «РазвернутоеСальдоПредставлениеНачалоВыбора»
ОСВ по счету. Пытаюсь составить отчет по счет 60.01. Хочу вывести контрагентов с иерархией — не получается. В разделе группировок невозможно изменить «Элементы» на что-то другое
там же в заголовке отчета рисует
Отбор: ###ОтборПоОрганизации###. Не критично, но лучше бы его не было
если попытаться в отборе (не под заголоком, а в пенли настроек) изменять отбор по огранизации, то выдает ошибку
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет(1133)}: Поле объекта не обнаружено (ТаблицаОрганизаций)
НайденныеСтроки = ФормаОтчета.ТаблицаОрганизаций.НайтиСтроки(ПараметрыОтбора);
сорри за опечатки: заголоком = заголовком, пенли = панели
в форме Оборты счета глобальная переменная модуля формы «ТаблицаОрганизаций» объявлена, но не инициализирована. Поэтому при попытке в настройках отбора «играться» с организациями возникает ошибка в том же месте (см. 52)
форма «АнализСчета», процедура «ГруппировкаКорПредставлениеНачалоВыбора» исправление как в комменте 48
там же ошибка с отбором, связанная с «ТаблицаОрганизаций» — переменна есть, но не инициализирована
то же самое «Карточка счета» (ТаблицаОрганизаций не инициализирована)
в остальных формах те же ошибки.
В общем там, где есть вызовы
ПолучитьОбщуюФорму(«ФормаНастройкаПоСубконто»
исправить как в 48. Ну и что-то сделать с ТаблицаОрганизаций. Либо ее как-то заполнять, либо изменить что-то в процедуре «мОтборПриОкончанииРедактирования» модуля обработки
А вообще отчет замечательный и плюс я уже поставил 🙂
Нужно по НУ
Замечательный отчет, добавь пожалуйста налоговый учет 🙂
{ОбщаяФорма.ФормаНастройкаПоСубконто(27)}: Ошибка при вызове метода контекста (Закрыть): Операция не доступна для не открытой формы
Закрыть();
по причине:
Операция не доступна для не открытой формы
пытался на 51м развернуть по субконтно. открывает, там два субконто. жму ок и ошибка.
Исправил ошибки. Перед использованием надо запустить обработку ОчиститьНастройки или вручную пометить на удаление элементы справочника «Сохраненные настройки», соответствующие настройкам отчетов.
Нужно по НУ
Буду заниматься отчетом для НУ
а в ОСВ можно сделать отбор по организациям?
(66) что-то подобное я планирую реализовать
1С перенесет эти отчеты из БП корп в просто БП.
Ну, где-то к зиме. Хотя может и осенью успеет.
откуда такая информация?
Скорее всего из БП КОРП сделают БП.
(71) Заслуга автора в адаптации отчетов для обычной Бухгалтерии БП.
Заслуга также в ознакомлении широкой публики с будущей (?) версией системы бух.отчетов в типовых конфигурациях БП,УПП и т.д.
Плагиат , по-моему , это всё-таки несколько другое.
Насколько я понимаю , отчет также будет изменён для НУ.
Часто просят Журнал-ордер (как в 7.7) — можно ли добавить ?
(73) а чем Обороты счета не устраивает?
Спасибо — оно..
В отчете Сводные проводки,
при добавлении отбора: {ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет(1116)}: Ошибка при установке значения атрибута контекста (ТекущаяСтрока): Отсутствует ключ строки
ФормаОтчета.ЭлементыФормы.Отбор.ТекущаяСтрока = ЭлементОтбора;
При этом по умолчанию формирует с отбором: Счет Равно «» И Валюта Равно «»
И ничего, естественно, не показывает.
(76) исправил
(66) Добавил в ОСВ отборы по Организации, Валюте, Счет.
Перед использованием надо очистить настройки по ОСВ (можно воспользоваться обработкой Очистка настроек)
спасибо
Вопрос. Почему при формировании отчета Анализ счета, при периодичности день, неделя, декада, сбивается сортировка по периоду?
(80+) Фактически получается что идет сортировка по Счету, КорСчету а уж потом по периоду
(80) исправил
+ добавила 🙂
Ожидала увидеть возможность в отчете, когда выбираю выводить Дополнительные Данные (например код товара) возможность указать также выводить их в той же колонке или выводить их в отдельной колонке. И еще нужна возможность выбора сор
Сорри. Сортировка получилась. Не получилось только в отдельное поле доп. показатель вывести
(84) пока такой возможности нет.
(6), (51) исправил
Супер буду тестировать
см 101-й комментарий к
http://infostart.ru/projects/5189/index.php?p=6&id=5189%2F%3Fp%3D6#comm
Из Минусов по сравнению с конкурентной разработкой:
а) нет возможности сформировать по нескольким организациям;
б) нет возможности выбрать РБ
в) нет возможности разворота по дополнительному балансовому измерению (вобще неизвестно — может и есть, но из-за б) — нельзя проверить)
И сразу же прошу прощения, в ОСВ по счету можно развернуть и по Организации и отобрать по нескольким организациям.. Тогда нужно
а) возможность выбирать другой РБ (не стандартный Хозрасчетный)
б) Отбирать по нескольким организациям и в ОСВ по всем счетам…
а) что-то подобное я делаю
б) по всех отчетах возможно использовать сложные отборы (в списке, в иерархии, ИЛИ, И, НЕ и т.п., т.е. все то что позволяет скд).
(91) б) точно, действительно можно.. просто на время куда-то пропала сама кнопка «настройка» в ОСВ…..
Ну тогда только а) — выбор разных РБ, и возможность добавления в Группировки по балансовым измерениям (наряду с субконто) — при чем не только в ОСВ по счету, но в ОСВ по всем счетам
э… и в) В ОСВ по всем счетам группировку — только по указанным Субконто, а не по всем которые есть на счету…
в) если нажать дважды на список субконто, то станет доступна кнопка выбора, по нажатию на нее откроется форма выбора субконто (можно выбрать необходимые и установить порядок)
пытаюсь запустить под типовой бухгалтерией 2.0 1с предприятие 8.2… пишет «{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет.МодульОбъекта(7)}: Поле объекта недоступно для записи (Пользователи)
Пользователи = Новый Массив;
» переименовала переменную написала ПользователиМассив = Новый Массив все заработало. Почему так?
(152) LaninaNata, в 2.0 появился общий модуль Пользователи, из-за этого и возникает конфликт с переменной.
(153) tuning1c, я так поняла что в 2.0 этот отчет уже и не актуален, там в типовой все практически тоже самое написано…
(154) LaninaNata, это собственно и есть отчеты из 2.0, просто адаптированы для работы с другими конфигурациями.
В БП 2.0 работать не хочет. А так очень хорошая идея.
Бухгалтерия предприятия
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет.МодульОбъекта(7)}: Поле объекта недоступно для записи (Пользователи)
Пользователи = Новый Массив;
Бухгалтерия предприятия
{ВнешнийОтчет.УниверсальныйБухгалтерскийОтчет.МодульОбъекта(7)}: Поле объекта недоступно для записи (Пользователи)
Пользователи = Новый Массив;
как подправить то?