Пятница, 29.11.2024
Мой сайт
Меню сайта
Статистика

Онлайн всего: 30
Гостей: 30
Пользователей: 0
Главная » 2017 » Июль » 21 » «Отчеты всевозможные» (документы-1)
22:54
«Отчеты всевозможные» (документы-1)

«Отчеты всевозможные» (документы-1)

Документы это хранилища информации, т.е значений параметров, элементов списков, строк с информацией и цифр.
Самый примитивный вариант документа – плановые цены по видам услуг:

Вводить надо дату (на которую цена), что-то из списка и сумму. Содержание ввода ничем не отличается от содержания строки в списке.
А вот эта ситуация намного интереснее:

В строки откуда-то попадают цены, единицы измерения и сумма (цена умноженная на количество) при том что при вводе конкретно этого документа ничего такого нет. Обращаю внимание на то, что обработкой всей информации занимается одна из стандартных страниц просмотра, т.е du_l0.aspx означающая что всё это настраивается пользователем.
В данном конкретном случае это отчасти жульничество. Кое-что тут надо сделать и на той стороне, которую принято считать программистской. Но по программистским меркам работа там минимальна. К тому же вариант для этого документа только дополнил список вариантов полностью пригодных для настройки пользователем.
Ещё один документ – планируемые детодни по месяцам:

Первое ощущение – что-то тут сумм многовато по сравнению с предыдущими. Логичный вопрос – а как это всё хранится-то? Ведь обычно информация хранится в таблицах, а колонки на экране это поля (колонки) в таблице базы данных. Если в какой-то общей таблице на все случаи жизни завести 30 цифр-полей, то в подавляющем большинство документов с парой цифровых колонок эта информацию не будет заполняться. Это откровенная и довольно неаккуратная избыточность в структуре базы. Но и заводить отдельные таблицы под документы с одной, двум и далее колонками это всё-таки перебор. Потому выбран промежуточный вариант. Все документы хранятся в трёх таблицах с разной структурой:
 

В документы первых двух типов (dDoc_List_0, dDoc_List_1) можно вводить только три цифры, потому что под цифры там только три колонки (sum1, sum2, sum3). Если цифр в строке больше, то надо использовать третье хранилище – dDoc_Sum_0 (в нем аж 15 цифровых колонок). Первые два типа отличаются количеством списков, которые можно подключить (List_ID) и количеством строк с текстовой информацией. (Rem). В dDoc_List_1 этого всего чуть больше.
Описания конкретных документов естественно находится тут:

«Список документов»:

Список документов, нужных для конкретной задачи. Отсюда же можно посмотреть настройки документа («Параметры документа»).
«Группы документов» пока тоже самое что и задачи. Теоретически ничто не мешает прицепить любой документ к любой задаче.
«Тип хранения»:

Выше я описала три таблицы, в которых могут храниться документы. Но в настройках документов надо выбирать этот тип. А для этого желательно иметь его «человеческое» название. Это и есть список «хранилищ». «Справочник» - dDoc_List_0, «Суммы» - dDoc_Sum_0, «Гр+6сп+4т+3с» т.е группа+6 списков + 4 текста + 3 суммы - dDoc_List_1.
«Тип списка просмотра (sp)»:

Это штука позволяющая вытаскивать на просмотр разные поля одной и той же таблицы. В колонке «Среднее» содержится имя хранимой процедуры, которая на сервере выбирает информацию:

Так выборки информации происходят быстрее всего потому что сервер знают, что информацию будут выбирать и создаёт внутри себя дополнительные механизмы, ускоряющие описанную в процедуре выборку.
Стандартных процедур наделано, вроде бы для всех случаев. Т. е если документ в хранилище типа «Справочник»  содержит два списка и одну сумму, то надо просто выбрать вариант «2сп+1сум».
Если же требуется экзотика типа вытаскивания цен, перемножения и прочего, то достаточно дописать хранимую процедуру, которая всё это вытаскивает. Дело в том, что список просмотра это информация, которая не нужна машине. Машине для работы надо знать откуда читать и куда писать, а это всё есть в настройках документа. Что выводить на экран ей безразлично, потому «подсунуть» стандартной программе-странице ввода документов  можно что угодно.
Написание хранимой процедуры это, конечно программирование. Но напомню вид настроек СКД отчёта в 1С:

А это конструктор SQL строк в сервере (строки руками пишут довольно редко, обычно всё-таки запускается конструктор, который сам их пишет по тому, что нащёлкано мышью):

Казалось бы, совсем непохоже. Но «Группировка» в СКД это GROUP BY, «Поля» это SELECT, «Отбор» это WHERE, «Сортировка» это ORDER BY.
1С-овцы никого не пугают видом строки выборки информации и не говорят всяких страшных слов. Но на самом деле это по сути одно и то же. Т.е современный пользовательский уровень по возможностям и методам работы с информацией вплотную приблизился к программному с уже написанием строк выборки. Потому я и описываю хранимые процедуры и прочую организацию базы. Надо сказать, что это программистский уровень. Но надо и добавить что вообще-то там нет ничего сложного.
«Информация в выборах из списка»:

Все справочники содержат краткое, среднее и длинное название нужное в разных случаях:

В списках есть возможность ввести ещё и код:

Чаще всего для выборов из списков используется краткое название. Название «1 доу» сортирует учреждения по номерам. Эта сортировка удобнее чем сортировка по строке «ДОУ дс №1» используемой обычно для названий в строках документов. Но можно выбрать какой-то другой вариант для списка.
«Для всех или по учреждениям»:

В поставке продуктов питания, например:

… у учреждений разные только детодни. Нормы питания, цены товаров и прочее общее для всего района. Т.е из всех документов этой задачи «По учреждениям» только документ «Детодни».





 

Просмотров: 240 | Добавил: akostina76 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz