Имя: Пароль:
1C
1C 7.7
v7: 7.7 под ВинСервер 2003 странно себя ведет
0 Diesellogin
 
21.10.11
10:59
На ВинСервер 2003 энтерпрайс установлена (под админом) 1с 7.70.027 (лицензионная) + самописный конфиг. С удаленных машин по терминалу к серверу подключаются пользователи (с НЕадминскими правами) и работают в 1с. При выводе на печать документа (с/ф, накладная и тд) он часто не вмещается на 1 страницу. Решили сделать автомасштабирование таким образом. Программно, перед выводом печатной формы, в цикле меняем в настройках страницы масштаб до тех пор пока документ не вместится на 1 страницу (методы: Таблица.ПараметрыСтраницы() + Таблица.КоличествоСтраниц()). На ВинХР и прочих (виста, 7) всё работает нормально. А на сервере проблема. Всё работает ровно до тех пор пока не поменяешь интерактивно любую настройку страницы (поля, ориент, принтер). После этого программа автомасштабирования перестает работать. Точнее не отрабатывает программное изменение настроек страницы. Не помогает даже переоткрытие 1с. Всё начинает работать снова только если в папках пользователей в конфиге убить все файлы (или в реестре удалить раздел V7 с настройками). Но вместе с этим сразу пропадают настройки интерфейса и программы. Подскажите пожалуйста как победить эту проблему? Возможно дело не в 1с а в сервере 2003. Может с правами чтото не то? Заранее спасибо.
1 andrewks
 
21.10.11
14:58
галка "по ширине листа" - не?
2 Diesellogin
 
21.10.11
17:16
нет. интересует масштаб по вертикали. когда например накладная печатается на двух и более страницах.
3 Злой Бобр
 
25.10.11
11:52
Проблема в коде. И несохраняйте настройки печати для этого документа. Если сами неможете понять где затык то код в студию или на файлопомойку.
4 Diesellogin
 
25.10.11
22:43
В документе:

Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");  
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;
 
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Подвал");
Таб.Опции(0, 0, 0, 0,,);
Таб.ПовторятьПриПечатиСтроки( 13, 13 );
Таб.ТолькоПросмотр(1);

Таб.КоличествоЭкземпляров(2);
Таб.ПараметрыСтраницы(2,,,5,0,0,0,0,0,,,);
глПодобратьМасштабПечати(Таб);
Таб.Показать("Печать счета-фактуры","");

глПодобратьМасштабПечати:

Процедура глПодобратьМасштабПечати(прмТаб) Экспорт
Перем ПределАвтомасштабирования;
Если (ТипЗначенияСтр(прмТаб)<>"Таблица") Тогда
  Сообщить("глПодобратьМасштабПечати - "+СокрЛП(прмТаб)+" - передан неверный параметр ""Таб""");
 Возврат;
КонецЕсли;
ПределАвтомасштабирования=Константа.ПределАвтомасштабирования;
Если (ПустоеЗначение(ПределАвтомасштабирования)=1) Тогда
 ПределАвтомасштабирования=80;
КонецЕсли;
Для СчетчикМасштаб=-100 По -ПределАвтомасштабирования Цикл
 ТекМасштаб=-СчетчикМасштаб;
 прмТаб.ПараметрыСтраницы(, ТекМасштаб,,,,,,,,0);
 Если (прмТаб.КоличествоСтраниц()<=1) Тогда
   Возврат;
 КонецЕсли;
КонецЦикла;
прмТаб.ПараметрыСтраницы(, 100,,,,,,,,1);
КонецПроцедуры //глПодобратьМасштабПечати
5 FN
 
25.10.11
22:59
какая занятная идея...
6 Diesellogin
 
25.10.11
23:23
идея хорошая и реализация довольно простая. но вот этот глюк всё перечеркивает. не дружит 1с с вин2003. ума не приложу в чем проблема (
7 Ёпрст
 
гуру
25.10.11
23:42
(0) задай уникальные опции печати.
наслаждайся
8 Diesellogin
 
26.10.11
18:02
уникальные опции печати - это в методе Опции() ?
9 Diesellogin
 
28.10.11
09:13
ап
10 Ёпрст
 
гуру
28.10.11
09:52
(8) да