Имя: Пароль:
1C
1С v8
Подскажите как реализовать.
0 mzelensky
 
21.01.13
09:24
Доброго всем!
Попытаюсь обрисовать ситуацию общими словами:
Имеется некий первичный документ в базе (назовем его "Док1") (это что-то вроде реализации). Для данного документа предусмотрена стандартная печатная форма (назовем "СтандартныйМакет1") (что-то вроде Торг-12).

Есть консолидирующий документ в котором указывается наш "Док1" (на самом деле там много чего еще указывается, но для простоты ток его), нажимается волшебная кнопка и на выходе получаем формализованный электронный документ в фармате xml (естественно по определенным правилам).

Данная цепочка работает хорошо и проблем нет. НО!!! Сейчас прикрутили механизм внешних печатных форм (чтобы можно было подцплять НЕ стандартные печатные формы в нашим докам) - допустим это "Макет2". Естественно весь механизм формирования печатной формы идет во внешней обработки.

И вот тут встает проблема - при формировании формализованного документа мне необходимо учитывать структуру и наполнение (контекст) печатной формы дока. Т.е. если в печатном документе написано "номенклатура Ном1, арт. Артикул1", то в формализованном должно быть написано именно так и никак иначе! В первом случае у меня с этим проблем не было, но во внешних печатных формах можно сделать структуру совсем иной. Как соблюсти условие - идентичности печатного и формализованного дока?!?!?!
1 Нуф-Нуф
 
21.01.13
09:26
Я бы тоже покурил твоей травы
2 mzelensky
 
21.01.13
09:26
(0) В голове крутится несколько идей:
1) При формировании печатного дока записывать данные куда-нить в регистр, а потом формировать электронный док по этому регистру
2) Перед созданием формализованного дока формировать печатную форму, выгружать е куда-нить в "текст" и пытаться как-то распарсить
3 mzelensky
 
21.01.13
09:26
(1) Присажуйся - у меня много!
4 mzelensky
 
21.01.13
09:27
(1) если описать проще и короче -

Есть печатная форма документа. а есть формализованная электронная. Нужно чтобы данные ПОЛНОСТЬЮ совпадали. Как сделать?!
5 mzelensky
 
21.01.13
09:28
(4) разумеется при условии возможности использования внешних печатных форм.
6 Maxus43
 
21.01.13
09:29
во внешней печ форме добавь ещё 1 макет, типа "Структура". Там в одном столбце - "типовые", во втором названия из данной ПФ
7 Maxus43
 
21.01.13
09:29
>>типа "Структура"
всмысле назови его так
8 mzelensky
 
21.01.13
09:31
(6) это что-то типа:

"1) При формировании печатного дока записывать данные куда-нить в регистр, а потом формировать электронный док по этому регистру"

???
9 Maxus43
 
21.01.13
09:32
(8) зачем плодить лишние сущности, если структуру всю можно описать в самой Внеш Печ форме
10 mzelensky
 
21.01.13
09:36
(7) боюсь этого не хватит. Печатные формы сложные - там по 2-3 таблицы с множеством колонок + шапка + подвал тоже с большим количеством данных.

+ для выгрузки в электронный формат мне нужно знать не только наполнение, но и структуру таблиц. Т.к. там есть определенные реквизиты где указываются: количество колонок таблицы, наименование шапок таблицы и т.д.. А после этого описания уже идут данные при этом если ты указал ,что  в первой колонке "Номенклатура", то естественно так выгружать и должен.
11 Maxus43
 
21.01.13
09:37
(10) если у тебя не хватит воображения чтоб формализованно описать структуру печ формы, то я хз чем помочь
12 mzelensky
 
21.01.13
09:45
(11) ясно. Но в любом случае ты предлагаешь описывать все это это прям в макете?! Так скажем техническом макете.
13 Maxus43
 
21.01.13
09:48
(12) самый простой способ, не зависящий от других объектов. Это же имеет смысл только у определённой ПФ. Можно не в макете - ТЗ (Структуру, Дерево, файлик левый xml и т.п.) запихать в двоичные данные макета. как удобней
14 Defender aka LINN
 
21.01.13
09:48
(4) Лучше расскажи - а с чего бы им НЕ совпадать? Юзеры шаловливыми ручками правят печатные формы перед печатью?
15 Maxus43
 
21.01.13
09:50
(14) не, в ПФ может быть другой порядок колонок, свои псевдонимы. И выгрузка должа быть такой же. Как я понял
16 Defender aka LINN
 
21.01.13
09:53
(15) Та при чем тут вообще печатные формы? Они у всех нормальных людей формируются по данным документа, которые всегда доступны - выгружай как угодно.
17 Maxus43
 
21.01.13
09:54
(16) это у автора спроси, не привязывайся к слову Печ Форма
Вообще смысл - хранить где-то алгоритм выгрузки (формат выгрузки)
18 Defender aka LINN
 
21.01.13
09:56
(17) Ну, автор постоянно твердит про печатную форму. После такого как-то сложно не привязываться к этому :)
19 Maxus43
 
21.01.13
09:56
(18) между строк читай) пора привыкнуть к автору)
20 mzelensky
 
21.01.13
09:59
(14) нет. НЕ совпадать могут по простой причине. Есть поле "Номенклатура" (это справочник). В одной печатной форме выводит "краткое наименование" в другой "полное". Это все зависит от самой процедуры "Печать".

Следовательно если распечали с "Кратким", то и в формализованном должно быть с "Кратким".

Это самый простой пример.
21 mzelensky
 
21.01.13
10:04
(16) Твержу про печатные формы по одной простой причине!
Печатная форма (то, что на листике) - это грубо говоря ОРИГИНАЛ. то, на что ставится печать, подписи, прошивается если нужно и кладекся в архив.

Формализованный документ - э то электронная копия оригинала. Они должны полность совпадать. В документообороте везде фигурирует именно электронная версия, но если кто-то захочет (кому-то потребуется), то ты должен предъявить ОРИГИНА (тот самый на листике). Соответственно если в электронной версии номенкларута называется "Ном 1_краткое", а в печатной "Ном 1_полное", то это КОСЯК!
22 mzelensky
 
21.01.13
10:05
(15) верно понял
23 Maxus43
 
21.01.13
10:16
(22)>(17). придумывай как хранить формат выгрузки...
>>но если кто-то захочет (кому-то потребуется), то ты должен предъявить ОРИГИНА (тот самый на листике).
так правда не получится, ПФ - это не формализованное представление выгрузки, т.е. её всё равно придётся описывать самому
24 Defender aka LINN
 
21.01.13
10:21
(20) Печатная форма - это процедура, т.е. код. Написанный тобой. Если в коде написано полное наименование - то и пиши полное наименование, кто ж тебе мешает, я не пойму?
25 mzelensky
 
21.01.13
10:32
(24) Я уже говорил. Если это стандартная процедура печати, то проблем нет!

Но имеется возможность подключения внешних печатных форм. Следовательно тот самый код будет уже во внешней обработки, а там может быть написано совсем иначе!
26 mikeA
 
21.01.13
10:33
(24) видимо нужно соответствие того, что распечатали, тому, что ушло в электронном виде. причём распечатать могут разными способами
27 Maxus43
 
21.01.13
10:36
(25) если делать не универсально - то процедуру Выгрузки - тоже в ПФ наепиши, и вызывай её, а не встроенную в док
28 mikeA
 
21.01.13
10:37
(25) imho допиливать внешние обработки придётся. чтобы каждая сохраняла куда-то данные, по которым потом можно создать XML с нужной структурой. иначе как ты определишь, что было распечатано?
29 Defender aka LINN
 
21.01.13
10:37
(25) В таком случае печатные формы должны быть формализованы.
З.Ы. А куда будешь бежать, если документ два раза распечатали?
30 mzelensky
 
21.01.13
10:39
(27) не вариант.
31 mzelensky
 
21.01.13
10:40
(28) браво! Я уже час пытаюсь тут узнать как это лучше сделать
32 mzelensky
 
21.01.13
10:42
(29) если его просто 2 раза распечатают, то никаких проблем не будет (они будут полностью идентичны). Если же что-то изменять и потом распечатаюст, то это уже на совести пользователя. но этого не будет.  

Бизнес-процесс представляет собой цепочку, которая по большому счету формируется автоматически без участия пользователя.

Короче говоря над этим пока можно не запариваться.
33 Defender aka LINN
 
21.01.13
10:50
(32) Не юли. Куда бежать будешь, если распечатают 2 (3, 4, n) разных печатных форм?
34 Sinus1984
 
21.01.13
10:53
ну как вариант добавить регистр сведений и фигачить туда кто, что, по какому документу напечатал.
35 mzelensky
 
21.01.13
11:06
(33) В формализацию пойдет последний на момент создания формализации.

Для одного документа они не будут разные. Не в этом сейчас задача/проблема.