Имя: Пароль:
1C
 
Как поместить таблицу на передний план?
0 Leyla
 
19.01.05
14:29
Здравствуйте!

В форме справочника при нажатии на кнопку вызывается обработка, которая использует одну таблицу для ввода данных, а другую просто открывает для печати.
Вторая таблица (которая для печати) формируется и печатается в процедуре ПриОткрытии данной обработки.
Как сделать так, чтоб вторая таблица появлялась ПЕРЕД таблицей для ввода данных, а не ЗА ней?
1 АЛьФ
 
модератор
19.01.05
14:36
Показать(<?>,,);
Синтаксис:
Показать(<Заголовок>,<ИмяФайла>,<Активизировать>)
Назначение:
Открыть окно редактирования таблицы.
Параметры:
<...>
<Активизировать> - необязательный параметр. Признак активизации. Число: 1 - активизировать окно табличного документа; 0 - не активизировать окно табличного документа;  -1 (минус единица) - закрыть окно если оно открыто; по умолчанию  1. (необязателен).
2 Leyla
 
19.01.05
14:38
(1) Пробовала - не помогает. Почему - не понимаю!
3 АЛьФ
 
модератор
19.01.05
14:43
2(2) Покажи код вывода таблицы.
4 Дурочка 1C
 
19.01.05
14:43
Т.е. нужно использовать таблицу в режиме ввода данных, при этом меняя одну таблицу на другую?
5 miki
 
19.01.05
14:44
(2)Потому что, таблица для ввода данных выводится _после_ открытия и забирает фокус на себя. имхо.
6 Leyla
 
19.01.05
14:51
Процедура ПриОткрытии()
   Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда
       ТекОснСр = Форма.Параметр.Получить("ОС");
       
       СЗ = СоздатьОбъект("СписокЗначений");
       глЗначенияИзСтроки(Объект.ИзмененияПервоначальнойСтоимости, СЗ, "ИЗМСТ");
       глЗначенияИзСтроки(Объект.ЗатратыНаРемонт, СЗ, "ЗРЕМ");
       глЗначенияИзСтроки(Объект.КраткаяИндивидуальнаяХарактеристика, СЗ, "ИНДХ");
       Таблица.Загрузить(СЗ);
       Таблица.Опции(0,0,0,0,"ОпцииПечатиОС6_2","ОкноОС6_2");

       //Создаем первую страницу как дополнительную таблицу без ввода данных
       Таб = СоздатьОбъект("Таблица");
       Таб.ИсходнаяТаблица("ИК_стр1");
       
       Таб.ВывестиСекцию("Шапка1");
       Таб.ВывестиСекцию("Строка1");
       Таб.ВывестиСекцию("Подвал1");
       Таб.ТолькоПросмотр(1);
       Таб.Опции(0,0,0,0,"ОпцииПечатиОС6_1","ОкноОС6_1");
       Таб.Показать("Инвентарная карточка","",1);  
   Иначе
       Предупреждение("Эта обработка используется в системных целях!",6);
       СтатусВозврата(0); Возврат
   КонецЕсли;
КонецПроцедуры


(4)Нет, просто при нажатии кнопки в форме справочника, чтоб появлялось 2 таблицы: одна для ввода данных, другая просто для печати. Вот эта просто для печати должна показываться пользователю первой (т.к. это первая страница).
7 Leyla
 
19.01.05
14:51
(5) и как мне быть?
8 АЛьФ
 
модератор
19.01.05
14:52
2(5) Точно.
Чой-то я тормознул (решил, что таблицу надо выдвинуть вперед в процессе работы с обработкой).
2(0) Тогда можно попробовать это дело обмануть, хитро вызвав Показать.
Примерно так:
Перем МожноЗакрыть;
Процедура ПриОткрытии()
...
 МожноЗакрыть = 0;
 Форма.Закрыть(0);
...
КонецПроцедуры

Процедура ПриЗакрытии()
 Если МожноЗакрыть = 0 Тогда
   МожноЗакрыть = 1;
   Таб.Показать("",,1);
   СтатусВозврата(0);
   Возврат;
 КонецЕсли;
...
КонецПроцедуры
9 Дурочка 1C
 
19.01.05
14:53
(5) Тогда надо из ПриОткрытии() отправляться куда-нибудь еще (можно попробовать в ПриЗакрытии()) оттуда формировать печатную форму (не давая форме закрыться).
Но самое правильное - это, конечно, использовать для таких целей ВК.
10 Leyla
 
19.01.05
15:00
С ума сойти, как все сложно...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший