<?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='\
Поправил в отчете рентабельность, теперь выражается в %. Спасибо за замечание!
мне нравится!
Для тех, кто уже скачал, можно поправить формулу в конфигураторе, в СКД на закладке «Вычисляемые поля».
Спасибо.
отлично сказано — не для россии!
Отчет обновил, изменил группировку в запросе, т.к. иногда задваивались либо себестоимость, либо выручка (например при разных ГТД одной номенклатуры), ну и ещё какие-то мелочи.
{(18, 58)}: Не задано значение параметра «СубконтоКт1» И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В ИЕРАРХИИ(<<?>>СубконтоКт1)
Рарус.Общепит 3.0 на базе БП
(7) host_kms, Поле товар в шапке не заполнено. Укажите группу «Товары». Но можно и удалить этот отбор, просто для моих клиентов так удобнее, если что пишите удалим.
А как сделать отбор по всем товарам?
(9) woot, см. комментарий №8.
Поставил галку на товары,но ничего не показал отчет,начал выбирать по определенной номенклатуре смотря движения в оборотке,тоже ничего.
Скрины могу выложить
(12) woot, Давай скрины.
аналогичная ситуация. Бухгалтерия предприятия 3.0 (релиз 3.0.36.18). При попытке сформировать выдает {(18, 58)}: Не задано значение параметра «СубконтоКт1» И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В ИЕРАРХИИ(<<?>>СубконтоКт1) . не совсем понимаю как удалить этот отбор (комменатрий 8), «галка» на номенклатуре не стоит. Я не программист, но если пошагово разъяснить — то попробую подправить. Отчет судя по всему хороший. Хотелось бы добавить НДС с группировкой по ставкам.
(14) alternativa, Если удалить не получается, тогда заполните этот отбор значением группы справочника «Номенклатура» самого верхнего уровня.
(15) Очень жаль, но отчет не работает и в случае, если выбираю группу «Товары» в номенклатуре. В этом случае ошибка не выдается, но в таблице выведена только шапка. Работаю с интерфейсом «Такси» , м.б. тут есть проблемы? Я не программист , а бухгалтер. Видимо данный отчет в первую очередь ориентирован на уровень программиста.
(16) alternativa, Видимо, из группы ТОВАРЫ у вас не было реализаций. Укажите любую другую, в которой находятся ваши товары. Если товары не сгруппированы, тогда можно это сделать групповой обработкой. А чем, вообще, фирма занимается?
(16) alternativa, В ТАКСИ проблем нет, проверено.
(17)В номенклатуре есть группа Товары, эта группа включает в себя номенклатурные позиции, по которым была реализация. Еще раз повторяю — я не программист. Для меня термин «групповая обработка» не увязывается в те поля, которые предусмотрены Вашим отчетом. Такая же проблема была и с другим участником. Но ведь он как-то ее решил!!!
Залезла в модуль — понимаю, что вся загвоздка сидит в «И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В ИЕРАРХИИ(&СубконтоКт1)»
Если язык 7.7 для меня не представляет проблем, то по 8.3 любое решение через конфигуратор подвергает в ступор. Ковыряться приходится долго — вот и решила воспользоваться уже готовым решением. Но видимо неудачно. Еще раз повторю — я не программист, а бухгалтер. Поэтому не всегда с первого раза могу понять ту или иную терминологию.
Организация занимается как производством, так и торговлей покупных товаров (не розница). Интерес также в вашем отчете вызывает возможное дополнение по сумме исчисленного НДС с указанием ставки (это м.б. 0%,10%,18% так и «Без НДС»).
на 7.7 есть такой отчетик, если есть необходимость могу скинуть. Очень удобный
(19) alternativa, Ответил в личку.
Добавил второй вариант обработки без отбора по номенклатуре. У некоторых пользователей возникали проблемы с его использованием.
При этом, разумеется, кому очень нужно можно при настройке варианта отчета этот отбор организовать (ну или первый вариант отчета).
Отчет не работает.
Нет колонки выручка и тянет НДС. хотя мы на упрощенке.
(22)Да, судя по вашей картинке, выручки на 90-ом счете нет. А можете скинуть ещё и картинку проводок БУ этого документа ( Реализация ТУ № 165 от 11.03.2014)?
(23)
(24) lesja_bryansk@mail.ru, Специально для вас изменил под УСН, кину на почту. Просто у вас выручка по БУ определяется, а под ОСН по НУ, которого у вас нет.
(25) СПАСИБО большое! Теперь все работает:))
Огромное спасибо за отчет. Подскажите, пожалуйста, а можно как нибудь настроить количество проданного товара ?
Пояснение к 27. Отчет, который скачала,ОтчетПоПрибылиНоменклатурыНовый. Я так поняла на Скрине показан другой отчет ? Или можно этот отчет настроить ?
(28) Душечка, На снимке с колонкой количество вариант «без отбора».
Очень Вам благодарна. У меня клиенты ведут в БП 3.0 реализацию по сетевым магазинам, т.е в базе несколько контрагентов с одинаковыми названиями , но разными КПП. Им нужен был отчет по реализации по каждому магазину и в целом по сети. Я себя называю более или менее продвинутым пользователем, но ни как не программистом. Инфостарт всегда спасал. В вашей обработке поменяла приоритеты и всё получилось, т.е для первого отчета ( для каждого магазина )вначале идет Покупатель, потом Номенклатура и за тем Документ . Для второго отчета ( в целом по сети ) Номенклатура-Покупатель-Документ.
Моя розовая мечта, когда-нибудь самой написать дополнительный отчет для программ 1С.
Я понимаю, что программистом не рождаются, а им становятся. Посоветуйте, пожалуйста,какие книги почитать , чтобы простые запросы выполнять. Ну , не совсем же я дурилка-картонная.
(30) Душечка, Я читал «РАЗРАБОТКА СЛОЖНЫХ ОТЧЕТОВ В 1С:ПРЕДПРИЯТИИ» Е.Ю. Хрусталевой, ну и можно ещё посоветовать видео-уроки от Чистова Д.В. Рад, что отчет вам пригодился. Ну и, кстати, сделайте копию себе этого отчета и поиздевайтесь над ним, думаю, тоже в плане понимания разработки подобных отчетов пойдет на пользу.
(31) Спасиб-а-а-а-а-а-а. Окунусь в мир программирования. Надеюсь , что моё плавание на воде наконец-то закончится, и я погружусь , ну, хотя бы на метр в мир программирования 1С.
Возможно ли сделать, чтобы данный отчет показывал данные и по услугам?
(33) ant_lom, В описании я указал, что отчет строится по запросу 41 и 90 счетов. Услуги на 41 счете вряд ли отражаются )).
http://infostart.ru/public/344253/
Недавно я выложил ещё один отчет по доходам и расходам номенклатурных групп, там запрос по 20 и 90 счету строится, может он Вам лучше подойдет.
Вот ссылка:
Здравствуйте. Отчет вообще ничего не формуирует если делаю отбор по датам. Если период убираю, то формирует по всем продажам. 🙁 почему?
(35) array38, Какой файл скачали?
Я скачал первый и третий. Для ОСНО я так понимаю… Выяснил, что отчет не формируется, если стоит конец периода. Если его нет, то отчет строится.
Также, вопрос: а можно ли добавить документ движения в структуру? В скд не вижу такого пункта.
Благодарю!
Даты сейчас перепроверил, но вроде как работает корректно. ((
А по документам движения вопроса не понял, отчет их тоже выводит, даже на скрине это видно. (без отбора)
(38) Почему у меня все не так? Помогите пожалуйста! Сможете подключиться и глянуть? Небесплатно конечно!
Документа движения у меня нет.
Добрый! Релиз БП 3.0.40.31
Движений в отчете нет — без отбора, все убрал и отборы периода, организацию и покупателей.
Структуру отчета смотрел, менял — результат ни документов ни номенклатуры. Странно
(40) a_kuznetsov, Чем занимается фирма? Какие проводки в документах реализации?
Производство
Движения по 43 счету
(42) a_kuznetsov, В описании указал, что отчет строится на проводках 41-го 90-го счетов. Думаю, если немного запрос изменить (41 на 43 счет), отчет будет работать и для производственных организаций.
(43) В запросе поправил, а воз и нынче там
(44) a_kuznetsov, В СКД на закладке параметры не указали значение параметра (&Счет кт43). см. приложение
Действительно, сам бы не додумался. Прикладываю обработку с изменениями
(46) a_kuznetsov, Я не понял, работает или нет? В демо базе у меня отработала на ура.
Да, спасибо
Отчёт у автора не работает.
Переделал с нуля.
И за что 2 смартнами с меня списали ?
(49) zak555, Не понял, а какое отношение этот отчет имеет ко мне. Это не мой отчет.
(50) я скачал кажись два — из публикации и поста (44)
в отчётах когда даты ставил ничего не выводилось — полез разбираться — как я понял там параметры пересекались — в итоге новую схему сделал, модуль объекта чуть отредактировал ну и отдал автору
(51) zak555, Запрос в отчете, Вами присланном совсем не мой. А в посте (44) человек желал запрос по 43 счету, который я ему исправил и отправил в (46) посте. Далее из переписки понятно, что отчет и по 43 счету заработал, но это другая версия отчета. Возможно Вам нужен был отчет с вариантом без отбора, если Вы скачивали у меня.
(20) и мне ответьте в личку, потому что та же проблема, а отчет не работает, но очень нужен
Отчет не работает если является организация установлена как ИП, значения суммы выручки пустое, а ндс равно стоимости продажи. В итоге бред.
(54) Гость, Уважаемый Гость, для ИП имеется свой отчет «Отчет по прибыли номенклатуры УСН». Посмотрите внимательнее, Вы скачали для ОСН.
(55) Так ИП на общей, я так понял что отчет считает НДС на 90.01, сумма НУ, а если организация установлена как ИП, то поле НУ,ВР и ПР. нет. И в отчете в поле НДС тянется просто выручка. По идее для ИП на общей НДС должен тянуться с 90.03
В параметрах началопериода исправьте НачалоПериода(&НачалоПериода, «День»).
В условиях желательно использовать в иерархии (&Счет)
(57) buy_sale, Спасибо за комментарий, хотя по счету там указан конкретный счёт, а не группа, иерархия неуместна, но если только кто-нибудь подчиненные счета не заведет, но это уже другая история.