|
|
|
Упорядочивание документов в журнале. | ☑ | ||
|---|---|---|---|---|
|
0
Allan Stark
02.11.09
✎
18:18
|
1С 7.7, комплексная.
Есть особый документ типа "Партия". Служит для расширенной аналитики по конкретной партии продукции собственного изготовления. Документ не участвует в учете, ничего не двигает, а служит просто как аналитическая карточки (например в табличной части вносятся качественные показатели по конкретному типу продукции). Порядок документов на временной оси значения не имеет. Производственники (лаборатория) захотели чтобы в соотв. журнале была возможность сортировки и фильтра по некоторым полям в заголовке документа. Создал отдельный журнал. По-быстрому организовал это через следующий алгоритм: 1. Создал отдельную ТаблицуЗначений. 2. Заполняю ее документами путем выборки документов за указанный интервал (считываем текущий выбранный пользователем интервал просмотра журнала). 3. Упорядочиваем таблицу по выбранному пользователем предопределенному критерию. 4. Задаем переменной некоторое произвольное "стартовое" время. 5. Выбираем строки из упорядоченной таблицы по порядку, для каждой выбранной строки находим документ и присваиваем его ДатаДок значение переменной. 6. Инкрементируем значение переменной. Все работает, как требовалось, но есть одно "но": очень медленная работа вследствие необходимости поиска документа. Журнал при вызове долго открывается уже на полусотне документов, если же попытаться открыть его за весь период (около тысячи документов), то висеть будет очень долго... От решения в виде "проваливающегося" отчета производственники категорически отказались... Им подавай только в виде журнала. Как можно ускорить ? |
|||
|
1
ТелепатБот
гуру
02.11.09
✎
18:18
|
Книга знаний: v7: Кто открыл документ
Книга знаний: Множественный отбор в журналах и справочниках 7.7 заменой запросов SQL Книга знаний: Отбор по нескольким реквизитам в журнале (www.sinor.ru) Книга знаний: Переход от сортировки по разным колонкам и направлениям к сортировке по возрастанию одного ключа |
|||
|
2
АЛьФ
02.11.09
✎
18:19
|
2(0) Используй ТабличноеПоле из 1С++.
|
|||
|
3
Mikeware
02.11.09
✎
18:20
|
Документ фиксирует _акт_ деятельности. Если никакого события не произошло - документ не имеет смысла...
|
|||
|
4
Allan Stark
02.11.09
✎
18:22
|
(3) Документ служит для хранения кучи значений, уникальных для данной партии. Хранить их в виде документа - вполне трезвое и правильное решение со стороны разрабов.
|
|||
|
5
Allan Stark
02.11.09
✎
18:24
|
Я сейчас подумал о таком, несколько извращенном решении.
Что если сделать аналог триггера, т.е. например если создается новый документ "партия" то некоторой переменной в глобальном модуле присваивается значение "1", а при открытии журнала происходит анализ этой переменной, если она в "1" - происходит упорядочивание и она вновь сбрасывается на "0" |
|||
|
6
Allan Stark
02.11.09
✎
18:25
|
Потому что в день создается максимум несколько документов, чаще ни одного...
Такое решение думаю бы сильно ускорило работу журнала. |
|||
|
7
Allan Stark
02.11.09
✎
18:26
|
Хотя нет, не пойдет. Упорядочивание должно происходить по нескольким полям...
|
|||
|
8
АЛьФ
02.11.09
✎
18:30
|
2(4) Вообще-то, "хранить их в виде документа" - это решение, принятое от недостатка понимания сути объектов платформы.
2(5) Очень плохое решение. Как раз из разряда "хранить их в виде документа". Не хочешь использовать 1С++, сделай тогда справочник, который будет вместо журнала документов открываться и элементы которого будут ссылаться на документы партий. И этот справочник уже сортируй, как угодно. |
|||
|
9
Allan Stark
02.11.09
✎
18:46
|
(8) Вариантов хранения для подобной задачи платформа представляет по сути два: систему главных/подчиненных справочников и документы.
Справочники не катят, хотя бы потому, что набор параметров оценки качества переменный, зависит от типа продукции, также реализация получается громоздкой и неудобной. Документом-пустышкой - как раз получается удобно и просто. Работает уже пять лет. Другое дело что столкнулся с вышеуказанной задачей сортировки таких документов... |
|||
|
10
АЛьФ
02.11.09
✎
18:51
|
2(9) Вариант хранения подобной информации платформа предоставляет только один - справочники. Не все, что "удобно и просто" - есть правильно. И ты вот через пять лет натолкнулся на объяснение почему это решение - неправильное.
|
|||
|
11
Allan Stark
02.11.09
✎
18:55
|
Угу... Наверно именно из-за жесткой стандартизации платформы и том, что и как ПРАВИЛЬНО делать, в "продвинутых" конфигурациях все что ни попадя делается через регистры, даже дублирование бух. и финансовой аналитики.
Иногда с 1С-никами бесполезно спорить... |
|||
|
12
Mikeware
02.11.09
✎
18:56
|
(11) Любая система имеет свою область применения и свои ограничения.
|
|||
|
13
GreyK
02.11.09
✎
18:59
|
(11) Тебе в (9) указали путь. Платформа одна и решения одни. Про "Справочники не катят, хотя бы потому, что набор параметров оценки качества переменный, зависит от типа продукции, также реализация получается громоздкой и неудобной." ты загнул, всё красяво может быть, ну если правильно сделать.
|
|||
|
14
АЛьФ
02.11.09
✎
18:59
|
2(11) При определенной сноровке можно, конечно, и микроскопом гвозди забивать. Но проще все же использовать инструменты по их прямому назначению.
|
|||
|
15
Allan Stark
02.11.09
✎
19:05
|
Ребят, представьте себе задачу.
Нужно уникальным образом идентифицировать партию, т.к. она имеет несколько внутренних и внешних рег. номеров. К этой партии произвольно прицепляются всяческие фишки в виде кучи документов как внутрипроизводственных, так и внешних, для каждой продукции их набор и кол-во разные. Несколько печатных форм. Пара десятков произвольно заполняемых вручную параметров контроля качества. Несколько уровней подписей контроллирующих лиц. Там еще много всего... Поверьте, геморно это было через справочник делать. |
|||
|
16
Allan Stark
02.11.09
✎
19:06
|
И вообще это не к нам, а разрабам...
|
|||
|
17
АЛьФ
02.11.09
✎
19:08
|
2(15) Поверь, менее геморно, чем на документах.
|
|||
|
18
АЛьФ
02.11.09
✎
19:09
|
2(16) Ну так и не защищай неверного решения.
Чем тебя не устраивает решение в (8)? |
|||
|
19
FN
02.11.09
✎
19:09
|
тебе же в (8) дали прекрасную идею, как и на документах остаться и удобство справочника поиметь...
перечитай внимательно! |
|||
|
20
Allan Stark
02.11.09
✎
19:11
|
(19) да придется видать так и делать...
Только лаборатории это нужно для быстрого редактирования конкретной партии. Как сделать так, чтобы при щелчке на элемент справочника вместо его открытия открывался документ ? |
|||
|
21
FN
02.11.09
✎
19:12
|
ПриОткрытии()
ОткрытьФорму(ССылкаНаДок); СтатусВозврата(0) КонецПроцедуры ЗЫ есть еще прием с перехватом стандартных запрос 1С к скулю и их правкой - в книге знаний должно быть... но думаю это не твой путь |
|||
|
22
GreyK
02.11.09
✎
19:16
|
(21) Проще и правильнее поставить редактирование в списке.
Процедура ПриНачалеРедактированияСтроки() КонецПроцедуры Синтаксис: ПриНачалеРедактированияСтроки() Назначение: Предопределенная процедура при начале интерактивного редактирования существующей строки списка справочника. Замечание: Данная процедура может располагаться только в модуле формы списка справочника. |
|||
|
23
FN
02.11.09
✎
19:19
|
(22)+1
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |