2013-12-08 03:10:42
Краткое описание :
Проверка корректности данных СФО. Реализовать поиск ситуаций: нет записи в ЛК, но попадает в отчетыОписание :
Личная карточка спецодеждыЧто измененно :
У клиента возникла следующая ситуация:
В отчет "Личная карточка учета СФО" в таблицу "Выдача и возврат форменной и специальной
одежды и обуви, предохранит. приспособлений" попадает позиция "Сапоги резиновые*", выдан
по документу "треб. на выдачу Сфо 155 от 12/02/2007" по цене "103.00".
В окне редактирования ЛК учета СФО при любом значении фильтра "Показать/скрыть не в
носке Alt+B" такого предмета нет. Однако в КУ он есть и числится в эксплуатации. Также
данный предмет попадает и в другие отчеты.
Оказалось, что в окне редактирования ЛК учета СФО отображаются только те записи таблицы
PersSFO, у которых поле PersSFO.zeroKol = 1. А у проблемной записи PersSFO.zeroKol = 0,
хотя и нет связанных записей о списании предмета.
Необходимо реализовать проверочную функцию, которая могла бы выявлять ошибки данного
рода и/или исправлять их и/или выдавать информацию по ним.
Как измененно :
Разработана утилита F_SFO::CheckPersSFO, предназначенная для выявления операций
в ЛК учета СФО (таблица PersSFO), в которых некорректно заполнены поля curKol,
zeroKol и spisDate. Поле curKol рассчитывается как разница между значением
поля docKol и суммы полей docKol дочерних операций. Поле zeroKol равно 1,
если curKol больше нуля; иначе равно 0. Для выдач с типом "в носке" (поле
Status равно 0) поле spisDate равно дате последней дочерней операции, после
которой поле curKol стало равным нулю.
После запуска утилиты открывается окно "Проверка корректности записей в таблице
PersSFO", в котором необходимо указать параметры выполнения проверки. Проверка
выполняется для записей в таблице PersSFO с датой выдачи (PersSFO.giveDate) большей
или равной дате, указанной в параметрах. Данная дата обязательна для заполнения.
По умолчанию она устанавливается в 1 января текущего года.
Выполнять проверку можно как для всех ЛК СФО (если фильтр по работникам не
установлен), так и для выбранных в фильтре. Устанавливать фильтр в значение "Без
работника" не имеет смысла, т.к. в этом случае проверка не выполняется, а сразу
выдается сообщение о корректности записей в ЛК учета СФО. По умолчанию фильтр
по работникам не установлен. Проверка не выполняется для закрытых ЛК учета СФО,
т.е. для ЛК в состояниях "Закрыта" или "Архив".
Кроме того, проверка не выполняется для тех КУ СФО, на редактирование которых
у пользователя нет прав согласно настройке "Настройки Галактики - Бухгалтерский
контур - Спецоснастка - Доступ к карточкам учета".
Чтобы не только получить отчет о некорректных записях в таблице PersSFO, но и
исправить их, необходимо установить параметр "Исправлять некорректные записи".
По умолчанию данный параметр не установлен.
Параметры выполнения проверки не сохраняются и при следующем запуске утилиты
устанавливаются в значения по умолчанию.
Процесс проверки сопровождается визуализацией. В окне визуализации отображается
номер проверяемой в данный момент ЛК учета СФО. Процесс проверки может быть прерван
пользователем. По окончании проверки либо выдается сообщение "Все записи в ЛК учета
СФО корректны!", либо выводится отчет со списком некорректных записей в ЛК учета СФО.
Операции группируются по ЛК учета СФО. В отчет выводятся дата выдачи предмета, NRec
записи в таблице PersSFO, наименование предмета и наименование некорректного поля.
Если в результате запись в ЛК учета СФО была скорректирована, то в отчет выводятся
слова "-> Исправлено".
Кроме того, доработана функция корректировки выданного количества для ненакопительных
периодических норм:
- вводимые в интерфейсе предметы становятся видны в окне редактирования ЛК учета СФО
(т.к. PersSFO.zeroKol = 1, вместо 0);
- срок носки у этих предметов рассчитывается согласно норм, а не устанавливается
равным нулю;
- запрещено удалять из интерфейса предметы, если с ними уже производились операции;
- поле "Кол." подсвечивается желтым цветом, только если значение в нем равно нулю.