Имя: Пароль:
1C
1С v8
Печать ценников в Word
0 Креатив
 
30.11.11
11:29
БП 2.0. Фирма торгует мебелью. Имеется несколько разновидностей ценников. На данный момент они печатаются ручками из Word-а. Какие есть идеи по организации печати ценников из 1С в Ворд? Как лучше организовать шаблоны? Как удобнее сделать привязки?
1 Wobland
 
30.11.11
11:30
ценники лучше организовать с помощью вывода в ТабДок. предлагаю подсмотреть в типовых
2 Креатив
 
30.11.11
11:36
(1)Я запарюсь их рисовать. Да и они новые могут придумать.
А так в Ворде показал как рисовать, да как прикреплять и сказка.
3 Масянька
 
30.11.11
11:36
Разные макеты для разных видов ценников, обработка печати, макет 1С доработать.
Я делала это в ТиС 7.7. пришлось еще доработать справочник Номенклатуры.
4 Масянька
 
30.11.11
11:37
С Word'ом посложнее будет: добавлять новые строки, заполнять.
5 Креатив
 
30.11.11
11:39
(3)(4)С Вордом посложней только первое время. А вот редактирование 1с-ных макетов может завести юзеров в ступор. Хотя этот вариант тоже буду рассматривать.
6 Wobland
 
30.11.11
11:41
(5) изначально нужно было на экселе делать
7 Креатив
 
30.11.11
11:44
(6)Тут не я решал, да и пользователи в плане оформления эксел не очень любят.
8 2083
 
30.11.11
11:44
Сделай шаблоны в Word или в Exel, при печати открывай да и заполняй...
9 2083
 
30.11.11
11:45
+(8) сам недавно делал подобное для заполнения договоров с контрагентами. И я думаю, что я не единственный кто подобное делал, на инфостарте полно всяких разностей по этому поводу...
10 Креатив
 
30.11.11
11:46
(8)Это понятно. Только ещё надо придумать структуру шаблона такую, чтобы при печати менялось только название шаблона, а всё остальное оставалось тем же.
11 2083
 
30.11.11
11:49
У меня. Файл Шаблон_Договор.doc. В нем проставил поля типа DocVariables. Открываю из 1С как новый документ и заполняею поля...
12 Креатив
 
30.11.11
11:53
(11)А как этот тип устанавливается?
13 2083
 
30.11.11
11:56
ну если в 10-офисе то вставка экспресс блоки -> поле. И задаешь там тип DocVariable и наименование. Потом в 1с заполняешь
14 Креатив
 
30.11.11
12:01
(13)Это нашёл. Пытаюсь понять как его заполнить...
15 2083
 
30.11.11
12:01
+(13)
Попытка
       Word=Новый COMОбъект("Word.Application");
Исключение
   Предупреждение("Возможно Microsot Word не установлен на данном компьютере.");
КонецПопытки;
   
КомОбъект=Word.Application.Documents.Add(ИмяФайла);
КомОбъект.Variables.Item("ТекущаяДата").Value=Формат(ОбщегоНазначения.ПолучитьРабочуюДату(), "ДФ=""дд ММММ гггг 'г.'""");
КомОбъект.Application.Visible=1;
КомОбъект.Fields.UpDate();
16 Ant1773
 
30.11.11
12:04
(11) Из 1С не работал с Вордом, но по аналогии с Delphi - а не проще в шаблоне сделать тексты вида &НаименованиеТовара&, &ЦенаТовара&, &Характеристика1&... и через поиск-замену их менять на нужный текст?
17 Креатив
 
30.11.11
12:04
(15)Спасибо, будет копать.
(16)Такая идея тоже есть.
18 2083
 
30.11.11
12:05
(16) можно так, можно сяк, можно вообще в шаблон выражение 1С подставить
19 2083
 
30.11.11
12:05
(17) цветы и конфеты не пью :)
20 Креатив
 
30.11.11
12:07
(18)А вот это уже лишнее. Пользователям лучше не давать править выражения.
(19)Правильно, лучше пей воду ,)
21 Fish
 
30.11.11
12:07
(16) Не проще, т.к. у поиска/замены есть ограничение по длине строки (вроде как 128 символов), а у DocVariable - нету
22 Ant1773
 
30.11.11
12:08
(16)
rep_in_doc('&Имя&',Table1.FieldByName('NAME').AsString);
rep_in_doc('&Отч&',Table1.FieldByName('OTCH').AsString);
rep_in_doc('&Фам&',Table1.FieldByName('DATE_B').AsString);
... чего там еще...

procedure rep_in_doc(old_str,new_str:OleVariant);
begin
//Находим в документе метки и производим их замены
WordDocument1.Range.Find.Execute(old_str,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,
   EmptyParam,EmptyParam,EmptyParam,new_str,replace);
end;
23 2083
 
30.11.11
12:11
(21) не рассматривал, что проще, что нет... просто в моей задачке один и тот же реквизит встречался несколько раз в одном документе, поэтому мне показалось, что проще через docVariable.
Но есть минус. Как только пользователь начнет редактировать шаблон, он конечно же возьмет исходный файл шаблона, вместо того, чтобы скопировать его, и убьет какое-нить поле. Потом будет плакать и кричать, что у него не работает.
24 Ant1773
 
30.11.11
12:21
(23) Несколько вариантов: сделай именно ШАБЛОН документа; пользователю дать права только на чтение шаблона/шаблоны лежат на сети в месте доступном только для чтения...
25 Ant1773
 
30.11.11
13:21
(21) Ограничение длины строки в 255 символов. Но можно конечно и обойти.
26 Ant1773
 
30.11.11
13:28
(23) И замена и docVariable заменят во всем документе.
ИМХО шаблон будет выглядеть понятнее для пользователей с метками, чем с пустыми полями выдающими код  {DOCVARIABLE  Имя \* MERGEFORMAT}. Это исключительно ИМХО :) На вкус и цвет как говорится...
27 Fish
 
30.11.11
13:43
(26) Ты неправ, замена заменит только один найденный.
28 Ant1773
 
30.11.11
20:08
(27) ReplaceAll никто не отменял.
29 Джордж1
 
30.11.11
20:11
У меня универсальная печать ценников из ТиС. Пользователи сами настраивают ценники (редактируют, добавляют новые) - ничего сложного
30 merc2011
 
30.11.11
20:14
(0) В УТ11 ценники создаются и изменяются в режиме предприятия. Можно идею подчерпнуть оттуда.
31 Креатив
 
02.12.11
10:14
Сейчас пытаюсь эту обработку прикрутить как внешнюю печатную форму.
32 Креатив
 
02.12.11
10:16
Только не могу понять, как из функции Печать() открыть форму обработки.