«Отчёты всевозможные» (пример – форма 121)
Форма 121, которая будет для примера, выглядит так:
http://www.gosfinansy.ru/#/document/140/13776/
Хитрую шапку и промежуточные итоги я рисовать не буду. Для этого существуют те самые делаемые для конкретной бумажки отчёты и внутренние справочники, хранящие группировки.
Меня в данном случае интересует просмотр документа, в котором по введённым двум колонкам («Бюджетная деятельность» и «Средства во временном распоряжении») сразу считается итого по строке.
Такого просмотра (т.е хранимой процедуры) нет, но её (и всё, что к ней полагается) легко можно добавить.
Создаю новый профиль просмотра:
Создаю новый список:
Списки могут быть прицеплены к любой задаче (профилю) потому жёсткой привязки у них нет. Но можно использовать поле «код» для быстрого поиска конкретной группы списков (из всего списка). По подстроке «f121» можно найти единственный только что созданный список.
Ввела несколько строк:
Изобилие из трёх текстовых полей (краткое, среднее, длинное) позволяет прицепить сюда же экономическую статью (код по КОСГУ). Она в кратком названии. Длинное название будет использовано при печати (т.е в нем строка из официального документа). В код засунут номер строки, а в среднее название то, что будет видно в списке при вводе информации (для проверки там в скобках и номер экономической статьи).
Под документы тоже надо завести группу документов (профиля недостаточно):
Настройки документа:
Список (Уч+1с+1сум) пока какой есть, который хоть как-то подходит. А идентификатор созданного документа ID=837 важен потому что он точно пригодится.
Настройки колонок:
В списке будут «код» (номер строки) и «среднее» название (с экономической статьёй в скобках).
Суммы:
Теперь можно уже посмотреть скопировав адрес с параметрами если не с первого, то со второго документа:
Только идентификатор надо вставить правильный.
Теперь про список для просмотра. Раз уж сейчас используется хранимая процедура Уч+1сп+1сум:
… (т.е sp_lst_du_l0_l1_s1) то логично её и взять за основу. Попросту говоря сделать точно такую же но добавить ещё одну сумму и итоговый столбец. Вот эта процедура:
Первое что мне тут нужно сделать это создать точно такую же но с другим именем, т.е заменить ALTER (изменить) на CREATE (создать) и название на название новой процедуры. После этого надо выполнить команду и процедура с заданным названием будет создана.
Я естественно, не особо помню что и как тут делается. Но мне это и не надо. Я знаю, что тут несколько вариантов (по IF) поиска для разных введённых условий (выбрано учреждение или не выбрано и т.д). Теоретически можно делать иначе, т.е просто генерировать SQL строку в виде текста. Но тогда теряется смысл использования хранимых процедур как инструмента быстрой выборки (понятно чего и понятно как выбирать потому под эту выборку внутри что-то сделано). Потому одна и та же по сути строка у меня тут написана несколько раз. Вот она:
… строка в которой не важно что и не важно как выбирается. Единственное что важно это то, что после sum1 мне надо добавить тоже самое для Sum2 а потом ещё и их сумму с названием пусть itg12. Этот текст надо добавить во все строки SELECT:
Это к сожалению ещё не всё. Со стороны программы есть два файла, которые надо примитивно скопировать и тоже чуть дополнить:
Тот, у которого название – имя процедуры + “_H” задаёт вид заголовка. А такой же с “_I” – считывает информацию.
С тем, который “_I” всё совсем примитивно:
… потому что ему надо только считывать информацию из передаваемых процедурой полей в какие-то колонки таблицы.
С заголовком не намного сложнее:
Для второй суммы просто копирование (и заголовок будет взят из названия поля для корректировки). Название для итога брать неоткуда. Потому для этой колонки просто задаётся текст.
Новую хранимую процедуру надо добавить в список того, что можно выбирать в документах:
Единственная хитрость – код (f121) или вообще что-то надо записать обязательно. По наличию этой информации он определяет, что список нестандартный (почему так не помню).
Если всё это настроить в документе:
То на просмотре будет так:
http://localhost:2351/eda/CDoc/du_l0.aspx?ID=837&ddl=1&pd=16&ot=14
Теперь для всех ситуаций, когда требуется список, две суммы и итоговый столбец можно использовать эту новую хранимую процедуру.
Здесь архив с обновлением:
https://drive.google.com/file/d/0B3i2SFYLER0HOVZrRWNEWHk3UFk/view?usp=sharing
SQL файл для создания новой хранимой процедуры надо запустить на SQL сервере, а два ASCX файла скопировать в папку сайта (точнее в его папку CDoc).
Не знаю как бухгалтерами но силами местного программиста такие вещи точно делаются. Причём особо трудоёмкими такими изменения и дополнения не являются. Так и придумывалось чтобы тратить на всё это как можно меньше времени. Если что-то новое клепать, хотелось бы что-то аналогичное по простоте и скорости чтобы такое на месте можно было создать за 10 минут и сразу всех запустить вводить информацию. Потому что печатные формы можно и потом нарисовать, но все уже будут заняты. Пока одни уже сразу вводят информацию, другие разбираются с видом бумажек. Т.е задержи с предоставлением инструмента для ввода информации нет.
|