Страница 1 из 2

Создать документ нового типа

Добавлено: 22 фев 2011, 14:34
galover
Всем привет! Возникла задача создать свой тип документа (шапка + спецификация). Интерфейс буду писать сам. Нужно место для хранения данных. Есть ли вообще стандартное решение-подход в таком случае? Скажем завести в KatDoc свой тип данных, чтобы Галактика не похерила мои данные в будущем или при всяких проверках целостности, заюзать KatSopr + SpSopr/SpDocs. Или же нужно создавать свои таблицы? В общем нужен ваш совет. Спасибо.

Re: Создать документ нового типа

Добавлено: 22 фев 2011, 17:45
edward_K
ну уж если гарантировано - то свои таблы. Хотя можно поискать и готовый

Re: Создать документ нового типа

Добавлено: 22 фев 2011, 18:40
Den
Трудно сказать навскидку, не зная Вашей задачи. Но, видимо ,задача довольно приличная...
Все же реализация через добавление своих таблиц в словарь кажется более привлекательной.Главным образом за счет независимости от прикладной части стандартного функционала галактики.Кроме этого, при добавлении своих табл не будет изменяться контр сумма словаря (только заранее желательно тщательно продумать структуру данных и индекосв таблиц, т.к., насколько я понял, впоследствии для этого нужно будет отключать проекты, журнализации и т.д.).
С другой стороны, если Ваша задача вполне укладывается в рамки ,грубо говоря, katsopr+spsopr, то может быть и не нужно всего этого. Ну в в крайнем случае,если есть необходимость работать с данными, не помещающимися в стандарную структуру табл, можно к katsopr|spsopr добавить свои таблы опять же.
В любом случае, весьма вероятно, что потребуется отражения своих документов в журнале хозопераций с последующим проведением по ним ТХО. Это тоже серьезный фактор для раздумий

Re: Создать документ нового типа

Добавлено: 22 фев 2011, 19:28
galover
Ясно, спасибо. Значит ничего стандартного нет. Жаль. Задача довольно часто встречается. Свои таблицы создавать не очень хочется, да и вычистить журнал не получится - откаты делаем периодически.

Re: Создать документ нового типа

Добавлено: 22 фев 2011, 21:56
edward_K
чистка журнала нужна для alter dictionary. Без нее все добавляется. Штатно рекомендуется через консоль управления.
А так добавлял в sql, удалял в vip.

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 01:23
galover
Для create table тоже нужно чистить журнал и отрубать протект. Хотя таблица и добавляется (не смотря на предупреждение компилятора), но обращение к ней вызывает некоторые тормоза. Поэтому с добавлением новых таблиц не так все просто, и хотелось бы обойтись штатными средствами Галактики (

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 01:46
LaaLaa
Чтобы сделать свой документ. Можете использовать в качестве основы документ "Бухгалтерская справка". Для этого заведите отдельный тип бух справки (в настройках модуля ФРО). Соблюдайте правила заполнения и назначение имеющихся полей таблицы PlPor и SoprHoz. Чтобы работали стандартные алгоритмы, ТХО, проверки целостности и т.д.

Свои дополнительные данные храните в своих таблицах. Свяжите их с PlPor или с SoprHoz. Свое окно редактирования естественно придется сделать. И алгоритмы ТХО.

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 02:07
LaaLaa
К стати есть таблица SPPLPOR задумывалась когда то давно, как раз как абстрактная спецификация для всяких абстрактных задач пополнения бухгалтерских документов данными. Но давно уже с этой темой не сталкивался. Насколько эта таблица сейчас "жива" и насколько оформились и устоялись правила ее применения внешними программистами я сейчас не особо в курсе.

Если не желаете создавать свои таблицы, попробуйте проконсультироваться с отделами разработки по поводу использования штатных таблиц для абстрактных внешних разработок.

Хотя на счет добавления своих таблиц это в любом случае было бы лучше. Получается вам мешает только требование временной очистки журнала и отключения проекта? Или есть еще какие-то препятствующие причины?

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 12:13
Den
galover писал(а):Для create table тоже нужно чистить журнал и отрубать протект. Хотя таблица и добавляется (
и добавлял/удалял свои таблы не делая этого - не замечал пока никаких косяков.

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 14:45
galover
Den, когда добавлял? Я 3 месяца назад свои таблицы vip-ом добавлял, получал предупреждение или ошибку даже (сейчас не помню) о том что нужно чистить журнал и отключать протект, таблица создавалась, но потом при обращении к ней шли странные тормоза. У нас протект включен, есть разграничения прав по таблицам, права пересчитывал, бесполезно.
З.Ы. Кстати последние патчи (новогодние, где есть изменения по з/п), связанные с изменением словаря, также требуют чистки журнала и отрубания протекта.

Re: Создать документ нового типа

Добавлено: 23 фев 2011, 15:02
galover
LaaLaa Спасибо, посмотрю эти таблицы, может чего еще ТП подскажет. Мешают добавлять свои таблицы именно ограничения (требования компилятора), связанные с отключением протекта и чистки журнала. Как я уже писал, таблицы создаются, но идут заметные тормоза при обращении к ним (может только при первом обращении, хотя сильно не исследовал).

Re: Создать документ нового типа

Добавлено: 24 фев 2011, 10:52
Den
galover, извиняй.. Да, действительно, у меня далеко не последние патчи, аля 5.4.3X в силу обстоятельств...Жалко, конечно , что разработчики внесли такие вот изменения в мехинизм добавления таблиц. Было(видимо, приходиться уже в прошедшем времени констатировать..), конечно, удобно работать по старому механизму без протектов,журнализаций (

Re: Создать документ нового типа

Добавлено: 24 фев 2011, 11:18
m0p3e
А ведь требование к отключению журнала при докомпиляции следствие лени разработчиков.
Доработать элементарно! Предварительное удаление записей в журнале по изменяемым таблицам - самый простой способ.

Re: Создать документ нового типа

Добавлено: 03 мар 2011, 10:40
galover
Да, еще вспомнил главное ограничение на добавление своих таблиц. Помимо тормозов при обращении, созданные таблицы не журнализируются, хотя и стоят как журнализируемые. Такое поведение, если не чистить журнал и не отрубать протект. А поскольку чистить журнал никак нельзя, то остается одно - юзать стандартные таблицы Галактики

Re: Создать документ нового типа

Добавлено: 03 мар 2011, 11:11
edward_K
вы просто не умеете их готовить :).
У меня все прекрасно журнализируется.

Код: Выделить всё

Create Table D_USER.My_table1 "My_table1"
  With Table_CODE = 32762
  With TableOptions header, journal
(
  cpodr          : comp   "подразделение"
  ,price          : double "цена"
)
with index
(
 in2 = cpodr
);
При добавлении через сапорт-SQL журнал не чистил :)
уже обсуждалось, что теперь alter dictionary для своих таблиц не нужен и даже вреден.
Если без header, то должны добавить поле nrec (ну и другие по шапке), и по нему создать индекс с опциями уникальный, журнализируемый, суррогатный. Тогда таблица появится в списке таблиц для журнализации.
Но вообще это крайняя мера - по возможности нужно заюзать стандартные документы.
Можно вообще же документ на проводках построить(с забалансовым счетом например) - та же бухсправка. По дороге получите несколько десятков готовых отчетов :).