<?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='\
(1,2) угу… манагерам — да. А где написано, что это только манагерам. Фишка отчета, что настроить его можно для разных пользователей. Топ-менеджерам именно такой анализ и нужен. Да и эффективность работы менеджеров оценивать тоже не по 3 этим показателям можно. Если бы я его от балды рисовал, тогда бы платно не делал, а этими показателями реально пользуются. Сложно как-то оценивать работу предприятия каждую неделю, если контрагентов за 100, а то и за 500. Манагеры-то разберут этих 500 на приемлимое кол-во и будут их контролировать по штучно. А вот всех сразу смотреть — это тот ещё гимор. Вообще см. статью мою по показателям. Всё действительно лежит на поверхности. Я, конечно, был немного разочарован, что эту тему подняли до меня, но подняли только в форуме и нашел я это после окончательного формирования методики. Но был рад что думал в правильном направлении. Так что читай статью и ссылки на форус cfin — не самый последний сайт по финансовому анализу.
Оплата за период и продажи за период позволяют быстро оценивать размеры долга. может должен он 1 000 000, а за месяц оплатил 10 000 000 — так не такой он и страшный этот кредитор, как который 100 000 должен , а оплатил 100 рублей.
Опять-таки сравнения за периоды… Можно и вручную делать. Получил 2 отчета кинул в ексель и… пишешь формулы, чтобы сравнить эти две таблицы…муторно. А уж динамику смотреть — так вообще… 30 раз тыкнуть.
Опять-таки для фин службы и бухгалтерии — по контрагентам долг 50000 тыс.р, а по договорам 1 000 000… чего-то тут не так…Ага. здесь посадили оплату не тот договор, здесь можно взаимозачет предложить — глядишь и НДС с авансов много меньше.
Вывод расшифроки в отдельной вкладке — не плодит окон в 1с.
Настройки можно сохранять ВНЕ 1с. Я теперь не заморачиваюсь — в какой базе сижу, за каким компом, под чьим пользователем — файл настроек у меня расшарен или на флешке. Загрузил его и получай отчет.
Использование не только регистра взаиморасчетов по документам (вообще-то по нему есть стандратный отчет), а просто взаиморасчетов позволяет увидеть всех контрагентов и не заморачиваться на ведение учета по документам, если целью является только отчет по дебиторке.
Ну кредиторская задолженность — тут всё ясно.
Дальше — отчет сам по себе быстрый.
З.Ы. Да… и на будущее… У меня высшее экономическое.
Да… чуть не забыл.
Долг по таре — регистр Товары переданные (ну назвал я его так, т.к. где стояла задача, шло 99% тары по этому регистру) — очень полезная штука и для манагеров тоже.
Вещь конечно хорошая, только скд для пользователя не очень понятная. поэтому лучше бы на построителе в конструкторе смастерил, там отборы и группировки лучше видно. Данный отчет нужен многим, только не все готовы платить, поэтому пользуются стандартным отчетом по кредитной линии. Цена в 2500рублей может быть и оправдана, если у тебя форма настроек отчета удобная, хотя на скд группировки самому ставить струдно, а пользователь плюнет и покупать не будет. так что работаем дальше
(5) это всё условно. не стали бы 1с мастерить СКД. И с 7.7 народ переходил жаловался «как всё сложно!».
1.На самом деле научиться работать в СКД несложно. Но если человек не понимает в универсальном отчете, но есно не поймет и в СКД.
2.Кроме того, очень часто бывает так, что админов или прогеров тупо просят настроить нужный отчет.
3.В планах написание упрощенной инструкции по СКД (если не найду такую раньше
4.В плату включена создание настройек на СКД, а уж галочки где нужно ставить и какие поля, чем заполнять — нужно быть полным дебилом, чтобы не понять.
5. У меня люди работают и нормуль все. Недавно отосылал вариант вообще без инструкций (только с 3 настройками). Прекрасно разобрались и сделали свою простую настройку.
(5) цену может снижу, но тогда инструкция и настройки — за отдельную плату. Посмотрим, как пойдет и какие пожелания будут. Низкая плата и платная поддержка или более высокая цена, но бесплатная поддержка
(6)
>>> а уж галочки где нужно ставить и какие поля, чем заполнять — нужно быть полным дебилом, чтобы не понять
Или бухгалтером или менеджером в нашем ОП. Вот уже где дятлиный рай, в котором я уже третий год парюсь.
у нас тоже хватает таких… они даже не записывают.
Каких то принципиальных новшеств по сравнению с моим отчетом не увидел. Вижу много мелких «фенечек» — может кого то именно они и заинтересуют. Например, различные уровни детализации (по контрагентудоговорусделкерасчетному документу) кто то у меня спрашивал. Дополнительные поля — продажи за период и оплаты за период — это правильно (сам добавлял одному заказчику), только если это по поставщикам — интересно еще товарный запас по поставщику. По скорости сравню со своим после отпуска.
Поставил «+» за качественный подход к вопросу. А то много тут понавыкладывали — за 5 минут наваяли что то непонятное — только замусоривают.
Добавьте еще вариант «Платежный календарь» — посмотрите как у меня сделано. Если у вас есть дата возникновения задолженности и сумма возникшей задолжнности — это просто группировка по дате возникновения задолженности.
«Есть несколько фишек (банковские и календарные дни… .), которые пока невыгодно реализовывать, но реализовать можно.»
У меня это реализовано, но пользуется только (насколько я знаю) один заказчик.
В список возможных «фишек» можно добавить учет % предоплаты по документу отгрузки (т.е. когда, например, 30% суммы реализации клиент должен оплатить сразу). У меня тоже это реализовано, но тоже редко спрашивают.
(13) вот про банковские дни и говорю, что невыгодно — пока не попросят делать не буду (:
Про процент предоплаты — это скорее нужно дорабатывать проверку перед реализацией…Хотя менеджерам видеть таблицу, кто сколько заплатил по заказу — тоже гуд. подумаю.
(12) зыркнем
(14) С процентом предоплаты особеность в том, что разные сроки возникновения задолженности по одному документу отгрузки — часть сразу возникает, а часть через указанное количество дней отсрочки. Т.е. это немного другой взгляд на процент предоплаты, чем просто ограничение отгрузки без предоплаты.
Блин, код модуля закрыт, а автор мне этим отчётом башню морозил в личке. Не буду плюсовать.
(16) гы… я не специально… я забыл снять (:
(16) уже снял
Жадный народ — качает — плюсов не ставит…
Вот и делай бесплатные отчеты 🙁
Отличный отчет, помог, наконецто верные цифры!!!+
не учитывает допустимое число дней задолженности из договора
договор: допустимое число дней задолженности = 5, без документов расчета.
реализация: 23.05.09.
параметры отчета: дата долга = 31.05.09, начальная дата = 01.04.09.
Выводит: просрочено дней = 8, хотя должно быть 3 (31-23-5).
из свойств контрагента если брать, то считает нормально
(21) Какой уровень группировки у отчета? Контрагент, договор, сделка? Сколько договоров у контрагента? Какая конфигурация? Насколько изменена конфигурация в части справочники Договора?
Попробуйте в консоли посмотреть результат запроса
ВЫБРАТЬ
МИНИМУМ(ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) КАК ДопустимоеЧислоДнейЗадолженности,
ДоговорыКонтрагентов.Владелец
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности <> 0
И ДоговорыКонтрагентов.Владелец.Ссылка В ИЕРАРХИИ(&Контрагент)
И (НЕ ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности ЕСТЬ NULL )
И (ДоговорыКонтрагентов.ВидДоговора.Порядок = 1
ИЛИ ДоговорыКонтрагентов.ВидДоговора.Порядок = 3)
СГРУППИРОВАТЬ ПО
ДоговорыКонтрагентов.Владелец
у меня тоже не получилось добится чтоб кол-во просроченых дней правильно бралось из договора КА… вся дебеторка в просрок уходит… а еще у некоторых КА не выводит документы движения, вернее выводит но сумма по реализации не та что в документе а та которую КА должен тоесть за минусом оплат хотя эти оплаты в отчете не фигурируют
«Управление торговлей», редакция 10.3 (10.3.8.9)
(23) Сумма долга напротив документа увеличения долга — это не сумма документа, а именно сумма долга по документу по FIFO.
Чтобы увидеть все документы за период долга нужно отключить условие на СуммаДолга>0 и вывести показатель Регистратор.СуммаДокумента.
Про число дней в договоре сегодня дома посмотрю.
с суммами тогда все понятно
чтобы с просроком было более понятно попытаюсь обрисовать ситуацию:
взаиморосчеты ведутся по договору вцелом у каждого КА в договоре стоит отсрочка в днях…
мне нужно посмотреть:
1. сколько мы продали за перод
2. сколько нам заплатили и сколько вернули
3. сколько нам должны на конец периода
4. какими документами это все образовалось
можно это посмотреть Вашим отчетом?
я пытаюсь это сделать вот так:
собираю отчет со след параметрами:
вид отчета — просроченная задолжность; период — с нужного мне числа до сегоднешнего дня; детализация — по документам взаиморасчетов; вид долга — дебеторская и кредиторская; отборов никаких нет тоесть в отчет должны попасть все КА;
у меня все отгрузки уходят в просрок кромя сегодняшних 🙁
(25) Кстати… я уже не помню к какой фигне может привести, но с датами разобрались? Там сначала нужно поставить дату, на которую смотреть долги, а потом начальную дату периода для доп данных.
1. Есть такой показатель. Продажи за период называется.
2. Оплата за период тоже есть. Возвратов вроде нет, но за небольшую плату могу добавить.
3. Сумма долга
4. Да. можно. Сами регулярно пользуемся этим показателем.
Вот я смотрю Ваши настройки… Детализацию нужно ставить «По договору» или «По контрагенту». Настройка детализация определяет не детализацию конечной таблицы, а уровень взаиморасчетов при зачете долгов по FIFO.
Не вдаваясь в специфику реализации это работает следующим образом. Сначала отчет создает таблицу документов возникновения и уменьшения долгов. При этом записи в таблице группируются по выбранному уровню детализации. Если выбрано «По контрагенту», то в одну группу попадут все документы контрагенты вне зависимости от договора. Если «по договору», то в группу попадут документы одного договора. Если «по документам взаиморасчетов» то группируются документу по полю «сделка» или «заказ» + появляется возможность получить отчет по другому регистру — данная настройка актуальна только для тех, кто ведет учет по документам расчетов. При всём этом для любой настройки всегда можно посмотреть документы все показатели, о которых Вы говорили. Настроить вид отчета (выводимые поля, группировки и т.д.) можно через кнопку «Настройка».
Можно также обратиться через аську 74471111
Для (21): вроде бы отчет запрограммирован таким образом, что не учитывается реквизит ДопустимоеЧислоДнейЗадолженности при уровне детализации отчета «по документам взаиморазсчетов/сделкам» в случае вычисления количества дней просрочки.
Вроде ошибка в кралась в запросе к БД вот в этом месте (их два аналогичных): в модуле отчета в процедуре «ПолучитьЗапросДебилки»
| ЛЕВОЕ СОЕДИНЕНИЕ ЧислоДнейЗадолженности КАК ЧислоДнейЗадолженности
| ПО РасшифровкаДолга_БезПодбора.ТочноКонтрагент = ЧислоДнейЗадолженности.Владелец»;
| ЛЕВОЕ СОЕДИНЕНИЕ ЧислоДнейЗадолженности КАК ЧислоДнейЗадолженности
| ПО РасшифровкаДолга.ТочноКонтрагент = ЧислоДнейЗадолженности.Владелец»;
Дело все в том, что при формировании текста запроса на извлечение из договора числа дней задолженности, при разном уровне детализации возвращаются в результате такого запроса разные объекты.
При уровне группировки 4 и 1 (только контрагенты) в результате запроса возвращается (по мимо числа дней) владелец договора:
ДоговорыКонтрагентов.Владелец
При уровне группировки 3 или 0 (по документам взаиморазсчетов/сделкам) возвращается несколько строк,в которых указывается в качестве Владельца ссылка уже на сам договор
ДоговорыКонтрагентов.Ссылка КАК Владелец
По этому при 4 и 1 все стыкуется (см. первую и вторую цитатЫ), а при группировки 3 или 0 левое соединение не срабатывает, так как а) Владелец не контрагент, б) строк несколько (при количестве договоров больше 1).
Для исправления такого недочета предлагаю модифицировать код следующим образом.
Во-первых:
| ЛЕВОЕ СОЕДИНЕНИЕ ЧислоДнейЗадолженности КАК ЧислоДнейЗадолженности
| ПО РасшифровкаДолга_БезПодбора.»+УсловиеВладелецДоговора+» = ЧислоДнейЗадолженности.Владелец»;
Во вторых, в этой же процедуре («ПолучитьЗапросДебилки») при анализе уровня группировке в соответсвующие условные операторы внести определение «УсловиеВладелецДоговора»:
…
УсловиеВладелецДоговора = «ТочноКонтрагент»;
…
УсловиеВладелецДоговора = «Контрагент.ДоговорКонтрагента.Ссылка»;
…
Модифицированный текст функции ПолучитьЗапросДебилки приложен к сообщению
Предлагаю еще одну доработку отчета.
В договоре есть два реквизита: КонтролироватьЧислоДнейЗадолженности и ДопустимоеЧислоДнейЗадолженности.
В последней версии отчета учитывается ДопустимоеЧислоДнейЗадолженности в не зависимости от состояния КонтролироватьЧислоДнейЗадолженности, что на мой взгляд является не совсем правильным (приведите аргументы, если я не прав). На мой взгляд, нужно анализировать состояние флажка КонтролироватьЧислоДнейЗадолженности и, если он сброшен, подставлять параметр числа дней задолженности из значений по умолчанию (из закладки параметров отчета), чего на настоящий момент не происходит.
Для этого нужно немного переписать запрос получения ДопустимоеЧислоДнейЗадолженности из договора в процедуре ПолучитьЗапросДней.
Старый вариант:
МИНИМУМ(ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) КАК ДопустимоеЧислоДнейЗадолженности,
Новый вариант:
| ВЫБОР
| КОГДА ДоговорыКонтрагентов.КонтролироватьЧислоДнейЗадолженности
| ТОГДА ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности
| ИНАЧЕ NULL
| КОНЕЦ КАК ДопустимоеЧислоДнейЗадолженности
При этом в случае сброшенного флажка КонтролироватьЧислоДнейЗадолженности вместо ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности во временную таблицу ЧислоДнейЗадолженности в ДопустимоеЧислоДнейЗадолженности будет возвращаться значение NULL. Дальше по коду в процедуре ПолучитьЗапросДебилки этот NULL подменится на реквизит ДнейОтсрочки из окна формы отчета.
Нужно обратить внимание на то, что при формировании отчета на уровне детализации контрагентов при заданном значении дней отсрочки и выключенном флажке все равно будет использоваться это значение. Нужно еще работать в этом направлении.
Код обновленной функции ПолучитьЗапросДней приложен в файле.
Еще заметил (и не только я, в комментах уже высказывались), что при непросроченной задолженности выводится отрицательное кол-во дней просрочки.
Предлагаю внести изменение в макет «Просроченная» в закладках Вычисляемые поля и Ресурсы.
Старые варианты «ПросроченоДней»:
ВЫБОР КОГДА НЕ(СуммаУпрОстаток_ ЕСТЬ NULL) Тогда (ЕСТЬNULL(ДнейСЗадолженности_,0)-ЕстьNULL(ЧислоДнейЗадолженности,0)) ИНАЧЕ 0 КОНЕЦ
Максимум(ДнейСЗадолженности_)-Максимум(ЧислоДнейЗадолженности)
Новыей вариант:
ВЫБОР
КОГДА
(Максимум(ДнейСЗадолженности_)>Максимум(ЧислоДнейЗадолженности))
Тогда
Максимум(ДнейСЗадолженности_)-Максимум(ЧислоДнейЗадолженности)
Иначе
0
КОНЕЦ
И в заключение, было бы удобно вызывать отчет из различных документов с влюченным отбором по текущему контрагенту. Для этого предлагаю внести специальную процедуру в модуль отчета, задающую отбор:
Процедура ЗадатьНачальныйОтбор(Контрагент) Экспорт
НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить((Тип(«ЭлементОтбораКомпоновкиДанных»)));
НовыйЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных(«Контрагенты.Наименование»)).Поле;
НовыйЭлементОтбора.ПравоеЗначение = Контрагент;
НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.Использование = Истина;
КонецПроцедуры
Также добавить в заголовок процедуры ДействияФормыДействие директиву Экспорт.
Теперь можно добавлять в диалоге различных форм, содержащих реквизит Контрагент, кнопку со следующим обработчиком:
Процедура КнопкаОтчетПоЗадолженностямНажатие(Элемент)
Отчет = Отчеты.ОтчетПоПросроченнойЗадолженности.Создать();
ФормаОтчета = Отчет.ПолучитьФорму();
ФормаОтчета.ВладелецФормы = ЭтаФорма;
ФормаОтчета.Открыть();
ФормаОтчета.ЗадатьНачальныйОтбор(Контрагент.Наименование);
ФормаОтчета.ОбновлениеОтображения();
ФормаОтчета.ДействияФормыДействие(NULL);
КонецПроцедуры
При нажатии кнопки будет открываться отчет с отбором по текущему контрагенту.
К сообщению прикладываю мою версию отчета и инструкцию по ее встраиванию в информационную систему.
У меня не получается прикрепить файл с моей версией отчета (почему-то…). Так что если кому-нибудь он понадобится, могу отправить по электронной почте.
(29) отрицательное число оставлено намеряно. Позволяет отбирать контрагентов на грани просрочки.
(28) Включение галочки КонтролироватьЧислоДней запускает штатный механизм плюс требует соблюдения нескольких условий…Что существенно сужает применимость отчета, цель которого получить информацию при любых вариантах ведения учета. В своей конфигурации я включил видимость числа дней при любых услових. Для других, кто не хочет изменять конфигурации, есть возможность использовать произвольное свойство контрагентов. В штатной интерактивное конфигурации отключение галочки
КонтролироватьЧислоДнейЗадолженности обнуляет параметр ЧислоДнейЗадолженности.
В результате имеем 3 варианта:
1. Действуем только в рамках логики конфигурации, при это отсутствие галочки автоматически обнуляет ЧислоДнейЗадолженности и дополнительной проверки не требуется
2. Расширяем варианты применения использования поля ЧислоДнейЗадолженнсти (можно даже не меня конфигурации с помощью внешних обработок. В этом случае нам всё равно как стоит галочка. Проверка не требуется
3. Используем свойство… Проверка не требуется.
(30) я просто добавил цельный запрос в модуль конфигурации в процедуру, которая рассчитывает долг и показывает его в документе. Но идея интересная. Может и реализую как-нибудь.
(27) Логика была такая. При уровне отчета По контрагенту (т.е. все документы объединяется только по этому признаку) Число дней рассчитывается как минимальное(но не равное 0) из всех договоров с покупателем. По договору понятно что… На уровне сделок число дней берется из документа-сделки. Там обычно указывается предполагаемый день оплаты… А вот поле РасшифровкаДолга.ТочноКонтрагент хранит именно контрагента при любых уровнях детализации. Про уровни детализация я где-то писал уже… Или в хелпе к отчету, или в этой публикации, или в предыдущей версии этой публикации.
З.Ы. Спасибо за внимание к отчету и разбор оного.
К этому сообщению прикрепляю запрос из отчета, имеющего в моей конфигурации. Если кому будет интересно, можно поковыряться. Скриншот самого отчета находится в аттаче к предыдущему сообщению
Добрый день!
Интересует возможность установки данной обработки!
У нас 1С 8 — отпишитесь, пожалуйста, о возможности установки на mss09@live.ru !
Также понадобиться поддержка и доработка! Символическую оплату гарантируем!))) 😎
еще не до конца разобрался, но ставлю плюс.
чувствуется человек с любовью писал 🙂
Что за деление на ноль странное — откуда пустые строки вылезают?
(37) оставлены специально, т.к. 0 — это тоже результат и кроме долга ещё несколько показателей есть… Строки с нулевым долгом можно убрать через отбор. Кроме того, отчет всё-таки достаточно специфичен и с паре мест может потребовать дополнительной адаптации под конкретную базу. Но не в главном запросе…
(37) до выкладыванию сюда более аккуратной и более специализированной версии пока не созрел… (:
Действительно, чувствуется творческая жилка. Спасибо за разработку, она мне очень помогла.
Вопросик возник. А почему при виде отчета «задолженность по интервалам» и виде долга «дебиторская и кредиторская» в отчет попадает вся сумма? Т.е. Кредиторка не вычитается, а суммируется с дебиторкой. Так быть не должно))))
(41)Посмотрим конечно, если не забуду, в свободное время… но данный отчет немного устарел… есть несколько более новых в плане деталей и оформления отчетов, заточенных под конктретных клиентов… Если горит, то исправлю за
$$$Р.Готовы ли вы доработать отчет, чтобы он был способен считать задолженность по первичке, а не по регистру взаиморасчетов. Дело в том, что часть договоров имеют признак взаиморасчетов «по договору в целом» поэтому поле «сделка» в регистре не заполняется. в итоге в отчете некорректные данные.
(43) вообще-то отчет изначально и создавался для получения долга при ведения по договору в целом. Т.е. отчет позволяет рассчитывать дебиторку на различных уровнях детализации: сделка, договор, контрагент. Это означает, что если рассчитывать с детализацией по сделкам, то будет обращать внимание на поле сделка. Если рассчитывать с детализацией по договорам, то на поле сделка отбрасывается и все расчеты идут с учетом договора. Соответственно и с детализацей по контрагенту.
Предполжим у нас есть след. таблица
Петров Договор1 Сделка1
Реализация 10.10.10 — 100р
Оплата 11.10.10 — 50р
Петров Договор1 Сделка2
Оплата 12.10.10 — 500р
Петров Договор2 Нет Сделки
Реализация 13.10.10 — 400р
Петров Договор3 Нет Сделки
Поступление 13.10.10 — 50р
Если рассчитывать с детализацией сделок, то получим:
Долг Петров Договор1 Сделка1 — 50р
Наш Долг Петров Договор1 Сделка2 — 500р
Долг Петров Договор2 — 400р
Наш Долг Петров Договор3 — 50р
Если получать с детализацией по договорам:
Наш Долг Петров Договор1 — 450р
Долг Петров Договор 2 — 400р
Наш Долг Петров Договор 3 — 50р
Если с детализацией по контрагентам
Наш Долг Петров — 100р
А если долг по договору в целом, но в отчете хотим развернуть по документам? Во всех документах товарной цепочки (накладная — ПП) есть ссылка на заказ, поэтому по первичке можем установить связь.
(45) Т.е. вы хотите долги по заказам не включив механизм учета по заказам? Такой отчет возможно написать…И он даже не очень сложный, но вот скорость его выполнения будет очень сильно зависеть от кол-ва документов. Каждый раз такой отчет будет заново создавать таблицу взаиморасчетов аналогичную фактической, но с заказами, т.к. в фактической таблице нет этих данных и её итоги использовать нельзя
Да, именно так.
Доживем этот год с кривым регистром. с нового начнем с новыми договорами как положено 🙂
(47) это разумный выход.
Ну так что, возметесь? 😉
(0) А учитывает ли ваш отчет ордерную схему?
Например, если документ «Реалиация товаров и услуг» выписан 01.05.2010, а ордер 01.07.2010. Платежка поступила 08.07.2010, число дней задолженности=10.
Как в таком случае поведет себя ваш отчет?
У нас Комплексная автоматизация 1.0.
(50) Момент возникновения задолженности и момент отгрузки товара — разные понятия. Совпадают они если ордерная схема НЕ используется.
Для того, чтобы у Вас заработала система, когда долг возникает только в момент отгрузки нужно переписывать конфигурацию.
Если переписать конфигурации, то любой из отчетов по дебиторке будет работать нормально.
Расходный ордер на товары не затрагивает финансы и не может делать движения по долгам
Спасибо, отличный отчет! А можно на СКД реализовать следующее:
Чтобы каждый манагер видел только своих контрагентов. Просто не силен я в СКД… Спасибо!
(52)Да. Возможно. В СКД тоже можно работать с отбором. Если посмотрите в код, то там есть процедура по переносу отборов с контрагентами из одной схемы в другую.
Для начального понимания очень полезная штуковина
сейчас глянем что тут у Вас
Фигня полная
(56) а можно аргументировано? Даже не качали ведь.
(57) Он просто не умеет его готовить. Я с ним тоже долго с ним разбирался, вертел по всякому.
И советую залить вариант для 8.2., не все могут открыть конфигуратор и сконвертировать.
(58) у меня тут в планах обновить 2 публикации и доделать ещё одну. Следующим будет полное переписывание этого отчета с учетом всех свистелок. Будет и на 8.1, 8.2 и для тонкого клиента.
Отчет, конечно, хороший. Автору спасибо
Но есть один непонятный момент.
Тестировал отчет на «Управление торговлей для Украины»
В отчет почему-то попадали документы «Реализация товаров и услуг», по которым уже были ПКО, т.е. долга по ним небыло. При тестировании заметил, что в отчет такие документы попадают если в ПКО в поле «Док.расчетов» нет привязки к документу «реализация товаров и услуг»
Прошу прощения, если этот момент уже обсуждали.
(60) в договорах стоит галочка «вести по документам расчетов»? Просто основная работа происходит по регистру Взаиморасчеты, а не Взаиморасчеты по документам
В договоре контрагента в закладке Общие стоят настройки:
1.Взаиморасчеты ведутся «По заказам»
2.Стоит галочка напротив «Вести по документам расчетов с контрагентами»
(62) собственно по этой причине эти реализации и выходят, т.к. скорее всего Вы поставили в отчете галочку «Использовать документы расчетов». По задумке при включении этой галочки отчет формируется для таких договоров по регистру Взаиморасчеты по документам расчетов. А если в ПКО не указать документов расчетов, то ПКО повиснет как аванс и реализация не будет оплачена. Попробуйте убрать в настройках отчета эту галочку, тогда отчет сформируется ТОЛЬКО на основании регистра взаиморасчетов, без учета расчетных документов.
Вообще странно, где саму галочку в отчете выключать нашел, а вот выключить-то ее почему-то не получается. Нажимаю по ней, а она все равно остается активной
Это во вкладке «Параметры», я правильно Вас понял?
Возможно еще что-то нужно изменить в настройках отчета, подскажите, плз, отчет очень нужен, не хочется в коде ковыряться)
вобщем разобрался как галочку убирать. Во вкладке «Параметры», в пункте «детализация» по умолчанию стоит «по документам взаиморасчетов/сделкам», в таком случае обязательно нужно использовать документы расчета. Если использовать другую детализацию, то можно выключать использование документов расчетов.
Автору еще раз спасибо за отчет, будем разбираться дальше …
(66) в следующей версии отчета такие неочевидности будут устранены. Кстати, там вроде справка к отчету ещё есть
да-да, со справкой уже познакомился, с нее и надо было начинать)
«Управление производственным предприятием для Украины», редакция 1.3.11.5
При параметре «Источник Дней Отсрочки» установленном в «Число дней отсрочки в договоре» данные из договора не подтягиваются.
(69) да. там ошибка в запросе по числу дней, вместо связи по договору идёт связь по контрагенту. Попробую найти сегодня время и исправить ошибку в выложенном здесь варианте.
Автору спасибо за отчет, будем разбираться … Пока хватает недоделок, половину исправил, на половину забил, так как не мешают…Но в качестве основы пригодилась хорошо. Спасибо.
(71) до нового года очень сильно надеюсь выпустить новую версию.
пользуясь случаем и немножно для рейтинга выражаю благодарность за труды 🙂
(72)
На самом деле меня к примеру отчет и в таком варианте целиком устраивает, не считая разве что глюка с подтягиванием числа дней отсрочки в договоре.
А что за деление на 0 файл прикреплен посмотрите пож-та
А вот колонка Cумма погашения задолженности за период просрочки всегда пустая хотя были оплаты за период просрочки. В целом отчет нравится чрезвычайно, СКД самое то для него. И еще — нужна колонка куда выводить сумму по платежному ордеру на поступление, у нас идет разноска списком и в отчет напротив документа ничего не попадает а попадает снизу что не есть хорошо…
(75) там формула без проверки деления на 0. А СКД именно так реагирует на деление на 0
(76) этот отчет бесплатно дописываться не будет. Слишком много ответвлений написано под заказ. Сейчас планирую переписать отчет заново с учетом всех доработок и исправление ошибок. Если настроение будет, начну дописывать уже на этих выходных.
как раз то что нужно! Спасибо большое!
Очень кстати! полезный отчетик!
(77) (72) (70) отчет очень помогает в повседневном контроле событий уже сейчас, если не очень сложно — могли бы вы исправить ошибку в запросе количества дней. Я не уверен что стоит делать новую версию отчета, потому что он сейчас достаточно понятен и интуитивно понятен, если же навешать в него еще дополнительных плюшек — удобнее он может и не стать 😉
(82) интерфейс усложнять не буду
Добрый день! А подскажите, пожалуйста, какие права необходимо добавить, чтобы исправить вот это (используется RLS, без него все работает):
В отчете:
Вид отчета — Задолженность по интервалам
Детализация — По контрагентам
Вид долга — Дебиторская
Документы расчетов не используются
В RLS ограничения по подразделениям, складам, контрагентам.
Просто RLS необходим, но и отчет очень нравится. В конфигураторе какие только права не выставлял, но поправить не смог…
Спасибо!
Добрый вечер. Извините если излишне навязчив, но все же как успехи с выпуском новой версии?
Отличная вещь, в свое время очень пригодилась
Интересует доработка отчета, как моно с Вами связаться ?
Отчет интересный так что законный +
Отчет полезный. Дорабатывать конечно есть что, делался уже давно. Посмотрел внутрь, да автор с чуством юмора, соответственно появились вопросы. Почему функция в модуле называется Дебилка, и что это за организация «Луффи» подставляется в запрос.
(89) Дебилка — это дебиторка. Луффи — нужно было любое слово, чтобы сгруппировать строки без учета организаций. Луффи — персонаж одного мультфильма
Понятно, довольно остроумно 🙂
Добрый день, а есть версия для
1С:Предприятие 8.2 (8.2.14.533)Управление торговлей», редакция 10.3 (10.3.13.2)?
Интересует показатель средневзвешенной просроченной задолженности за период (месяц, квартал, год).
Именно просроченной, поскольку за просроченную задолженность начисляются %.
Если нет, то сообщите — готовы ли взяться за разработку подобного отчета на заказ.
Естественно небесплатно.
Спасибо.
Хороший отчет. Единственное, чего не хватило нашей коммерческой службе — это расшифровки (какими документами была закрыта задолженность, т.е. например было за период 3 накладных (на сей момент первая закрыта двумя платежами, вторая — частично закрыта одним платежом, третья — не закрыта совсем). Это — некая динамика, помогающая в работе (клиент и менеджер четко знают за что приходила деньга). Сейчас в данном отчете видно неоплаченную часть второй накладной и третью накладную полностью (если взять по аналогии описанный выше пример).
Опять-таки для фин службы и бухгалтерии — по контрагентам долг 50000 тыс.р, а по договорам 1 000 000… чего-то тут не так…Ага. здесь посадили оплату не тот договор, здесь можно взаимозачет предложить — глядишь и НДС с авансов много меньше.
Вывод расшифроки в отдельной вкладке — не плодит окон в 1с.
Ага, вот если еще добавить столбец «средняя просроченная задолженность за период» — для расчета штрафа с менеджера при расчете зарплаты и тогда отчет будет совсем идеальным
Анализируется задолженность по всем договорам или по тем у которых стоит признак: «вести по документам». Поскольку это принципиально.
За проделанную работу +. Но есть небольшой вопрос, пока не тестировал на большом количестве контрагентов, но как себя ведет отчет при > 5000 контрагентах и в каждом контрагенте по 5-6 документов расчета?
(97) скорость по контрагентам линейна. Проблемы со скоростью зависят от числа документов для контрагента. Чем больше ему нужно подбирать, тем больше падает скорость. Оптимизация конечно сокращает этот эффект, но полностью убрать его не позволяет сам принцип расчета нарастающих итогов в запросе. Если для контрагентов 5-6 документов ВСЕГО, то существенной деградации быстродействия относительно штатного отчета по задолженности не будет.
Нашел ошибку, может и не ошибку, но если сформировать отчет по кредиторке, то в отчет попадают контрагенты по которым было поступление товаров и оплата его авансовым отчетом. По идее не должно быть кредиторской задолженности.
А что за документы с пустыми суммами попадают в отчет по кредиторской задолженности, такие как Платежное поручение исходящее или авансовый отчет?
(100) при желании можно вывести не только данные о долге, но и данные о взаиморасчетах за период долга (для этого использовать поле Регистратор.СуммаДокумента). Если эти документы мешают, то надо сделать отбор Сумма долга > 0
Скачала бесплатный отчет, но не как не могу запустить, пишет:
Что я не так сделала?
(129) а какой скачали?
вот такая ошибка выходит
{ВнешнийОтчет.ОтчетПоПросроченнойЗадолженности.Форма.ФормаОтчета.Форма(51)}: Значение не является значением объектного типа (Колонки)
колвокол=ЗадолженностьТаблицаДобавочная.Колонки.Количество()-1;