• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Отчет по движениям и остаткам регистров

  • Автор темы Автор темы Hryv
  • Дата начала Дата начала
H

Hryv

Готова новая версия 2.1

Основные отличия:
1. Теперь можно смотреть не только движения, но и остатки
2. Улучшено форматирование печатаемых данных
3. Для установки фильтра не обязательно печатать этот столбец

Буду благодарен всем, кто найдет ошибки :(


ПС: просьба к админам не перемещать тему в Разработки форумчан
там уже есть
https://codeby.net/threads/otchet-po-dvizhenijam-registrov.33731/
 
Улучшение существенно, но раз уж сам написал :
Буду благодарен всем, кто найдет ошибки
терпи. :)

1. ПериодПеч и ЗагПеч надо описать в голове - иначе при выводе (процедура "ВывестиСекцию") они не определены (к тому же, в секции "Рек" свойства соответствующих ячеек надо бы заменить на "выражение")
2. При проверке на ТиС 9.54 (Регистр "ОстаткиТМЦ") то и дело вылезает ошибка
"Номер за пределами значения" в строках 441, 449, 465 (ТЗ.ПолучитьЗначение...).
На мой взгляд, вообще нет необходимости вызывать ПолучитьСтроку перед ПолучитьЗначение,
гораздо существеннее проверять, МОЖНО ли ПолучитьЗначение. Подробнее не разбирался - автору виднее
3. Нет контроля на дупликацию группировок, к тому же, при установке Гр2 в "нет" (Гр1 и Гр3 установлены) -
ошибка при вызове функции СоздатьТаблицуГР
это, конечно, только ради защиты от дурака, но все же...

Теперь пожелания :
1. Переключатель фДвижОст стоит перенести в слой "Основной"
2. Раз уж Обновить Таблицу необходимо вызывать после изменения этого переключателя, резонно делать
при этом кнопку "Печать" недоступной, и активизировать ее после обновления
3. Удобно бы сделать групповую пометку ТЗИ
4. Секцию "Док", возможно, есть смысл разбить на две, ибо колонка "Док" нужна не всегда - управлять можно
флажком типа "показать документы движения"

Так что хорошую обработку можно превратить в ОТЛИЧНУЮ.

На критику не обижайся, все мы грешны. :(
Я, собственно, так подробно покопался, что процесс меня увлек - вещь-то очень полезная
 
1. ПериодПеч и ЗагПеч надо описать в голове - иначе при выводе (процедура "ВывестиСекцию") они не определены (к тому же, в секции "Рек" свойства соответствующих ячеек надо бы заменить на "выражение")
Заметил сам и исправил, просто не выкладывал еще

1. Переключатель фДвижОст стоит перенести в слой "Основной"
Спасибо, тоже исправлено

2. При проверке на ТиС 9.54 (Регистр "ОстаткиТМЦ") то и дело вылезает ошибка
"Номер за пределами значения" в строках 441, 449, 465 (ТЗ.ПолучитьЗначение...).
На мой взгляд, вообще нет необходимости вызывать ПолучитьСтроку перед ПолучитьЗначение,
гораздо существеннее проверять, МОЖНО ли ПолучитьЗначение. Подробнее не разбирался - автору виднее
Пока до конца не понял в чем суть, но обязательно разберусь

3. Нет контроля на дупликацию группировок, к тому же, при установке Гр2 в "нет" (Гр1 и Гр3 установлены) -
ошибка при вызове функции СоздатьТаблицуГР
это, конечно, только ради защиты от дурака, но все же...

3. Удобно бы сделать групповую пометку ТЗИ
4. Секцию "Док", возможно, есть смысл разбить на две, ибо колонка "Док" нужна не всегда - управлять можно
флажком типа "показать документы движения"
будет в очередных версиях
про группировки я и сам знал, но руки еще не дошли

2. Раз уж Обновить Таблицу необходимо вызывать после изменения этого переключателя, резонно делать
при этом кнопку "Печать" недоступной, и активизировать ее после обновления
Обновлять таблицу надо почти после любого изменения на форме, поэтому это делается по кнопке и перед печатью
Я считаю так нормально
Единственно, что если нажать обе кнопки подряд, то второй вызов лишний, но имхо - это мелочи
Если в этом направлении и буду что-то менять, то в последнюю очередь
 
Также планируется сделать возможность настраивать очередность столбцов при выводе на печать
 
Это замечательно, но прежде все же надо побороться с ошибкой

"Номер за пределами значения"
В сегодняшней версии, она, увы, все еще жива
 
на выходных попробую подправить
сейчас времени совсем нет
 
на выходных попробую подправить
сейчас времени совсем нет
"-Сначала работа, а потом развлечение, - сказал робот, закончив решать систему сингулярных уравнений и приступив
к пересчитыванию запятых в Большой Британской Энциклопедии"
Анекдот из 1960-хх ;)
 
Это замечательно, но прежде все же надо побороться с ошибкой

"Номер за пределами значения"
В сегодняшней версии, она, увы, все еще жива

Неожиданно время появилось
А можно скрин отчета с какими параметрами эти ошибки появляются?
 
Странно, я никак у себя такую ошибку не могу создать

А что содержит столбец СКЛАД в на второй закладке? Нормально заполняется?
 
Как я и предполагал, то и дело не отрабатывает ПолучитьСтроку(), когда строки в таблице заканчиваются.
Следовательно, НомерСтроки в этом месте равен 0 - отсюда и ошибка.
Так что, ТЗ.ПолучитьЗначение надо делать только после проверки на ПолучитьСтроку() = 1

И еще пожелание в Приходе-Расходе сделать сортировку таблицы по дате
 
Как я и предполагал, то и дело не отрабатывает ПолучитьСтроку(), когда строки в таблице заканчиваются.
Следовательно, НомерСтроки в этом месте равен 0 - отсюда и ошибка.
Так что, ТЗ.ПолучитьЗначение надо делать только после проверки на ПолучитьСтроку() = 1

Я это изначально подозревал, но проблема в том, что по алгоритму такого не должно случаться
Проверку поставить не сложно, но непонятно что делать, когда это происходит
Сейчас попробую что-нибудь придумать


Добавлено: Дошло!

Видимо, на каком-то из складов нет такой номенклатуры
Сейчас проверю
Если подтвердится, то буду думать как решить

Добавлено: Не подтвердилось

Вопрос ко всем: если в ТЗ в одном из столбцов есть пустые значения, то после свертки ведь все равно будет строка с пустым значением?

Добавлено: Раз так происходит, значит это возможно
Но я даже в теории не могу смоделировать ситуацию, чтобы строки в ТЗ3 кончились раньше времени
 
Но я даже в теории не могу смоделировать ситуацию, чтобы строки в ТЗ3 кончились раньше времени
Но тем не менее, то и дело это происходит, причем эффект обнаруживается не всегда и только при группировке по Номенклатуре :*цензура*you:
 
Сделаю версию с отладочными логами
Логи посмотрю, тогда может что-то пойму
 
А сколько весит?
Если в пределах 20 мег, то можно
 
Ошибку выяснил: есть элементы номенклатуры с одинаковым наименованием

Задал явно тип всех колонок ТЗ, но это не помогло
1С все равно соритрует их вперемешку

Сегодня уже не исправлю
Завтра может поборю
 
Выкладываю свежую версию

Основные отличия касаются печатной формы
Ошибка группировки не решена, но обработана исключением

Ближайшие планы по усовершенствованию отчета

1. Решение проблемы группировки
2. Выбор очередности вывода столбцов
3. Групповая отметка в таблицах измерений и ресурсов
 
Ошибка группировки не решена, но обработана исключением
Все же на правильность работы сортировка влияет существенно


Добавлено: Вот такого рода каша получается.

А если для универсальности сделать так : если тип группировки "справочник", формировать таблицу с дополнительным столбцом,
дабы получить уникальную сортировку
 

Вложения

  • Test.rar
    Test.rar
    825 байт · Просмотры: 189
  • Test.rar
    Test.rar
    825 байт · Просмотры: 194
vbs, каша получается и в той базе, что ты давал
Добавление кода к наименованию решит проблему, но не на все случаи жизни
Я попробую сделать еще лучше, правда надо время
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD